形态学图像处理

形态学【生】【数】 morphology

        从图像中提取表达和描绘区域形状的有用图像分量, 边界 骨架  凸壳等

1 Prerequisite  P403

     1 一个集合的反射表示为 定义如下:

     2 如果是描述图像中物体的像素的几何( 二维点 ),则坐标被代替的点集

     3 集合按照的平移定义为:

     4 形态学中几何的泛着和平移广泛用来表达基于结构元( SE ) 的操作:研究一副图像中感兴趣特性所用的小集合或子图像。

        * 阴影方块——  SE的成员

        * 标记 "×"——   不关心条件

        * 标记 "·" ——   中心位置

        * 白色背景——  为图像操作,添加最小可能数量的背景元素形成 “矩形阵列”

 

2 腐蚀和膨胀

     1 腐蚀

         中的集合,  表示的腐蚀

        意义:包含在中,不予背景共享任何公共元素,故腐蚀表达式 等价于:

                  其中   是 的补集。

        例子: wikipedia http://en.wikipedia.org/wiki/Erosion_(morphology)

     2 膨胀

        表示的膨胀,定义为:

        意义:至少有一个元素是重叠的 等价于:

 

         对偶性

         * 膨胀和腐蚀彼此关于集合求补运算和反射运算是对偶的,即

                     以及   

                  的腐蚀,是膨胀的补,反之亦然。

          *证明:P407

                   

3 开操作与闭操作

        开操作:一般会平滑物体的轮廓。断开较窄的狭颈并且消除细的突出物

        闭操作:同样也会平滑轮廓的一部分,但与开操作相反,他通常会弥合较窄的间断和西昌的沟壑,消除小的孔洞,填补轮廓线中的断裂

 

4 击中或击不中变换( HMT )

        *用于形状检测的基本工具

        ☆ P411 & http://blog.sina.com.cn/s/blog_4ca086fc0100ie18.html

 

5 基本形态学算法

       1 边界提取

          做法: 表示集合 的边界,通过 腐蚀,而后执行 和腐蚀结果之间集合做差

          理解:将原图像边界缩小一圈,再使用图像与其求差

       2 孔洞填补

          P425 书上的方法好像有错

 

% Matlab
I = [
    0 0 0 0 0 0
    0 1 1 1 1 0
    0 1 0 0 1 0
    0 1 0 0 1 0
    0 1 0 0 1 0
    0 1 0 0 1 0
    0 1 1 1 1 0
    0 0 0 0 0 0
    0 1 0 0 0 1];
    
I = logical(I);
subplot(231);imshow(~I);title('I');

% I 的反
I_c = logical(~I);
subplot(232);imshow(~I_c);title('I^c  I 的反');

% F 是边界处理后的图像
% 边界元素 = 1 - I(i,j)
[r c] = size(I);
F = zeros(r,c)
for i = 1 : r
    for j = 1 : c
        if i==1 || j==1 || i==r || j==c
            F(i,j) = 1 - I(i,j);
        end
    end
end
subplot(233);imshow(~F);title('经过处理边界图像 F');

% B在F上做膨胀
B = ones(3);
TMP_F = zeros(r+2,c+2);
TMP_F([2:r+1], [2:c+1]) = F;
TMP = zeros(r+2,c+2);
for i = 2:r+1
    for j = 2:c+1
        if TMP_F(i,j) == 1
            TMP(i-1,j-1) = 1;
            TMP(i-1,j) = 1;
            TMP(i-1,j+1) = 1;
            TMP(i,j-1) = 1;
            TMP(i,j+1) = 1;
            TMP(i+1,j-1) = 1;
            TMP(i+1,j) = 1;
            TMP(i+1,j+1) = 1;
        end
    end
end
F_oplus_B = TMP([2:r+1], [2:c+1]);
subplot(234);imshow(~F_oplus_B);title('F \oplus B ');

% 经过腐蚀的F交上 I^c (I的反)
F_oplus_B_cap_I_c = xor(F_oplus_B,I_c);

subplot(235);imshow(~F_oplus_B_cap_I_c);title('F \oplus B \cap I^c');

% 取反 OK
subplot(236);imshow(F_oplus_B_cap_I_c);title('final');

 

          补洞不同方法 http://codesmesh.com/hole-filling-of-image-in-matlab/

 

       3 连通分量提取

          * MATLAB  http://www.mathworks.cn/cn/help/images/ref/bwlabel.html

       4 凸壳

       5 细化

       6 粗化

       7 骨架

       8 裁剪

       9 形态学重建

 

6 灰度级形态学

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值