🟠 形态学操作

功能描述

该算子对输入图像执行一系列基于形状的图像处理操作。形态学操作通过一个名为“结构元素”或“核(Kernel)”的小窗口在图像上滑动,来修改像素值,从而达到修改图像几何特征(如轮廓、孔洞、连接等)的目的。它主要用于二值图像和灰度图像的预处理和特征提取。

使用场景

去噪:

  • 使用开操作(OPEN)移除小的、孤立的亮斑(椒盐噪声中的“盐”)。

  • 使用闭操作(CLOSE)填充物体内部的小黑洞(椒盐噪声中的“胡椒”)。

物体连接与分离:

  • 使用膨胀(DILATE)连接断开的轮廓或合并邻近的物体。

  • 使用腐蚀(ERODE)分离轻微粘连的物体,或细化物体轮廓。

边缘与轮廓提取:

  • 使用梯度操作(GRADIENT)可以有效地提取出物体的边缘轮廓。

特定特征提取:

  • 使用顶帽操作(TOPHAT)提取比周围区域更亮的微小细节或斑点。

  • 使用黑帽操作(BLACKHAT)提取比周围区域更暗的微小细节或划痕。

  • 使用击中-击不中(HITMISS)进行特定的模式匹配,用于细化或查找特定的像素排列模式(高级应用)。

输入输出

输入项

image(Image):待处理的图像。通常为二值化后的图像,但多数操作也支持灰度图甚至彩色图。

输出项

morphology_image(Image):执行形态学操作后得到的图像。

参数说明

操作类型

参数说明

选择要执行的具体形态学算法。

调参说明

腐蚀(ERODE):效果是使图像中的高亮区域(白色)“变瘦”,暗区域(黑色)“变胖”。可以断开细小的连接,移除物体边界的毛刺。

膨胀(DILATE):与腐蚀相反,使高亮区域“变胖”,暗区域“变瘦”。可以填补物体内的孔洞,连接断裂的轮廓。

开操作(OPEN):先腐蚀后膨胀。主要作用是消除小的亮点和细的亮线,同时保持整体轮廓大小不变。非常适合去除离散的噪声点。

闭操作(CLOSE):先膨胀后腐蚀。主要作用是填充物体内部的小孔和闭合物体轮廓上的小裂缝,同时保持整体轮廓大小不变。

梯度操作(GRADIENT):计算图像膨胀和腐蚀的差值。结果看起来像物体的轮廓线。

顶帽操作(TOPHAT):计算原始图像与“开操作”结果的差值。可以分离出比邻近点亮的线条或噪点,适合提取图像中的亮背景下的亮细节。

黑帽操作(BLACKHAT):计算“闭操作”结果与原始图像的差值。可以提取出亮背景中的细小暗物体或划痕。

击中-击不中(HITMISS):一种特殊的模式匹配操作,需要输入为单通道灰度图(通常是二值图),用于查找特定的像素邻域模式。

核大小

参数说明

定义了形态学操作中使用的结构元素(核)的尺寸,格式为[宽度,高度]。

调参说明

  • 增大核大小:形态学操作的效果会更显著。例如,一个更大的核在执行开操作时可以移除更大的噪声点;在执行闭操作时可以填充更大的孔洞。

  • 减小核大小:操作效果更精细,影响范围更小。

调节时,应使核的大小略大于你想要处理掉(或连接起来)的图像特征的尺寸。

参数范围

[3,3]

核形状

参数说明

定义结构元素的形状。

调参说明

核的形状会影响形态学操作的方向性。

  • 矩形(RECT):最常用的形状,对所有方向的影响是均匀的。

  • 交叉形(CROSS):只考虑水平和垂直方向的连接性,忽略对角线方向。

  • 椭圆形(ELLIPSE):对角点的影响小于水平和垂直方向,形状更平滑,适合处理圆形或弧形特征。

  • 全一矩阵(MatrixofOnes):等同于矩形核。

迭代次数

参数说明

设置腐蚀或膨胀操作的连续执行次数。

调参说明

增加迭代次数等同于多次施加同样的操作,其效果类似于使用一个更大的核,但并不完全相同。

  • 增加迭代次数:会加强操作的效果。例如,迭代2次3x3的腐蚀会比迭代1次产生更强的收缩效果。

  • 通常情况下,优先调整“核大小”来控制效果会更直观和高效。当需要精细控制或实现特定效果时,可以调整迭代次数。

参数范围

[1,100],默认值:1