0

画像特徴ベクトル行列の 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))

コードのエラーに関するヒントは役に立ちます。

4

2 に答える 2

5

IMSHOWは、画像を自動的にスケーリングしません。したがって、たとえば固有面に 0 から 0.3 の値しかない場合、すべてが非常に暗くなります。imshow(reshape(PC(1,:),64,64),[])代わりに試してください。

于 2011-10-29T17:12:29.380 に答える