数字形态学是由一组形态学代数运算子组成的。最基本的形态学算子有:腐蚀(erosion)、膨胀(dilation)、开(opening)、闭(closing)和骨骼(skelton).HALCON的形态学运算有基于二值图区域的形态学算子和基于灰度区域的形态学算子。
1、腐蚀
腐蚀在数字形态学运算的作用是消除物体边界点。如果结构元素去3*3的黑点块,腐蚀将使物体的边界沿周边减少一个像素。
腐蚀可以把小于结构元素的物体去除,这样选取不同大小的结构元素,就可以去掉不同大小的物体。
如果两个物体之间的细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开。
erosion1(Regoin, StructElement:RegoinErosion:Iterations:)
功能:根据参考点,使用用户自定义的结构元素对区域进行腐蚀。腐蚀的结果元素是一个区域region,可由这些算子产生:gen_circle, gen_rectangle1, gen_rectangle2, gen_ellipse, draw_region, gen_region, gen_region_polygon, gen_region_points等。
参数:
Region(输入参数):输入区域
StructElement(输入参数):结构元素(区域)
RegionErosion(输出参数):腐蚀后的区域
Iterations(输入参数):迭代资料
erosion2(Regoin, StructElement:RegionErosion:Row, Column, Iterations)
功能:根据参考点,使用用户自定义的结构元素对区域进行腐蚀。腐蚀的结果元素是一个区域region。可由这些算子产生:gen_circle,gen_rectangle1, gen_rectangle2, gen_ellipse, draw_region, gen_region_polygon, gen_region_points等。
可以这么理解这个算子的功能:首先根据用户定义的结构元素腐蚀区域,然后根据参考点和结构元素中心的相对位置,平移腐蚀后的区域。例如参考点坐标为(y=220, x=210),点和结构元素中心坐标为(y=230, x=220),腐蚀后的区域的平移量由参考点坐标减去结构元素中心坐标,即(y=220-230=-10, x=210-220=-10)。注意,参考点坐标是图像的绝对坐标,参考点坐标=结构元素中心坐标+平移量。
参数:
Region(输入参数):输入区域
StructElement(输入参数):结构元素(区域)
RegionErosion(输出参数):腐蚀后的区域
Row(输入参数):参数点行坐标
Column(输入参数):参数点行坐标
Iterations(输入参数):迭代次数。
erosion_circle(Region:RegionErosion:Radius:)
功能:使用圆形结构元素腐蚀区域。
参数:
Region(输入参数):输入区域
RegoinErosion(输出参数):腐蚀后的区域。
Radius(输入参数):圆形结构元素的半径。
erosion_rectangle1(Region:RegionErosion:Width,Height:)
功能:使用矩形结构元素腐蚀区域
参数:
Region(输入参数):输入区域
RegionErosion(输出参数):腐蚀后的区域
Width(输入参数):矩形结构元素的宽度
Height(输出参数):矩形结构元素的高度
二值图像的腐蚀操作举例:
结构的原点设置在结构的内部情况举例
图中左侧(a)为原图像,右侧(b)为结构元素
第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)
第二步 然后我们根据原点在原图像中的位置,在输出图像上完全对应的位置上涂黑,即输出图像更变为
第三步 在原图中寻找下一个完全和结构元素匹配部分,即
第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即
第五步 寻找完结,操作完毕
结构的原点设置在结构的外部情况举例
左侧为原图,右侧为结构元素,注意,这里的结构元素的原点不在结构元素内部
第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)
第二步 根据结构元素的原点在原图中的位置, 我们再输出图像相应的位置涂黑,即
第三步 在原图中寻找下一个完全和结构元素匹配部分,即
第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即
第五步 寻找完结, 操作完毕