Advertisement
Guest User

Untitled

a guest
Sep 17th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. Inp1=rgb2gray(imread('D:visionImagesc11.ppm'));
  2. figure, imshow(Inp1), title('Input image 1');
  3. num_bins = 32;
  4. A = imhist(Inp1, num_bins);
  5. srcFiles = dir('D:visionImagesc1*.ppm');
  6. B = zeros(num_bins, 30);
  7. ptr=1;
  8. for i = 1 : length(srcFiles)
  9. filename = strcat('D:visionImagesc1',srcFiles(i).name);
  10. I = imread(filename);
  11. I=rgb2gray(I);
  12. B(:,ptr) = imhist(I, num_bins);
  13. ptr=ptr+1;
  14. end
  15.  
  16. % histogram intersection
  17. a = size(A,2); b = size(B,2);
  18. K = zeros(a, b);
  19. for i = 1:a
  20. Va = repmat(A(:,i),1,b);
  21. K(i,:) = 0.5*sum(Va + B - abs(Va - B));
  22. end
  23.  
  24. num_images = 30;
  25. sims=K
  26. relevant_IDs = [1 2 3 4 5 6 7 8 9 10];
  27. num_relevant_images = numel(relevant_IDs);
  28. [sorted_sims, locs] = sort(sims, 'descend');
  29. locations_final = arrayfun(@(x) find(locs == x, 1), relevant_IDs)
  30. locations_sorted = sort(locations_final)
  31. precision = (1:num_relevant_images) ./ locations_sorted;
  32. recall = (1:num_relevant_images) / num_relevant_images;
  33. plot(recall, precision, 'b.-');
  34. xlabel('Recall');
  35. ylabel('Precision');
  36. title('Precision-Recall Graph');
  37. axis([0 1 0 1.05]);
  38. grid;
  39.  
  40. function [out] = imcolourhist(im, num_red_bins, num_green_bins, num_blue_bins)
  41.  
  42. im = double(im); %// To maintain precision
  43.  
  44. %// Compute total number of bins
  45. total_bins = num_red_bins*num_green_bins*num_blue_bins;
  46.  
  47. %// Figure out threshold between bins
  48. red_level = 256 / num_red_bins;
  49. green_level = 256 / num_green_bins;
  50. blue_level = 256 / num_blue_bins;
  51.  
  52. %// Calculate which bins for each colour plane
  53. %// each pixel belongs to
  54. im_red_levels = floor(im(:,:,1) / red_level);
  55. im_green_levels = floor(im(:,:,2) / green_level);
  56. im_blue_levels = floor(im(:,:,3) / blue_level);
  57.  
  58. %// Compute linear indices
  59. ind = im_blue_levels*num_red_bins*num_green_bins + im_green_levels*num_red_bins + im_red_levels;
  60. ind = ind(:); %// Make column vector for accumarray
  61.  
  62. %// Determine 1D histogram - Ensure that every histogram
  63. %// generated has the same size of total_bins x 1
  64. out = accumarray(ind+1, 1, [total_bins 1]);
  65. end
  66.  
  67. Inp1=imread('D:visionImagesc11.ppm');
  68. num_red_bins = 8;
  69. num_green_bins = 8;
  70. num_blue_bins = 8;
  71. num_bins = num_red_bins*num_green_bins*num_blue_bins;
  72. A = imcolourhist(Inp1, num_red_bins, num_green_bins, num_blue_bins);
  73.  
  74. B = zeros(num_bins, 30);
  75. ptr=1;
  76. for i = 1 : length(srcFiles)
  77. filename = strcat('D:visionImagesc1',srcFiles(i).name);
  78. I = imread(filename);
  79. B(:,ptr) = imcolourhist(I, num_red_bins, num_green_bins, num_blue_bins);
  80. ptr=ptr+1;
  81. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement