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
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Anamika baruah
am 17 Jun. 2014
Kommentiert: Image Analyst
am 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 Kommentare
Akzeptierte Antwort
Image Analyst
am 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 Kommentare
Image Analyst
am 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);
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!