位平面原理
一个八位的灰度图能够分离出八个位平面,即2^8=256的灰度级能够用八个二进制数0或1表示,每个位平面仅有0/1组成,如原图中灰度值为80的点,由于80 = 01010000,因此,在第五个和第七个位平面中对应点的值是1,其余位平面对应点的值为0,代表80 = 2^4 + 2^6.
matlab代码:
% bitplane-loading
clear all
close all
img = imread('Lena.bmp');
[h,w] = size(img);
subplot(3,3,1);
imshow(img,[]);
title('原始图像');
% 渐近加载
res = im2uint8(zeros(h,w)); %转换类型
for k=1:8
tmp = bitget(img, 8-k+1);
%tmp = double(tmp);
tmp1 = im2uint8(zeros(h,w));%转换类型
for i = 1:h
for j = 1:w
tmp1(i,j) = power(2,8-k); %%初始化值都是2^(8-k)的矩阵,实际传输可预先初始化好以更快显示图像
end
end
res = res + tmp.*tmp1; %%渐近加载图像
subplot(3,3,k+1);
imshow(res,[]);
ind = num2str(k);
imti = ['已叠加',ind,'个位平面'];
title(imti);
end
结果如图

本文详细介绍了如何使用MATLAB实现位平面分解,将一个8位灰度图像分解为8个位平面,并通过渐近加载的方式逐步叠加这些位平面,以可视化方式展示图像细节的逐渐显现过程。
6964

被折叠的 条评论
为什么被折叠?



