全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2226
推到 Plurk!
推到 Facebook!

有關PCA(Principal Component Analysis)之後輸出PC影像的部分

缺席
Reastlin
一般會員


發表:1
回覆:2
積分:0
註冊:2004-12-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-12-13 17:35:15 IP:211.76.xxx.xxx 訂閱
小弟第一次發文,請多指教,假設我要對多波段的影像進行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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-20 19:40:50 IP:61.221.xxx.xxx 未訂閱
可不可以貼圖讓人參考?謝謝
------
嘿嘿嘿
Reastlin
一般會員


發表:1
回覆:2
積分:0
註冊:2004-12-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-30 15:39:56 IP:61.61.xxx.xxx 訂閱
一回頭已經過了一年多,我也畢業了,不過沒解決的問題還是要解決才好。

後來發現其實是很蠢的問題,Canvas的顯示是使用1byte的(0~255),但是運算出來的影像卻是float型別(這邊指的是PC影像)

顯示會有問題是因為我沒有把PC影像Normalize成24bit的格式,所以顏色會很奇怪。
系統時間:2024-05-02 22:58:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!