how to find euclidean distance
Show older comments
I want to find the relative Euclidean distance of a pixel to its 8 neighbours. Kindly help me with the function or relative formula.
a=imread('duck.png');
max=std2(a);
b=rgb2ycbcr(a);
sdy=std2(b);
N=sdy/max;
H=1-N;
di=dist(b);
The error message is:
??? Error using ==> ctranspose
Transpose on ND array is not defined.
Error in ==> boiler_weight at 36
if nargin < 2,b=a; a=a'; end
Error in ==> dist at 90
boiler_weight
Error in ==> roughuse at 7
di=dist(b);
Kindly help me to solve this.
Answers (2)
cr
on 7 Feb 2013
0 votes
your matrix b is 3-D. try using dist function on 2D slices of matrix b.
Image Analyst
on 7 Feb 2013
0 votes
Your question is not clear. The Euclidean distance of a pixel to it's neighbors in x-y space is either 1 or sqrt(2). But it looks like maybe you wanted the distance in Y-Cb-Cr color space, which is quite different. For that you'd need to extract the Y, Cb, and Cr component of each pixel and use the formula sqrt((y2-y1)^2 + (Cb2-Cb1)^2 + (Cr2-Cr1)^2).
By the way, don't use "max" as a variable name because you'll destroy the built in max() function!!!!!!!!!!!!!!!!
3 Comments
Mohammed Qusay
on 2 Mar 2017
hi im trying to detect the hands from face skin color managed to detect the face and found the median of its colors in the Ycbcr space but i dont kow how to find the Euclidean distance so i can detect the hand .. any help ?
Walter Roberson
on 2 Mar 2017
pdist() to find Euclidean distance.
Image Analyst
on 2 Mar 2017
That distance, the distance between two points in a colorimetric space, is called "Delta E". I have a tutorial for it in my File Exchange http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
Categories
Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!