MATLAB Answers

how to find Euclidean distance in matlab?

236 views (last 30 days)
ganesh  s
ganesh s on 2 Dec 2011
Edited: Walter Roberson on 11 Oct 2017
hi i have extracted the feature of the 1000 images by using color Correlogram & saved it in a .mat file, now i want to match some query image(consist of .mat file) with this data base by using Euclidean distance for image retrieval.but i don't know how to find the Euclidean distance between 1000 data base images & one query image. thanks

  1 Comment

ganesh  s
ganesh s on 2 Dec 2011
want to find Euclidean distance between 1000 images(.mat file)& one query image (.mat file) in MATLAB

Sign in to comment.

Accepted Answer

Junaid
Junaid on 2 Dec 2011
Dear what is the size of your feature vector, if it is column vector then let say your have 1000 feature vector of 1000 images. I denote it by D, where each column is feature vector of each image, in short column represent single image. and your Query image is Q is single column vector.
it can be computed as simple as;
Q= repmat(Q,1,size(D,2));
E_distance = sqrt(sum((Q-D).^2));
now E_distance is euclidean matrix distance. where each cell is distance of Query with database image.

  3 Comments

ganesh  s
ganesh s on 2 Dec 2011
thanks Junaid for your answer
my Feature vector is of size (1000x1 cell) with each extracted image of size(4096x48 double) i want to match query image of size(4096x48)with this data base
Junaid
Junaid on 2 Dec 2011
I assume for Each image you have 1000 x 1 vector. one possible way way is that you concatenate all images to one matrix. Let say you have 100 images then you get D 1000 x 100. Where each column is feature of single image. and then you query Q is 10000x1. then simply
Q = Q';
once you can do it, then above code will give you Euclidean distance Q with all images. You can plot E_distance to see the result.
ganesh  s
ganesh s on 2 Dec 2011
thanks again junaid
i already concatenate the all 1000 images in two one column matrix of size(1000x1)with each row represent the extracted image of size(4096x48)now i want to take one query image of size 4096x48(my original image is of size 384x256 after extracting feature by correlogram method it become 4096x48 ) and want to find it's euclidean distance for image retrieval

Sign in to comment.

More Answers (3)

divya r
divya r on 15 Jun 2012
How did you concatenate data from multiple matfiles into one? I have done it fr only 2 .mat files, but i am stuck in the logic for multiple .mat files. Could you please help me out with the logic?

  2 Comments

Walter Roberson
Walter Roberson on 15 Jun 2012
Please start a new Question for this matter.
Htet Yamin Ko Ko
Htet Yamin Ko Ko on 11 Oct 2017
if exist('feat.mat')
load feat.mat
else feat= [];
end
feat = [feat,featVec]; % you should use ; for row vectors and , for column vectors
save feat.mat feat
feat.mat is my existing .mat file and featVec is my current extracted feature vector. I hope it helps you.

Sign in to comment.


Dodo Dodda
Dodo Dodda on 18 May 2016
I have a data set of 160 images, and i extracted features of these images and saved them in .mat file, now i want to match between features of another image and all features that i saved in the .mat file. How i can do this using eulidean distance algorithm?

  1 Comment

Sign in to comment.


k p
k p on 21 Sep 2016
i have two image.one is shifted and one is main i have to find the shift of whole image in x direction and y direction how can i find? only two values i want in point pixel in c.

  1 Comment

Walter Roberson
Walter Roberson on 21 Sep 2016
Please start a new Question for this matter. It does not have anything to do with this Euclidean Distance topic.

Sign in to comment.

Sign in to answer this question.