非线性滤波
这些函数使用相邻像素的非线性组合来突出显示形状或消除噪点。
大多数可以是破坏性的(顶帽和中值滤波器除外),即源图像被目标图像覆盖。破坏性操作更快。

矩形内核半宽度 = 3 ,半高度 = 2(左)圆形内核半宽 = 2(右)
形态运算符将给定形状(正方形、矩形或圆形)的邻域中的像素值组合,并通过结果代替邻域的中心像素。
Three special cases are most often used erosion, dilation and median filter where : K can be 1 (minimum of the set), N (maximum) or N/2 (median).
腐蚀、膨胀、开运算、闭运算、顶帽和形态梯度操作都使用奇数尺寸的矩形或圆形内核。内核大小对结果有重要的影响。
示例
HalfWidth/HalfHeight |
实际 |
---|---|
0 |
1 |
1 |
3 |
2 |
5 |
3 |
7 |

腐蚀减少了白色对象 在一般内容中,应该利用类实例的含义理解术语对象。在 EasyObject 中,对象是属于图层前景的相邻连接像素的最大尺寸区域。并扩大了黑色对象,膨胀效果恰恰相反。
![]() ![]() |
![]() ![]() |
腐蚀 | 膨胀 |
腐蚀 通过沿对象边缘去除一层 通过分割过程构建的二值图像。像素,使白色对象更薄: , 。随着内核大小的增加,白色对象消失,黑色对象越来越大。

开运算可以移除微小的白色对象/灰尘。闭运算 可以移除微小的黑色孔洞 在 EasyObject 中,孔洞是属于被对象完全包围的层背景的相邻连接像素的最大尺寸区域。/灰尘。
![]() ![]() |
![]() ![]() |
开运算 | 闭运算 |

顶帽滤波器非常适合改善不均匀照明。
白色顶帽滤波器:源和目标图像
它们获得图像及其开口(或关闭)之间的区别。因此,它们保持打开(或关闭)将擦除的特征 编码元素的几何属性。。结果是一个完全平坦的背景,其中只出现比内核大小更小的黑色或白色特征。

形态梯度执行边缘检测 - 它删除图像中除了边缘之外的所有内容。
形态梯度是使用相同结构元素的图像膨胀和腐蚀之间的差异。
MorphoGradientBox, MorphoGradientDisk.
膨胀 - 腐蚀 = 梯度

中值滤波器可以消除脉冲噪声,同时保留边缘和图像清晰度。
It replaces every pixel by the median (central value) of its neighbors in a 3x3 or larger kernel, thus, outer pixels are discarded.
中值滤波器:源和目标图像

函数有三个参数:
- 指向 、 或 类型的源图像指针
- 指向与源图像类型对应类型的目标图像指针。
源图像和目标图像的大小必须相同。 - 内核类型为 两个构造函数可用于内核对象:
- EHitAndMissKernel(int startX, int startY, int endX, int endY) where:
startX, startY are coordinates of the top left of the kernel, must be less than or equal to zero.
endX, endY are coordinates of the bottom right of the kernel, must be greater than or equal to zero.
The constructed kernel has no explicit restrictions on its size, and the following characteristics:
kernel width = (endX – startX + 1), kernel height = (endY – startY + 1) - EHitAndMissKernel(unsigned int halfSizeX, unsigned int halfSizeY) where:
halfSizeX is half of the kernel width – 1, must be greater than zero.
halfSizeY is half of the kernel height – 1, must be greater than zero.
The constructed kernel has the following characteristics:
kernel width = ((2 x halfSizeX) + 1), kernel height = ((2 x halfSizeY) + 1)
kernel StartX = - halfSizeX, kernel StartY = - halfSizeY
- EHitAndMissKernel(int startX, int startY, int endX, int endY) where:

形态交离转换可用于定位角落。
二进制源图像
1. 通过检测左角来定义内核。左角像素在其紧邻左侧、上部和底部具有黑色像素;它的右边有白色像素。以下命中与错过内核会检测到左角:
- +
- + +
- +
2. 在源图像上应用滤波器。请注意,生成的图像应该有适当的大小。
生成的图像,突出显示的像素位于菱形的左角
3. 以同样的方式找到剩下的三个角:声明三个内核是上述滤波器的旋转并应用它们。
4. 检测右角、上角和下角。