我对特征检测的概念很陌生。我用CCD_ 1简单地计算了矩阵的特征向量和本征值。我想知道如何计算灰度图像的特征值和特征向量。非常感谢。
eig函数接受类型为double或single的方阵作为输入。首先将图像从灰度(uint8或uint16)转换为双倍,然后使其变为正方形。参见以下代码示例:
%读入一些灰度图像:
Matrix = imread('lena_gray.jpg');
%将图像转换为双精度以使用eig函数:
imtype = class(Matrix);
Matrix = double(Matrix);
%找到适合eig操作图像的方形矩阵:
sz = size(Matrix);
m = max(sz);
mx = zeros(m, m);
mx(1:sz(1),1:sz(2)) = Matrix;
%查找特征向量和特征值:
[V, D] = eig(mx);
%检查矩阵是否使用矩阵分解生成A,并将其转换回原始值图像:
eval(['A = ',imtype,'(abs(V*D*V^(-1)));']);
figure
imshow(A)