工控编程吧

标题: halcon expand_gray函数介绍 [打印本页]

作者: qq263946146    时间: 2019-5-30 19:45
标题: halcon expand_gray函数介绍
expand_gray(Regions, Image, ForbiddenArea : RegionExpand : Iterations, Mode, Threshold : )
expand_gray关闭输入区域间的间隙,这是由于在分割操作符(例如Mode=“image”)中抑制小区域而导致的,
或者分隔重叠区域“region”。
这两种用途都是由于区域的扩大而产生的。
操作符的工作原理是向一个区域添加一个像素宽的“条带”,
其中的灰度值或颜色与该区域边界上相邻像素的灰度值或颜色最多相差 Threshold(在每个通道中)。


对于“cyclic”类型的图像(如方向图像),也将灰度值差不小于255--Threshold 的点添加到输出区域。


扩展只发生在ForbiddenArea 区域之外的区域。

迭代的次数由参数Iterations决定。

通过传递“maximum”,expand_gray迭代直到收敛,即,直到不再发生变化。

通过为该参数传递0,将返回所有非重叠区域。这两种操作模式(图像和区域)在以下方面有所不同:

image
输入区域会迭代地展开,直到它们碰到另一个区域或图像边框,
或者由于灰度值差异过大而停止展开。
因为expand_gray同时处理所有区域,所以区域之间的间隙均匀地分布到具有相似灰度值的所有区域。
通过将重叠区域均匀地分布到两个区域来分割重叠区域。


region
不展开输入区域。
相反,通过将重叠区域均匀地分布到具有匹配灰度值或颜色的区域,只分割重叠区域。


Regions, 将间隙闭合或将间隙分开的区域。
Image,图像(可能是多通道)的灰度值或颜色比较。
ForbiddenArea 不发生扩张的地区。
RegionExpand 输出的扩展或分离区域。
Iterations迭代次数。
Mode扩张模式,有 'image', 'region'。
Threshold区域边界上的灰度值或颜色与扩展候选值之间的最大差异。


例程:read_image (Image, 'fabrik')
dev_set_colored (6)
regiongrowing (Image, Regions, 1, 1, 1, 100)
gen_empty_region (EmptyRegion)
expand_gray (Regions, Image, EmptyRegion, RegionExpand, 'maximal', 'image', 4)

和另一函数expand_region 类似,可以对比。

read_image (Image, 'fabrik')
regiongrowing (Image, Regions, 1, 1, 3, 1000)
gen_empty_region (NoPixel)
expand_region (Regions, NoPixel, RegionExpanded1, 'maximal', 'image')
dev_display (Image)
dev_set_draw ('margin')
dev_set_colored (6)
dev_display (RegionExpanded1)
stop ()
dev_clear_window ()
dilation_circle (Regions, RegionDilation, 13.5)
stop ()
expand_region (RegionDilation, NoPixel, RegionExpanded2, 'maximal', 'region')
dev_display (Image)
dev_display (RegionExpanded2)
[halcon]1[/halcon]








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