how to find euclidean distance for an image

I have 100 images and i have to find the euclidean distance for it,and i have to take a query image and find the euclidean distance and retrieve the image ,i have extracted an feature of an image and have stored it in .mat file,please help

5 件のコメント

Naz
Naz 2011 年 12 月 22 日
Amazing. You have such diverse questions. I wonder how you manage to work on so many different things at a time.
Joel
Joel 2013 年 3 月 13 日
Dear FIR, could you please send me the files to this project so I can have a better look and see if I might be able to help.
Thanks
Image Analyst
Image Analyst 2013 年 3 月 13 日
Joel, did you notice that FIR posted this 15 months ago? I doubt he still needs your help on it. Besides, he accepted an answer already.
Min Min
Min Min 2020 年 10 月 17 日
Can I use this formula to the find histogram similarity value "1-norm(y1-y0)/norm(y0)" which is used in image steganography
Image Analyst
Image Analyst 2020 年 10 月 17 日
I have no idea.

サインインしてコメントする。

 採用された回答

Junaid
Junaid 2011 年 12 月 22 日

2 投票

Dear FIR, Sorry FIR I can't overview your code you sent to me. To compute the Euclidean distance between images or image features, your vector length or matrix should have same dimensions. Let say your first image has 1 x 460 vector then your query should be of same length. If that is the case then you can easily find Euclidean distance by the code I have written below. You just have to ensure that the dimensions are the same. I give you example of Histogram feature of two images.
I = imread('myimage.jpg');
I = rgb2gray(I);
h = imhist(I); % this will have default bins 256
% now second image
J = imread('myimage1.jpg');
J = rgb2gray(J);
h1 = imhist(J); % this will have default bins 256
E_distance = sqrt(sum((h-h1).^2));
You can do it for 1000 images as well. Let say now your 1000 images histogram are concatenated into h1. where each column is one histogram. Then your query image histogram is h. Then distance can be computed as follow.
h_new = repmat(h,1,size(h1,2));
E_distance = sqrt(sum((h_new-h1).^2));

2 件のコメント

Aziz
Aziz 2012 年 10 月 3 日
nice share Junaid... can i ask question similar to this one... i also have problem to compare 2 image at onetime, example of 2 simple image... http://i50.tinypic.com/259e5hh.jpg http://i47.tinypic.com/21m6q9c.jpg
so it is possible to get the x and y axis value for this difference?
jenifer
jenifer 2012 年 10 月 29 日
I also have one doubt related to this..I want to classify normal and abnormal images..I m having histogram as a features for normal and abnormal images.. How can i compute the feature vectors for these histograms...

サインインしてコメントする。

その他の回答 (5 件)

Junaid
Junaid 2011 年 12 月 21 日

1 投票

Dear FIR,
Similar question was asked by one fellow. The solution you can see from following URL. I hope it might help you.

6 件のコメント

FIR
FIR 2011 年 12 月 21 日
Juniard i have gone through it,but final question was not answered,which i need,I have one query image ,and other images in .mat file which are concatanated,now i have to find the euclidean distance for image retrieval,please help
Junaid
Junaid 2011 年 12 月 22 日
Dear FIR,
Sorry FIR I can't overview your code you sent to me. To compute the Euclidean distance between images or image features, your vector length or matrix should have same dimensions. Let say your first image has 1 x 460 vector then your query should be of same length. If that is the case then you can easily find Euclidean distance by the code I have written below. You just have to ensure that the dimensions are the same. I give you example of Histogram feature of image.
I = imread('myimage.jpg');
I = rgb2gray(I);
h = imhist(I); % this will have default bins 256
% now second image
J = imread('myimage1.jpg');
J = rgb2gray(J);
h1 = imhist(J); % this will have default bins 256
E_distance = sqrt(sum((h-h1).^2));
You can do it for 1000 images as well.
sandeep kumar kailasa
sandeep kumar kailasa 2017 年 2 月 12 日
How to get it for 10 images
Image Analyst
Image Analyst 2017 年 2 月 12 日
Sandeep, two code snippets for processing a sequence of files are in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
suma g
suma g 2018 年 2 月 8 日
sir, how to calculate the distance only for particular feature say left eye and right eye
Image Analyst
Image Analyst 2018 年 2 月 8 日
You'd use the sqrt() function for that (calculating distance), once you have their coordinates.

サインインしてコメントする。

Junaid
Junaid 2011 年 12 月 21 日

1 投票

Dear Fir,
You have Query image Q, you want to compute euclidean distance of Q with all images in database. Is that you want ? If yes then Let say query Image Q is grayscale image so you can present it as feature vector
Q = Q(:); % this is one [size(Q,1) x size(Q,2) by 1]
all the images in database should have same dimensions. Let say every image and query image should have same number of pixels.
Now you load your database
D = load('Database.mat');
we assume that each column is one image and your number of columns should be size of Database. or if you want to present each row as image then simply take the transpose.
Q= repmat(Q,1,size(D,2));
E_distance = sqrt(sum((Q-D).^2));
Now E_distance have euclidean distance of Q with all images in database D.
Do let me know if It solved your problem.

3 件のコメント

Image Analyst
Image Analyst 2011 年 12 月 21 日
He said "I have extracted features of 100 images and stored in .matfile.i have to find euclidean distance for those" so he wants to compare feature vectors, not the images themselves. Anyway trying to compare images on a pixel by pixel basis is only useful for certain kinds of situations, like characterizing compression/decompression algorithms, not, say for retrieving all images from a huge database that have faces in them.
FIR
FIR 2011 年 12 月 21 日
Juniard i have uploaded my files,plz look it and suggest ideas
I have attached my program files plz see it and give suggestion
http://www.sendspace.com/file/t58trj
FIR
FIR 2011 年 12 月 22 日
Juniard i get error wen executing ur code
Undefined function or method 'minus' for input arguments of type 'struct'.
Error in ==> features at 22
E_distance = sqrt(sum((Q-D).^2))

サインインしてコメントする。

Sean de Wolski
Sean de Wolski 2011 年 12 月 20 日

0 投票

doc bwdist
doc graydist
might be some places to start.

1 件のコメント

FIR
FIR 2011 年 12 月 21 日
Sean can u tell how to process for image retrieval using query image by euclidean distance

サインインしてコメントする。

Image Analyst
Image Analyst 2011 年 12 月 21 日

0 投票

The Euclidean distance is another image. What do you mean "query image by Euclidean distance"? I don't even know what that means. Please explain.

6 件のコメント

FIR
FIR 2011 年 12 月 21 日
I have extracted features of 100 images and stored in .matfile.i have to find euclidean distance for those and also i have to take an query image and find euclidean distance,and have to retrieve the image ..can u help please
Image Analyst
Image Analyst 2011 年 12 月 21 日
That's not when you'd use bwdist(). You simply need to use the Pythagorean theorem on your feature vectors:
generalizedDistance = sqrt(mean((featureVector1 - featureVector2)^2));
Weight the various features (elements) if you want to or need to. This will compare the feature vectors of two images. Then compare the feature vector of your reference image to the feature vector of all other images (by calculating generalizedDistance ) to see which image has a feature vector closest to the feature vector of your reference image.
FIR
FIR 2011 年 12 月 21 日
I have features vectors im .mat file
[1x487 double] [1x487 double] [1x487 double] [1x359 double] [1x359 double] [1x487 double] [1x487 double]
like this i have 100 values ,how to calculate euclidean distance for this,please tell
Image Analyst
Image Analyst 2011 年 12 月 21 日
I don't understand that. What is that? Is your feature vector actually a cell array where the first cell has a 487 element row vector, same for the second cell, the third cell has a 359 element row vector, etc. Do you have 100 cells in your cell array? Feature vectors virtually never have thousands of features in them like that. I think you've chosen the wrong features. What does each feature represent? They should be things like the mean, standard deviation (for each color), perhaps the area fraction of edges or of "skin" pixels, maybe the presence of certain shapes, etc. Here's a nice database comparison that gets color feature vectors and retrieves images with those colors you select in it:
http://labs.ideeinc.com/multicolr/
FIR
FIR 2011 年 12 月 21 日
I have attached my program files plz see it and give suggestion
http://www.sendspace.com/file/t58trj
Image Analyst
Image Analyst 2011 年 12 月 21 日
I probably won't get to it. I'm leaving on 9 day vacation to Florida in a couple of hours.

サインインしてコメントする。

shradha naik
shradha naik 2017 年 2 月 8 日

0 投票

hi.. i needed some help regarding implementing quadtree decomposition and histogram based image retrieval i wanted to apply quadtree on an image and then on the segmented image histogram needs to be computed can u please help me out??

カテゴリ

質問済み:

FIR
2011 年 12 月 20 日

コメント済み:

2020 年 10 月 17 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by