图像处理 | 比特平面分层以及图像重构

比特平面分层

1、实现思路

对于一幅8比特的图像而言,其灰度级最大值为255(对应二进制数11111111),有8位二进制位,这8个二进制分别对应每一层比特平面的灰度值(最高位对应最高阶比特平面)。因此,只要我们将图像的每一个像素点的灰度级转换为8个二进制位的数字,然后分别提取出每个二进制位数字,按照对应的位置赋值给每一个比特平面对应位置的像素即可。
具体实现步骤如下:

  1. 获取输入图像的行和列(分别记为r,c),生成一个三维零矩阵 imageBit[r c 8];
  2. 遍历原图像每一个像素点,将其值转换为8位2进制字符串(调用dec2bin函数),然后提取转型并赋值到对应比特平面(通过一个 i=1-8 的for循环,分别提取出字符串的每一位,然后赋值到对应平面的对应位置即可)。

2、编码实现

以下是 matlab 代码:

function imageBit = myImageBitPlaneSlicing(img)
% 用于比特平面分层
% img:一幅m×n×18比特图像;
% imageBit:一个m×n×i (i = 1, 2,, 8)的矩阵,第i个通道上存储第i阶比特平面图像

img_double = double(img);
[r c] = size(img_double);
imageBit = zeros(r,c,8);
% 遍历每一个像素点,将其值转换为82进制字符串,然后提取转型并赋值到对应比特平面
for row = 1 : r
    for col = 1 : c
        % 将灰度级转为82进制字符串
        bin_str = dec2bin(img_double(row, col),8);
        for i = 1 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值