Matlab 图像位平面分解

Matlab 图像位平面分解,matlab,image-processing,image-compression,decomposition,Matlab,Image Processing,Image Compression,Decomposition,我想知道如何在MATLAB中提取图像的位平面进行图像压缩?在MATLAB中获取单个位平面非常容易。使用该函数 bitget接受整数类型uint8、uint16等的数组/矩阵,并返回一个大小相同的数组/矩阵,该数组/矩阵在指定位置提供位 例如,假设图像的大小为M x N,并且需要最低有效位,则可以执行以下操作: B = bitget(A, 1); B是一个M x N矩阵,其中每个位置为图像中相应像素提供最低有效位。您可以将第二个参数从1更改为支持的类型所需的位数,以获得所需的位数位置,从1(最低

我想知道如何在MATLAB中提取图像的位平面进行图像压缩?

在MATLAB中获取单个位平面非常容易。使用该函数

bitget接受整数类型uint8、uint16等的数组/矩阵,并返回一个大小相同的数组/矩阵,该数组/矩阵在指定位置提供位

例如,假设图像的大小为M x N,并且需要最低有效位,则可以执行以下操作:

B = bitget(A, 1);
B是一个M x N矩阵,其中每个位置为图像中相应像素提供最低有效位。您可以将第二个参数从1更改为支持的类型所需的位数,以获得所需的位数位置,从1(最低有效位)到K(最高有效位)

如果希望在单个3D矩阵中包含所有位平面,则可以通过以下方式轻松实现:假设存储在三维矩阵中的8位无符号整数灰度图像:

这将生成一个包含8个切片的3D矩阵B,其中第一个切片B:,:,1表示每个像素位置的LSB,最后一个切片B:,:,8表示每个像素位置的MSB

阅读有关MathWorks官方文档中有关该函数的bitget的更多信息:

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