美文网首页
数学形态学及其二值运算

数学形态学及其二值运算

作者: 此间不留白 | 来源:发表于2020-05-06 21:10 被阅读0次

数学形态学

  • 数学形态学是一种定性分析图片空间结构的方法,主要用来分析对象的形状和结构。
  • 数学形态学方法最初用来分析地理图像或者生物医学图像,但是因为其强大的功能,成为了许多学术和行业团体分析图像的主要方法之一。
  • 形态学方法在图像邻域有如下应用:


结构化要素

  • 形态学分析中的结构化要素可以认为是跟卷积中的kernel有着同样的作用,为了跟卷积中的kernel进行区分,简称为SE,与kernel不同的是,kernel一般以图像的中心为原点,而SE可以以任意一点为原点,所以SE具有一定的方向性。
  • 一般来说,SE基于图像的原点(original)平移图像每个像素的位置。

几何平移

将一个几何A平移x个单位,可以描述为:
A+x = \{ A+x: a \in A\}

二值膨胀(Binary Dilation)

二值膨胀,也被称为 Minkowski 加法,图像F经由SE进行膨胀化的操作可以被定义为:
D(F,K)= F \oplus K = \bigcup_{b \in K}({a+b| a \in F})
二值膨胀的效果如下图所示:

事实上,可以简单的将二值膨胀算法看作是一个“盖章”的过程,如下图所示:


为了更简单的了解二值膨胀算法的原理和应用,有如下示例:


  • 二值膨胀算法作为一种计算方式,也满足诸如交换律,结合律等运算规律:
  • D(A,B) = A \oplus B = B \oplus A = D(B,A)
  • A\oplus(B \oplus C) = (A \oplus B) \oplus C
  • A \oplus (B \oplus x) = (A \oplus B) \oplus x
  • A_1 \subseteq A_2 \Rightarrow (A_1 \oplus B) \subseteq(A_2 \oplus B)
  • A \oplus (B \cup C) = (A \oplus B) \cup (A \oplus C)
  • nB = \underbrace{(B \oplus B \oplus B\oplus…\oplus B)}

二值腐蚀(Binary Erosion)

与二值膨胀算法相对应的另外一种算法是二值腐蚀算法,可以认为二值腐蚀算法也是一个平移算法,只不过是向右平移,并且平移之后是一个求交集的运算。其数学表达式如下所示:
E(F,K) = F \ominus K =\bigcap_{b \in K} \{a-b | a \in F \}

二值腐蚀的效果如下图所示:


可以将二值腐蚀也认为是一个“盖章”的过程,只不过,与膨胀不同的是,结构化要素和原始图像的边缘是一个求“交集”的过过程,边缘部分只要有“0”(动画中的白色色块)存在,则与此相重叠的部分被舍去。


与二值膨胀相比,二值腐蚀的一些应用和原理示意图如下所示:


如下图所示,更加直观地显示了腐蚀的运算过程,可以看到,腐蚀运算发生时,与结构化要素相对应的接触的部分元素,只要有0,则整个结构化要素所对应的部分全变为0

  • 二值腐蚀作为一种运算方式,和二值膨胀相比,满足一些关系运算。
  • E(A,B) \neq E(B,A)
  • D(E(A,B),B) \neq A \neq E(D(A,B),B)
  • A \ominus (B+x) = (A \ominus B)+x
  • A_1 \subseteq A_2 \Rightarrow (A_1 \ominus B) \subseteq(A_2 \ominus B)
  • B_1 \subseteq B_2 \Rightarrow (A \ominus B_1) \supseteq(A \ominus B_2)
  • A \ominus (B \cup C) = (A \ominus B) \cap (A \ominus C)
  • (A \ominus B) \ominus C = A \ominus (B \oplus C)

膨胀和腐蚀

  • 膨胀和腐蚀并不是相反的运算,但是却是两个相对应的运算。
  • 假设A^c表示对A进行取反,-B代表B的翻转(旋转180度),则满足如下运算关系:
  • A \oplus B = [A^c \ominus(-B)]^c
  • A \ominus B = [A^c \oplus (-B)]^c

二值开运算(Binary Opening)

对一幅图像进行二值开运算可以描述为先进性腐蚀再进行膨胀的运算:
O(F,K) = F \circ K = (F \ominus K) \oplus K
其实现效果如下图所示:


二值开运算总体上可以看作是一个对图像的区域进行缩小的区域。

一些二值开运算的示例和实现效果如下图所示:


二值开运算示例 二值开运算的实现过程

二值开运算,从效果上可以看出,总体上会在原图上移除b比结构化要素更小的部分,如下图所示:


二值开运算满足如下运算定律:

  • O(A+x,B) = O(A,B)+x
  • O(A,B) \subseteq A
  • A_1 \subseteq A_2 \Rightarrow (A_1 \circ B) \subseteq (A_2 \circ B)
  • (A\circ B) \circ B = A \circ B (不可重复性)

二值闭运算(Binary Closing)

与二值开运算相对应的运算是二值闭运算,其计算过程可以描述为,先进行膨胀运算,再进行腐蚀运算,对于一副图像而言,二值闭运算总体上是一个对图像进行“放大”的方式。

C(F,K) = F \bullet K = (F \oplus K) \ominus K

实现效果如下图所示,可以看出,闭运算使得图像的边缘区域更加平滑,闭运算在图像修复上有着广泛的应用。


闭运算对图像内部的空洞进行了修复 闭运算的计算过程

二值闭运算能够对图像内部小于结构化要素的空洞进行填充,如下图所示:

  • C(A+x,B) = C(A,B)+x
  • A \subseteq C(A,B)
  • A_1 \subseteq A_2 \Rightarrow (A_1 \bullet B) \subseteq (A_2 \bullet B)
  • (A\bullet B) \bullet B = A \bullet B (不可重复性)

开运算与闭运算

开运算与闭运算并不是一对互逆运算,若A^C表示对A取反,则满足以下关系:

  • A \circ B = (A^C \bullet B)^C
  • A \bullet B = (A^C \circ B)^C

相关文章

  • 数学形态学及其二值运算

    数学形态学 数学形态学是一种定性分析图片空间结构的方法,主要用来分析对象的形状和结构。 数学形态学方法最初用来分析...

  • 形态学算法

    上海交通大学 医学图像处理技术 形态学的二值运算 形态学二值运算包括膨胀,腐蚀,开运算和闭运算基本方法,如下图所示...

  • 灰度形态学基本运算

    上海交通大学 医学图像处理 与二值形态学相对应另一种形态学运算是灰度形态学。灰度形态学与二值形态学相比,不仅在图像...

  • android中使用OpenCV之数学形态学

    数学形态学是由一组形态学的代数运算子组成的,其常见的运算有膨胀(或扩张)、腐蚀(或侵蚀)、开启、闭合、梯度、黑帽、...

  • 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑 一、概念 1.1...

  • 形态学操作

    · 形态学操作主要包括:腐蚀,膨胀,开运算,闭运算,形态学梯度运算,顶帽运算,黑帽运算,击中击不中 腐蚀 将图像的...

  • Opencv第七课--形态学滤波

    形态学滤波 形态学滤波包括腐蚀、膨胀、开运算、闭运算、形态学梯度、礼帽、黑帽下面针对这四种形态学操作,说明一下其原...

  • 二值形态学算法的实现

    前言 在二值形态学的学习过程中,已经学习了二值形态学算法的基本理论知识,本篇文章将会利用Python实现有关二值形...

  • Python | OpenCV形态学运算基础

    形态学运算的基础是腐蚀和膨胀 腐蚀运算通过降低边缘噪点实现平滑,膨胀通过扩大边缘实现消除内部噪点 通用形态学运算 ...

  • android使用opencv图片腐蚀与扩张

    数学形态学中运算有 膨胀(或扩张)、腐蚀(或侵蚀)、开启、闭合、骨架抽取、极线腐蚀、击中击不中变换、Top-hat...

网友评论

      本文标题:数学形态学及其二值运算

      本文链接:https://www.haomeiwen.com/subject/xudwghtx.html