图像位平面分层及matlab实现

什么是图像的位平面bit plane?

图像的位平面还是比较容易理解的。一幅256个灰度级的图像可以分解成8个位平面,原因就是2^8=256,换句话说每一个像素点的灰度值可以由8个二进制位来表示,所谓的位平面(bit plane)就是依次取出每个像素点的数值组成一个位平面。举一个简陋的例子,假设当前图像就有两个像素点,这两个像素点的灰度值分别是1和3,那么其对应的二进制位分别为10000000和11000000,那么该图像分解成8个位平面依次为11、01、00、00、00、00、00、00,即通过取前面两个二进制位的第一位、第二位、第三位等组成第一个位平面,第二个位平面,第三个位平面等。可以发现,每一个位平面均为一个二值图,也就是说像素点的灰度值非0即1。

位平面的matlab实现

X=double(rgb2gray(imread('C:\Users\NICAI\Desktop\test.bmp')));%将原始图像转换为灰度图像,如果本身就是灰度图可以去掉rgb2gray函数
[h w] = size(X);
subplot(3,3,1);
imshow(X,[]);
title('原始图像');
for k=1:8
 for i=1:h
     for j=1:w
      tmp(i,j) = bitget(X(i,j),k);%bitget函数首先将X(i,j)处灰度值分解为二进制串,然后取第k位
     end
 end
 subplot(3,3,k+1);
 imshow(tmp,[]);
 ind = num2str(k);
 imti = ['第',ind,'个位平面'];
 title(imti);
end

图像演示

 

代码部分函数参照网上解释给出,我对此不拥有版权,仅仅记录在此方便自己总结温习,倘若能顺便帮助一些人那就再好不过了!有任何问题可以发邮件至 jzwangATbjtuDOTeduDOTcn 讨论交流。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值