how to find euclidean distance

조회 수: 7 (최근 30일)
deepika m
deepika m 2013년 2월 7일
댓글: Image Analyst 2017년 3월 2일
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.

답변 (2개)

cr
cr 2013년 2월 7일
your matrix b is 3-D. try using dist function on 2D slices of matrix b.

Image Analyst
Image Analyst 2013년 2월 7일
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
Walter Roberson
Walter Roberson 2017년 3월 2일
pdist() to find Euclidean distance.
Image Analyst
Image Analyst 2017년 3월 2일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by