比特分层作用: 可以直观的看到某一灰度范围对图像的贡献,白色为有贡献,黑色无贡献;最终,可以通过某几层主要贡献层重建原图,实现图像压缩。
【0~2)对应第1比特层,
【2~4)对应第2比特层,
【4~8)对应第3比特层,
【8~16)对应第4比特层,
【16~32)对应第5比特层,
【32~64)对应第6比特层,
【64~128)对应第7比特层,
【128~256)对应第8比特层。
若图像存在对应比特层的灰度值,像素值赋值为255(白),不在该范围内,赋值为0(黑).
matlab实现:
A=imread('a.bmp');%读取图像
A=rgb2gray(A);
A1=A;
[m,k,s]=size(A1);
subplot(3,3,1)
imshow(A);
for n=1:8
for i=1:m
for j=1:k
if(A(i,j)>=2^(n-1)&&A(i,j)<2^n)%判断是否在该比特层中
A1(i,j)=255;
else
A1(i,j)=0;
end
end
end
subplot(3,3,n+1)
imshow(A1);
end
效果: