我想減小2D圖像的尺寸。我有大小爲100x50
的圖像補丁,我想減少這些補丁的尺寸。通過PCA降低2D圖像的尺寸
我需要先補丁(100x50)
轉換成向量(5000x1)
,然後應用PCA,以減少尺寸或我可以直接申請PCA降維的補丁(100x50)
,減少尺寸,讓我們說2x50
?
我想減小2D圖像的尺寸。我有大小爲100x50
的圖像補丁,我想減少這些補丁的尺寸。通過PCA降低2D圖像的尺寸
我需要先補丁(100x50)
轉換成向量(5000x1)
,然後應用PCA,以減少尺寸或我可以直接申請PCA降維的補丁(100x50)
,減少尺寸,讓我們說2x50
?
您可以直接應用2D-PCA。至少它存在並且應該比1D-PCA更好地執行(簡化)。二維PCA:一種基於外觀的人臉表示和識別的新方法。二維PCA:基於外觀的人臉表示和識別的新方法。 IEEE Transactions on Pattern Analysis and Machine Intelligence,26(1),pp.131-137。 Source
不幸的是我不知道Matlab的實現。
複製可以在http://www.dtic.upf.edu/~afrangi/articles/pami2004.pdf – Trilarion 2015-02-06 10:22:47
找到,我做了這個實現 'noofdim = 4 [r,c] = size(img); %計算cov矩陣和PCA矩陣m = mean(img')'; S =((img-m * ones(1,c))*(img-m * ones(1,c))'); [Coeff latent] = eig(S); [latent,ind] = sort(diag(latent),'descend'); M1 = Coeff(:,ind(1:noofdim)); latent1 = latent(1:noofdim);' – 2015-02-06 10:27:01
的實現是否正確? – 2015-02-06 10:56:07
PCA將矢量空間中的點作爲輸入並將其投影到子空間上。用這種方式表達,那麼很容易記住你需要調整你的補丁到一個矢量。
使用Matlab,打電話給你的補丁X
,你可以通過調用X(:)
輕鬆完成,你不必與reshape
混淆。
降維是R^n -> R^m
其中n>m
所以根據您的文字給我的感覺,你的意思是這個:
分辨率調整
數據減少
對於圖像縮放或數據壓縮有很多方法可以做到這喜歡:
線性/雙線性/立方/ ...過濾
頻域DFFT/DCT/DST爲基礎的數據還原
PCA
所以答案顯著數據真的取決於你需要達到什麼目的以及目的是什麼
由於最初編寫的內容不清楚您是要調整圖像大小還是應用標題中的PCA。我調整了標題以反映問題文本中的問題。 – Trilarion 2015-02-06 10:25:47