QQ登录

只需一步,快速开始

工业视觉halcon 腐蚀erosion1函数介绍

[ 复制链接 ]
erosion1(Region, StructElement : RegionErosion : Iterations : )

erosion1使用结构元素侵蚀输入区域Region。通过对一个区域施加侵蚀,它的边界变得平滑。
在此过程中,该区域的面积减小。
此外,连接的区域可能被分割。
然而,这些区域在逻辑上仍然是一个区域。
侵蚀是一种集论区域操作。
它使用交集运算


设M (StructElement)和R (Region)为两个区域,
其中M为结构化元素,R为待处理区域。
此外,设m是M中的一个点
然后将位移矢量 定义为M的重心与矢量 的差值。
让我们用向量 表示区域R被 平移。然后
2019-06-01_220053.jpg
对于M中的每个点m,执行区域R的平移。
所有这些平移的交集是M的腐蚀。
erosion1类似于minkowski_sub1操作符,
不同之处在于,在erosion1中, StructElement在原点处镜像。
StructElement的位置是没有意义的,因为位移矢量是根据M的重心确定的。


参数Iterations 决定了要用结构化元素执行的迭代的数量。
迭代n-1的结果作为迭代n的输入。
从上面的定义可以看出,当一个结构元素为空时,会生成最大区域。


可以使用
gen_circle、
gen_rectangle1、
gen_rectangle2、
gen_ellipse、
draw_region、
gen_region_polygon、
gen_region_points等操作符生成结构化元素(StructElement)。


2.erosion2(Region, StructElement : RegionErosion : Row, Column, Iterations : )
erosion2使用具有参考点( Row, Column)的结构化元素(StructElement)侵蚀输入区域Region
erosion2erosion1的作用相似,不同之处在于结构元素的参考点可以任意选择。
参数Iterations 决定了要用结构化元素执行的迭代的数量。
迭代n-1的结果作为迭代n的输入。


3.erosion_circle(Region : RegionErosion : Radius : )
erosion_circle将Minkowski减法与一个圆形结构元素应用于输入区域Region
由于圆形掩模是对称的,这就等同于侵蚀。作为结构元素的圆的大小由Radius 决定。


该算子使区域缩小,区域边界平滑,消除了小于圆形掩模的区域。
为了避免区域的平移,只选择Region 的3.5、5.5等值是有用的,
因为整数半径会导致一个圆心为非整数的圆,该圆的重心被四舍五入到下一个整数。


4.erosion_rectangle1(Region : RegionErosion : Width, Height : )
erosion_rectangle1将带有矩形结构元素的腐蚀应用于输入区域Region 。
结构矩形的大小为Width*Height 。
该算子使区域缩小,消除了小于矩形掩模的区域。


erosion_rectangle1是一个非常快的操作,
因为矩形的高度只以对数形式代入计算,而宽度则完全没有代入。
即使在非常大的矩形(边缘长度为> 100)的情况下,
这也会带来非常好的运行效率。


例程:
read_image (Image, 'printer_chip/printer_chip_01')
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
gen_circle (Circle, 200, 200, 10)
erosion1 (ConnectedRegions, Circle, RegionErosion, 1)
erosion2 (ConnectedRegions, Circle, RegionErosion1, 10, 10, 1)
erosion_circle (RegionErosion1, RegionErosion2, 3.5)
erosion_rectangle1 (RegionErosion2, RegionErosion3, 11, 11)
  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索