二值图像腐蚀与膨胀操作样例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25847123/article/details/73744575

申明: 仅个人小记

前言: 我之前对腐蚀与膨胀的概念理解存在错误。我原来的概念解决不了结构的原点设置在结构外部的情况。故在这里记一下。

小注: 刚开始操作的时候是同时有三张图,分别为原图像,结构元素图像,输出结果空白图像
注意: 原图像只是提供位置信息,不参与输出图像的构成。

一、操作方法简要说明

  • 腐蚀操作内容

    1. 先不管原点设置的位置,在原图中找出第一个和结构元素完全匹配的部分
    2. 想象着拿着结构元素往上面找到的位置上贴,这时得到结构元素中的原点(就是打上“+”的那个方块)对应着原图中一个方块
    3. 我们根据这个方块位置,在空白的输出图像上(第一次输出图像为空白的)相应的位置涂黑。
    4. 重复1~3,直至原图中所有能和结构元素完全匹配的情况用完
    5. 这是得到的输出图像便是结构元素对原图像进行腐蚀的结果
  • 膨胀操作内容

    1. 原图像结构元素原点的运行轨迹。
    2. 直接关注原点,想象着拿着结构元素,把结构元素的原点放在原图像上的第一个有效元素(指的是黑方块)。
    3. 这时,我们得到结构元素所有的黑色方块在原图像上位置。我们根据得到的位置,在的输出图像(第一次输出图像为空白的)上完全相同的位置涂黑。
    4. 重复1~3,得到输出结果图像,输出结果图像就是结构元素对原图像膨胀操作的结果。

二、 二值图像的腐蚀操作

1. 结构的原点设置在结构的内部情况举例


  • 图中左侧(a)为原图像,右侧(b)为结构元素。

    • 第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)
    •         

    • 第二步 然后我们根据原点在原图像中的位置,在输出图像上完全对应的位置上涂黑,即输出图像更变为

    • 第三步 在原图中寻找下一个完全和结构元素匹配部分,即

    • 第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即

    • 第五步 寻找完毕,操作完毕。

2. 结构的原点设置在结构的外部情况举例


  • 左侧为原图,右侧为结构元素,注意,这里的结构元素的原点不在结构元素内部。

  • 第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)

  • 第二步 根据结构元素的原点在原图中的位置,我们再输出图像相应的位置涂黑,即

  • 第三步 在原图中寻找下一个完全和结构元素匹配部分,即

  • 第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即

  • 第五步 寻找完毕,操作完毕。

三、 二值图像的膨胀操作

1. 结构的原点设置在结构的内部情况举例


  • 图中左侧(a)为原图像,右侧(b)为结构元素

    操作规则,拿结构元素的原点在原图像上的黑色方块上一次一次移动。

    • 第一步 将结构元素的原点,放置在原图向上的第一个黑色方块上,即

      (左侧为原图像,右侧为输出图像)
  • 第二步 根据此时结构元素在原图上霸占的所有位置,我们在输出图的相应所有位置涂黑,即

  • 第三步 将结构元素的原点移动到下一个原图上的黑色方块,即

  • 第四步 根据此时结构元素在原图上霸占的所有位置,我们在输出图的相应所有位置涂黑,即

  • 第五步 重复第三步和第四步,直到遍历完毕原图像中所有的黑色方块,我们得到最终输出结果


2. 结构的原点设置在结构的外部情况举例


  • 左侧为原图,右侧为结构元素,注意,这里的结构元素的原点不在结构元素内部。
  • 第一步 将结构元素的原点,放置在原图向上的第一个黑色方块上,即

    由于位置不够,我在上边界上拓展了一行。

  • 第二步 根据此时结构元素在原图上霸占的所有位置,我们在输出图的相应所有位置涂黑,即

  • 第三步 将结构元素的原点移动到下一个原图上的黑色方块,即

  • 第四步 根据此时结构元素在原图上霸占的所有位置,我们在输出图的相应所有位置涂黑,即

  • 第五步 重复第三步和第四步,直到遍历完毕原图像中所有的黑色方块,我们得到最终输出结果

By Jack Lu 2017-6-26 23:57:35

四、其他的一些概念

  1. 平移不变性(shift-nonvariant): 指的就是不论平行移动到哪里执行的操作都是一样。和执行的动作和操作是无关系的。
  2. 腐蚀和膨胀操作还可以对灰度图进行操作,具体方式:

    • 灰度图腐蚀
      用原图减去结构,选用结果中的最小值(如果有负值,则以0为最小值)作为本次输出值放置在空白图像相应的输出位置(即结构的原点位置在原图上相应的位置)。

    • 灰度图膨胀
      用原图加上结构,选用结果中的最大值 (如果有负值,则以0为最小值)作为本次输出值放置在空白图像相应的输出位置(即结构的原点位置在原图上相应的位置)。

3 开闭运算

  • 开运算为: 先腐蚀再膨胀
  • 闭运算为: 先膨胀再腐蚀

  • 开闭运算具有幂等性。即做n次开运算和做一次开运算的结果相同,闭运算同样如此。

  • 个人方便记忆开闭运算的操作顺序,这样理解,开运算是打开的意思,即可以理解为将图像中靠近但不相连的地方索性打开。做一次开运算,使得原来的缝隙变大。
    闭运算可以理解为闭合的意思,能合并在一起的地方尽量合并。即可以理解为把图像中缝隙填满。

By Jack 2017年6月28日 14:50:42

展开阅读全文

没有更多推荐了,返回首页