2015-05-25 58 views

回答

2

在MATLAB中獲取單個位平面非常簡單。使用bitget函數。

bitget需要一個整數類型的數組/矩陣(uint8, uint16等),並且它返回一個相同大小的數組/矩陣,該數組/矩陣給了您在指定位置的位。

例如,假設你的形象是大小M x NA和你想要的最顯著位,你可以這樣做:

B = bitget(A, 1); 

B將是一個M x N矩陣,其中每個位置給你最顯著位用於圖像中的相應像素。您可以將第二個參數從1更改爲所支持類型的位數,以便從最低有效位1到最高有效位K獲得期望的位位置。


如果你想在一個單一的3D矩陣中的所有位平面,可以很容易地通過以下方式假設存儲在A 8位無符號整數灰度圖像來完成:

B = zeros(size(A, 1), size(A, 2), 8, 'uint8'); 
for idx = 1 : 8 
    B(:,:,idx) = bitget(A, idx); 
end 

這將產生8個切片的3D矩陣B,其中第一切片(B(:,:,1))表示直到最後一個切片(B(:,:,8))的每個像素位置處的LSB,其表示每個像素位置處的MSB。

閱讀更多有關MathWorks官方文檔的功能