i have calculated the euclidean distance of one image with 30 images stored in a databse.Now how i display the images having the smallest distance?If i want to display 4 or 5 images
    8 views (last 30 days)
  
       Show older comments
    
    Anamika baruah
 on 17 Jun 2014
  
    
    
    
    
    Commented: Image Analyst
      
      
 on 17 Jun 2014
            I = imread('11.jpg'); I = rgb2gray(I); m=1; srcFiles = dir('fruits\*.jpg'); % the folder in which ur images exists for j = 1 : 30
 filename = strcat('fruits\',srcFiles(j).name);
   filenam = strcat('fruits',srcFiles(j).name);
    I = imread(filename);
    %I=graythresh(I);
    %I=imresize(I,[20,15]);
    fr=strcat('features',filenam,'.mat');
b=dlmread('features11.mat')
%b1=dlmread(fr)
b1=dlmread('frs.mat')
sum=0;
for i=1:8
g = (b(i) - b1(j,i))^2
sum=sum+g
end
dist = sqrt(sum);
E_dist(j)=dist
disp(E_dist);
if(E_dist(j) <.0061)
     subplot(3,3,m)
     imshow(I);
  m=m+1;
end
end
 sd=sort(E_dist)
0 Comments
Accepted Answer
  Image Analyst
      
      
 on 17 Jun 2014
        You could display them one at a time with imshow(), either in 4 or 5 axes or one at a time in the same axes. Or you could use the montage() function to stitch together all the images into one big image which you can display with imshow().
2 Comments
  Image Analyst
      
      
 on 17 Jun 2014
				You said "i have calculated the euclidean distance of one image with 30 images" so you just take those distances and put it into the min() function
[minDistance, indexOfMin] = min(distances);
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
