工控编程吧

标题: 工业视觉minkowski_add1函数介绍 [打印本页]

作者: qq263946146    时间: 2019-6-1 22:40
标题: 工业视觉minkowski_add1函数介绍
1.minkowski_add1(Region, StructElement : RegionMinkAdd : Iterations : )
minkowski_add1使用结构化元素扩展输入区域。
通过对一个区域应用minkowski_add1,它的边界变得平滑。
在这个过程中,区域的面积被扩大了。
此外,不相连的区域将会容合。
然而,这些区域在逻辑上仍然是不同的。
闵可夫斯基加法是一个集论区域运算。
它基于移动和联合操作。
设M (StructElement)和R (Region)为两个区域,
其中M为结构化元素,R为待处理区域。
此外,设m是M中的一个点
然后将位移矢量 定义为M的重心与矢量 的差值。
让我们用向量 表示区域R被 平移。则有

[attach]10021[/attach]
对于M中的每个点m,执行区域R的平移。
所有这些平移的并集是R与M的Minkowski加法,
Minkowski _add1类似于运算符dilation1,
不同之处在于,在dilation1中,结构元素在原点处镜像。
结构单元的位置是没有意义的,因为位移矢量是根据M的重心确定。


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


2.minkowski_sub1(Region, StructElement : RegionMinkSub : Iterations : )
minkowski_sub1使用一个结构化元素计算输入区域的Minkowski减法。
通过对一个区域应用minkowski_sub1,它的边界变得平滑。
在此过程中,该区域的面积减小。
此外,连接的区域可能被分割。
然而,这些区域在逻辑上仍然是一个区域。闵可夫斯基减法是一种集论区域运算。
它使用交集运算。


设M (StructElement)和R (Region)为两个区域,
其中M为结构化元素,R为待处理区域。
此外,设m是M中的一个点
然后将位移矢量 定义为M的重心与矢量 的差值。
让我们用向量 表示区域R被 平移。然后

[attach]10022[/attach]
对于M中的每个点m,执行区域R的平移。
所有这些平移的交集是R与M的Minkowski减法,
Minkowski _sub1类似于操作符erosion1,
不同之处在于,在erosion1中,结构元素在原点处镜像。
结构单元的位置是没有意义的,因为位移矢量是根据M的重心确定的。


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


3.minkowski_add2(Region, StructElement : RegionMinkAdd : Row, Column, Iterations : )
minkowski_add2使用具有参考点(Row, Column)的结构化元素(StructElement)计算输入区域的Minkowski加法。
minkowski_add2的作用与minkowski_add1相似,不同之处在于可以任意选择结构化元素的参考点。
参数Iterations 决定了要用结构化元素执行的迭代的数量。
迭代n-1的结果作为迭代n的输入。


4.minkowski_sub2(Region, StructElement : RegionMinkSub : Row, Column, Iterations : )
minkowski_sub2使用一个具有参考点( Row, Column)的结构化元素(StructElement)计算输入区域的Minkowski减法。
minkowski_sub2的作用与minkowski_sub1相似,
不同之处在于可以任意选择结构化元素的参考点。
参数Iterations决定了要用结构化元素执行的迭代的数量。
迭代n-1的结果作为迭代n的输入。


例程:
read_image (Image, 'printer_chip/printer_chip_01')
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
gen_circle (Circle, 200, 200, 30)
minkowski_add1 (ConnectedRegions, Circle, RegionMinkAdd, 1)
minkowski_sub1 (RegionMinkAdd, Circle, RegionMinkSub, 1)

minkowski_add2 (RegionMinkSub, Circle, RegionMinkAdd1, 200,200, 1)
minkowski_sub2 (RegionMinkAdd1, Circle, RegionMinkSub1, 0, 0, 1)
[halcon]1[/halcon]






欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4