2016-04-26 22 views
0

組み込み関数pcaを使用して画像の最初の主成分を取得したいとします。どうやってやるの?画像処理用PCA

[COEFF, SCORE] = pca(image); 
SCORE(1:size(SCORE,1),:)=0; 
reconstructed_image = SCORE/COEFF + repmat(mean(image,1),size(image,1), 1); 
I=reshape(reconstructed_image,[256,256]); 
figure 
imshow(I,[0 255]) 

私は画像の拳行を取得:

Iは、次のコードを試みました。どのように私はそれを正しく行うことができますか?

答えて

1

「1枚の画像をPCA」できません。これがしたのはではありません。は最初の行を与えて、通常は測定値を設定するように、すべての行を観測値として使用し、列をパラメーターとして使用しました。そのため、すべてのパラメータで分散を計算し、長さが列数に等しいベクトルを与えました。あなたはおそらくこれを行うためにもっと多くの画像を必要とします。

MATLABのPCAの主な落とし穴について説明していますので、続行する前に次の回答をお読みください。

PCA in matlab selecting top n components

+0

[OK]を、私のイメージの行はイメージが、その後どのように私は私の答えに書いたようにあなたはすでに、観察とあなたの画像のそれぞれの行を処理している – Mohammed

+0

最初のPCAを得ることができていることを検討してください。線形代数についての知識があれば、 'pca'を通して一度実行した最初の主成分であることを知るべきです。私はそれがあなたに何か良いことをすることを非常に疑っていますが、あなたが私に問題の内容を教えていないので、私はあなたのためにそれを解決することはできません。ちょっとした注意:「最初のpca」のようなものはありません。 *主成分分析*は、*主成分*を提供します。あなたはそれを使用する前に技術について何かを学びたいと思うかもしれません。 – Adriaan