特征脸未正确显示且非常暗

rin*_*nku 0 matlab face-recognition computer-vision eigenvector

我需要使用PCA显示前10个特征脸,用于图像特征向量矩阵.

我正在使用以下matlab代码来创建第一个特征脸,但我变得非常黑暗并且不那么正确的特征脸.eFea是240x4096的矩阵,其中每行代表64x64的图像

 newData = eFea';
data  = newData;
[M,N] = size(data); 

mn = mean(data,2); 
data = double(data) - repmat(mn,1,N); 
% construct the matrix Y 
Y = data' / sqrt(N-1); 
% SVD 
[u,S,PC] = svd(Y,0); 


imshow(reshape(PC(1,:),64,64))
Run Code Online (Sandbox Code Playgroud)

关于代码中的错误的任何提示都会有所帮助.

Jon*_*nas 5

IMSHOW不会自动缩放图像.因此,如果在特征脸中只有0到0.3之间的值,那么一切都会非常暗.试试吧imshow(reshape(PC(1,:),64,64),[]).

  • imshow(I,[lo,hi])设置I的显示范围,所以lo和低于lo的任何值显示黑色,hi和高于hi的任何值显示白色.使用[]而不是[lo,hi]设置lo = min(I(:))和hi = max(I(:)). (3认同)