有關PCA(Principal Component Analysis)之後輸出PC影像的部分 |
缺席
|
Reastlin
一般會員 發表:1 回覆:2 積分:0 註冊:2004-12-14 發送簡訊給我 |
小弟第一次發文,請多指教,假設我要對多波段的影像進行PCA
程序應該是這樣:
1.運算各波段間的covarience得到covarience matrix(對稱)
2.運算此matrix的eigenvalue與eigenvector
3.利用eigenvector輸出PC影像(原本有n band就會有n個eigen value與PC Image) 目前我作出來的結果,1,2沒有問題,我和商業軟體(ENVI)作出來的數值比較過了,基本上是一樣的,除了小數下面好幾位應該是進位之類的問題以外數值應該沒有錯 但是第三步我輸出的影像和商業軟體的結果不同....差很多,我作出來的幾乎是一片混亂..orz 所以我想要問一下我的程序上是不是有問題或是我漏了什麼地方
以下是我對PC影像輸出的認知: 1.和PC1相關的是第一個eigenvector,其對應的eigenvalue的值是最高的
2.對於n波段影像中的每個pixel P(i,j),其都會有n個灰階值分別對應原始影像中n個波段的灰階值,可以說是一個灰階值的向量(n個維度).
3.我把此灰階值向量的第一個元素(第一個band的灰度值)和第一個eigenvector的第一個元素相乘 然後和 第二個元素(第一個band的灰度值)與第一個eigenvector的第二個元素相乘的結果相加,以此類推
4.也就是說我去計算每個波段的灰階值和對應的eigenvector元素相乘之後的總合
5.這個值就是PC1上面pixel P(i,j)的新灰階值,以此類推就可以得到PC1所有pixel的灰階值,輸出PC1.
6.也輸出其他的PC影像. 可是我最後輸出的結果差異實在太大,不知道是否是小弟遺漏了什麼地方還是有哪邊觀念錯誤了呢?
|
無故障
一般會員 發表:17 回覆:69 積分:17 註冊:2004-03-11 發送簡訊給我 |
|
Reastlin
一般會員 發表:1 回覆:2 積分:0 註冊:2004-12-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |