if the coding is correct to find the euclidean distance

x=double(imread('result.png'));
[pc, score,latent,tsquare] = princomp(x);
y=double(imread('result1.png'));
[pc1,score1,latent1,tsquare1] = princomp(y);
img=latent;
img2=latent1;
dist = sqrt(sum((img - img2) .^ 2));
ITS A CORRECT CODING SIR

Answers (2)

Maybe. It is not obvious to me that taking the euclidean distance of the latent is meaningful, though. Also I see no inherent reason why the vectors would be the same length unless the images happened to be the same size.
Please note that uppercase characters means shouting in a forum.
It is hard to guess, if the coding is correct, when you do not explain, what the function should do. Perhaps you want a single number as output:
dist = sqrt(sum((img(:) - img2(:)) .^ 2))

1 Comment

princomp is documented as returning a vector for the "latent" output parameter, so it should not be necessary to use (:)

Sign in to comment.

Categories

Asked:

on 28 Mar 2013

Community Treasure Hunt

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

Start Hunting!