1

我是MATLAB中的新手,我有一組bmp圖像,我需要將其轉換爲像素灰度值作爲圖像的特徵向量。任何人都可以告訴我如何做到這一點? 我需要使用這些像素灰度值作爲特徵,然後執行像PCA/LDA這樣的操作。 我試過imread(),但它返回給我一個矩陣..我覺得特徵向量將只是一個行向量。將PNG圖像轉換爲像素灰度值特徵向量

問候,

回答

1

imread()是做了正確的道路。然後,只需從矩陣轉換爲矢量。例如:

>> X = randi(255, 10) 

X = 

    208 41 168 181 112 71 192 215 90 20 
    231 248 10  9 98 174 66 65 212 14 
    33 245 217 71 196 168 130 208 150 136 
    233 124 239 12 203 42 179 63 141 199 
    162 205 174 25 48 31 228 237 234 239 
    25 37 194 210 125 128 245 90 73 34 
    72 108 190 178 114 245 140 51 194 146 
    140 234 101 81 165 87 36 65 193 120 
    245 203 168 243 181 150 39 158 98  4 
    247 245 44  9 193 58 66 121 145 86 

>> X(:) 

ans = 

    208 
    231 
    33 
    233 
    162 
    25 
    72 
    140 
    245 
    247 
... 

然後,你可以用[]疊加您不同的看法,一併做PCA。

+0

感謝您的快速回復。那麼如果imread()返回一個72x96x3的矩陣,我該怎麼辦?我應該使用rgb2gray()嗎?如果是,那麼72 * 96是6912,所以每行特徵向量將有6912列值是否可以? – rinku

+0

正確。 PCA最終會受到可用內存的限制,但它應該可以與許多功能配合使用。 –

+1

順便說一句,如果你想看看計算機視覺領域,而不是僅僅使用所有的原始像素數據,還有很多其他有趣的方法可以從圖像中提取特徵。祝你好運! –