Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Inp1=rgb2gray(imread('D:visionImagesc11.ppm'));
- figure, imshow(Inp1), title('Input image 1');
- num_bins = 32;
- A = imhist(Inp1, num_bins);
- srcFiles = dir('D:visionImagesc1*.ppm');
- B = zeros(num_bins, 30);
- ptr=1;
- for i = 1 : length(srcFiles)
- filename = strcat('D:visionImagesc1',srcFiles(i).name);
- I = imread(filename);
- I=rgb2gray(I);
- B(:,ptr) = imhist(I, num_bins);
- ptr=ptr+1;
- end
- % histogram intersection
- a = size(A,2); b = size(B,2);
- K = zeros(a, b);
- for i = 1:a
- Va = repmat(A(:,i),1,b);
- K(i,:) = 0.5*sum(Va + B - abs(Va - B));
- end
- num_images = 30;
- sims=K
- relevant_IDs = [1 2 3 4 5 6 7 8 9 10];
- num_relevant_images = numel(relevant_IDs);
- [sorted_sims, locs] = sort(sims, 'descend');
- locations_final = arrayfun(@(x) find(locs == x, 1), relevant_IDs)
- locations_sorted = sort(locations_final)
- precision = (1:num_relevant_images) ./ locations_sorted;
- recall = (1:num_relevant_images) / num_relevant_images;
- plot(recall, precision, 'b.-');
- xlabel('Recall');
- ylabel('Precision');
- title('Precision-Recall Graph');
- axis([0 1 0 1.05]);
- grid;
- function [out] = imcolourhist(im, num_red_bins, num_green_bins, num_blue_bins)
- im = double(im); %// To maintain precision
- %// Compute total number of bins
- total_bins = num_red_bins*num_green_bins*num_blue_bins;
- %// Figure out threshold between bins
- red_level = 256 / num_red_bins;
- green_level = 256 / num_green_bins;
- blue_level = 256 / num_blue_bins;
- %// Calculate which bins for each colour plane
- %// each pixel belongs to
- im_red_levels = floor(im(:,:,1) / red_level);
- im_green_levels = floor(im(:,:,2) / green_level);
- im_blue_levels = floor(im(:,:,3) / blue_level);
- %// Compute linear indices
- ind = im_blue_levels*num_red_bins*num_green_bins + im_green_levels*num_red_bins + im_red_levels;
- ind = ind(:); %// Make column vector for accumarray
- %// Determine 1D histogram - Ensure that every histogram
- %// generated has the same size of total_bins x 1
- out = accumarray(ind+1, 1, [total_bins 1]);
- end
- Inp1=imread('D:visionImagesc11.ppm');
- num_red_bins = 8;
- num_green_bins = 8;
- num_blue_bins = 8;
- num_bins = num_red_bins*num_green_bins*num_blue_bins;
- A = imcolourhist(Inp1, num_red_bins, num_green_bins, num_blue_bins);
- B = zeros(num_bins, 30);
- ptr=1;
- for i = 1 : length(srcFiles)
- filename = strcat('D:visionImagesc1',srcFiles(i).name);
- I = imread(filename);
- B(:,ptr) = imcolourhist(I, num_red_bins, num_green_bins, num_blue_bins);
- ptr=ptr+1;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement