OpenCV实战(11)——形态学变换详解
0. 前言
形态学变换( Morphological transformations
)通常是在二值图像上执行、基于图像形状的操作。其具体的操作由核结构元素决定,它决定了操作的性质。膨胀和腐蚀是形态学变换领域的两个基本算子,此外,开运算和闭运算是两个重要的运算,它们可以通过上述两个运算(膨胀和腐蚀)获得。
1. 腐蚀和膨胀运算
1.1 腐蚀和膨胀基础
腐蚀 (Erosion
) 和膨胀 (Dilation
) 是最基本的形态学算子,因此,我们将首先介绍这两个基本算子。数学形态学的基本组成部分是结构元素,结构元素可以简单地理解为定义原点(也称为锚点)的像素配置,如下图中的正方形。应用形态学滤波器需要使用此结构元素检测图像的每个像素,当结构元素的原点与给定像素对齐时,它与图像的交集定义了一组像素,在这些像素(下图中的九个阴影像素)上应用了特定的形态学操作。原则上,结构元素可以是任何形状,但出于效率考虑,通常使用简单的形状,例如正方形、圆形或以原点为中心的菱形。
1.2 使用形态学滤波器执行图像腐蚀和膨胀运算
由于形态学滤波器通常作用于二值图像,因此我们使用通过阈值化创建的二值图像。然而,由于在形态学中通常用白色像素值表示前景对象,用黑色像素值表示背景对象,因此我们需要对原二值图像求补(即用黑色像素值表示前景对象,用