MATLAB实现比特平面分层(不使用自带bitget函数)
数字图像处理第三版中文版(冈萨雷斯),P71复现
考虑到自己是初学数字图像处理,为了掌握比特平面分层的思想,不是用bitget函数。这里不累述原理。
这里附两个链接:
【1】参考比特平面分成程序。源码有些小问题,会将数值超过判定范围的值都置零了,而如果数值超过判定范围且该位为1的被错误置零。
【2】使用自带bitget函数的代码
直接上代码
clc
clear all
Image = imread('Fig0314(a)(100-dollars).tif');%读取图像
subplot(3,3,1)
imshow(Image);
title('原始图像');
[M,N] = size(Image);
Temp = double(Image);
BPLImage = zeros(M,N,8);
n = 8;
for k=1:8
for i = 1:M
for j = 1:N
if (Temp(i,j) / 2^(n-1)) >= 1 %判断是否在该比特层中
BPLImage(i,j,n) = 1;
Temp(i,j