位图切割问题 冈萨雷斯(转)

关于灰度的位图切割问题,貌似是太简单,翻阅各种论文和博客无人提及,即便是冈萨雷斯的书中提的也很简单。转了一大圈,发现课后习题答案就说的很明白。大致总结如下 
 
一个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

posted @ 2015-10-20 12:24  Qin_Moon  阅读(999)  评论(0编辑  收藏  举报