前言
针对阈值分割后的图像,经常存在很多的小目标,这些小目标是噪声,这时候就可以使用图像腐蚀的方法去除小目标。
1、图像腐蚀erosion1原理
原始图像A (前景为1/X)
. . . . . . . . .
. X X X X X . . .
. X X X X X . . .
. X X X X X . . .
. X X X X X . . .
. . . . . . . . .
圆形结构元素B (3x3圆形,原点在中心)
. . .
. X .
X X X
. X .
. . .
腐蚀步骤如下:
将结构元素的原点依次对准图像中的每一个像素,检查结构元素覆盖的图像区域:只有当结构元素所有为"1"的点,所覆盖的图像对应点也全部为"1"(前景)时,原点的像素在结果图像中才被保留为"1"(前景),否则,该点将被置为"0"(背景)。
以上图为例,当结构元素的原点移动到原始图像中靠内部的点时,它覆盖的"圆"字区域全是X,满足条件,所以该点输出为前景。但当它移动到物体边界时(例如最左侧的X),结构元素左侧的X覆盖到了背景区域.,不满足"全部为前景"的条件,因此该边界点被腐蚀掉,输出为背景。
腐蚀结果:原始图像四周的边界层X全部变成了背景.,物体整体缩小了一圈。
. . . . . . . . .
. . . . . . . . .
. . X X X . . . .
. . X X X . . . .
. . . . . . . . .
. . . . . . . . .
2、halcon算子应用
csharp
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
mean_image (Image, ImageMean, 15, 15)
dyn_threshold (Image, ImageMean, RegionDynThresh, 5, 'light')
gen_circle (structElement, 2, 2,1.5)
erosion1 (RegionDynThresh, structElement, RegionErosion, 1)
图像腐蚀一般发生在阈值分割之后,上面的erosion1就是发生在动态阈值分割dyn_threshold之后,erosion1算子共有4个参数。
第1个参数是输入区域(注意不是图像)
第2个参数是自定义的结构元素,这里就是定义的圆形结构元素
第3个参数是腐蚀后得到的区域
第4个参数是迭代次数,也就是腐蚀操作执行的次数
3、erosion1腐蚀图像处理后效果
1)处理前

1)处理后

能看出很多小目标噪声得到了有效的抑制。