数字图像处理笔记(形态学)

1 基础介绍

  • 首先需要具备集合论的相关知识,交集,并集,补集,差集等运算。注意,这些运算要求图像前景为白色,背景为黑色,若反过来,则会导致运算也是反的(交集运算会变成补集,也包括后面的膨胀与腐蚀)。
    在这里插入图片描述
  • 还需要加入两种运算,映射与平移。其中,映射就是原图 A {A} A关于原点的对称,记作 A ^ \widehat{A} A ,而将图像 B {B} B按点z的坐标平移则记作 ( B ) z {(B)z} (B)z

2 膨胀

  • 膨胀是在二值图像中加长或变粗的操作。类似于word里的对文字加粗操作。
  • 就是让结构元素的原点遍历图像,并将遍历期间结构元素覆盖到的地方置为1。
  • 代码:I = imdilate(I, SE)
  • 示例:
    subplot(121), imshow(I1), title('原图1');
    se = strel('square',5);  % 5*5的正方形结构元
    I2 = imdilate(I1, se);
    subplot(122), imshow(I2), title('膨胀');
    

  • 还可以用来修复断裂的文字。
    在这里插入图片描述

3 腐蚀

  • 腐蚀收缩或细化二值图像中的元素。
  • 让结构元素的原点遍历图像,若某点的值为1,但结构元素有一部分位于原图像中的值为0的位置,则将,原点置为0。其实也就是提取能将结构元素完全覆盖的区域。
  • 代码:I = imerode(I, SE)
  • 示例:
    subplot(121), imshow(I1), title('原图1');
    se = strel('square',5);  % 5*5的正方形结构元
    I2 = imerode(I1, se);
    subplot(122), imshow(I2), title('腐蚀');
    

  • 可以用来消除一些不必要的细线,从而突出感兴趣的区域。

4 膨胀与腐蚀的组合

  • 在图像处理的实际运用中,我们更多地是使用膨胀和腐蚀的组合。
4.1 开运算
  • 先腐蚀后膨胀,记作 A {A} A B {B} B
  • 开运算完全删除了不能包含结构元素的对象区域,平滑了对象的轮廓,断开了狭窄的连接,去掉了细小的突出部分。
  • 代码:I = imopen(I, SE)
  • 示例:
    I1 = imread('double.jpg');
    I1 = imbinarize(rgb2gray(I1));
    subplot(121), imshow(I1), title('原图');
    
    se = strel('square', 20);
    I2 = imopen(I1, se);
    subplot(122), imshow(I2), title('开运算');
    

在这里插入图片描述

4.2 闭运算
  • 先膨胀后腐蚀,记作 A {A} A· B {B} B
  • 与开运算一样,闭运算会平滑对象的轮廓。然而,与开运算不同的是,闭运算一般会将狭窄的缺口连接起来形成细长的弯口,并填充比结构元素小的洞(如下图所示)。
  • 代码:I = imclose(I, SE)
  • 示例:
    I1 = imread('broken_double.jpg');
    I1 = imbinarize(rgb2gray(I1));
    subplot(121), imshow(I1), title('原图');
    
    se = strel('square', 20);
    I3 = imclose(I1, se);
    subplot(122), imshow(I3), title('闭运算');
    

在这里插入图片描述

  • 一般可以先使用开运算消除图像中的小噪声,再用闭运算连接断裂部分。
4.3 击中或击不中变换
  • 是形状检测的一种基本工具。
  • 击中-击不中变换实际上对应两个操作,所以需要用到两个结构元素。
  • 如果两幅图像 A {A} A B {B} B交集为空,则称 B {B} B击中 A {A} A,反之为 B {B} B击不中 A {A} A
  • 一般来说,一个物体的结构可以由物体内部各种成分之间的关系来确定。为了研究物体(在这里指图像)的结构,可以逐个地利用其各种成分 (例如各种结构元素)对其进行检验,判定哪些成分包括在图像内,哪些在图像外,从而最终确定图像的结构。(比如检测汽车,可以分别检测两个轮子,车窗等子结构)。
  • 只有当结构元素与其覆盖的图像区域彻底相同时,中心像素的值才会被置为1,不然为0。
  • 代码:I = bwhitmiss(I, SE1, SE2)

5 拓展

  • 对二值图像的膨胀和腐蚀都可以拓展到灰度图像上。膨胀和腐蚀类似于空间卷积。
  • 膨胀运算定义为让结构元素中心遍历图像,让每个中心的值取结构元素定义域内原图像与结构元素图像相加后的最大值,而腐蚀则是最小值。
  • 灰度图像下,开运算还可以用来处理不均匀光照下的阈值操作,具体为,使用大小不能被前景对象完全包含的结构元素对图像进行开运算,然后用原图像减去开运算后的图像,即可得到一副具有均匀背景的图像,便可使用阈值处理了,也可以使用顶帽变换直接计算得到同样的效果。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值