Are the eigenvectors of an image the same, even if the object inside the image change location?

42 Views Asked by At

I have a curious question.

I have two images.

Picture 1:

enter image description here

And picture 2:

enter image description here

If I create the eigenvectors of each image by using MATLAB code. Here I'm using Singular Value Decomposition.

>> pic2 = rgb2gray(imread('pic2.bmp'));
>> pic1 = rgb2gray(imread('pic1.bmp'));
>> [U2, E2, V2] = svd(double(pic2));
>> [U1, E1, V1] = svd(double(pic1));

Then I plot them using scatter plot

>> scatter(U1(:, 1), U1(:, 2))
>> hold on
>> scatter(U2(:, 1), U2(:, 2))
>> grid on
>> legend('Pic1', 'Pic2')

It's seems to be no difference at all. 100% the same.

enter image description here

Question:

Does that mean that eigenvectors remains exactly the same, no mather of the location of the image? So if the red dot would be in a different location, the eigenvectors will still be the same as long the shape is the same? That also means I cannot compute the location of the red dot, if the eigenvectors are the same?

1

There are 1 best solutions below

12
On BEST ANSWER

You've asked about the eigenvectors but you've computed the SVD; these are not the same thing! The SVD is invariant under permuting either rows or columns, while this is quite false for the eigendecomposition. That's why it has this behavior: you can get from one image to the other by permuting some rows, then permuting some columns.