位图切割问题 冈萨雷斯(转)
关于灰度的位图切割问题,貌似是太简单,翻阅各种论文和博客无人提及,即便是冈萨雷斯的书中提的也很简单。转了一大圈,发现课后习题答案就说的很明白。大致总结如下
一个8比特图像,每一个像素由8位表示灰度(0-7)。想要求第i个平面的灰度变换函数时,就对第i位进行检测,这一位是1,就把其他位全部变成1,这一位是0,就把其他位全部变成0,于是就可以得到一个黑白的二值图像。
0--127==》0 //这是对第7位检测(即第7位平面) 128--255==》1
注:这里以全部为1和全部为0是为了简化说明,不一定都转成黑白二色,可以转成别的灰度,但是每一位平面变换完是一个二值图像。
它的意义就是能明白的看出每一位变化时对整个图像的相对重要性,看冈萨雷斯给出的例图可以很明白它的作用。
冈萨雷斯 数字图像处理 第三章 灰度变换--位图切割
matlab 源代码txt格式:
I = imread('E:/train.jpg');
imshow(I);
I = double(I);
[M, N] = size(I);
for k = 1: 8
J = zeros(M,N);
for i = 1: M
for j = 1:N
temp = I(i, j);
s1 = 0; s2 = 0;
range = [k: -1: 1];
for d = range
s1 = 2^(8-d) + s1; s2 = 2^(8-d+1);
if temp >= s1 & temp < s2;
J(i, j) = 255; break;
end
end
end
end
J = uint8(J);
figure; imshow(J);
end