-3
我想知道如何在MATLAB中提取圖像的位平面進行圖像壓縮?圖像位平面分解
我想知道如何在MATLAB中提取圖像的位平面進行圖像壓縮?圖像位平面分解
在MATLAB中獲取單個位平面非常簡單。使用bitget
函數。
bitget
需要一個整數類型的數組/矩陣(uint8, uint16
等),並且它返回一個相同大小的數組/矩陣,該數組/矩陣給了您在指定位置的位。
例如,假設你的形象是大小M x N
的A
和你想要的最顯著位,你可以這樣做:
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官方文檔的功能