QQ登录

只需一步,快速开始

halcon expand_region函数介绍

[ 复制链接 ]
expand_region(Regions, ForbiddenArea : RegionExpanded : Iterations, Mode : )
expand_region用于缩小了输入区域之间的距离,
这是由分割操作中抑制小区域(模式'image')或分隔重叠区域(模式'region')实现。
这两种操作都是由区域的扩大而产生。
函数的工作方式是向一个区域添加或删除一个像素宽的“strip”。


扩展只发生在指定为非“禁止”的区域(参数ForbiddenArea)。
迭代的次数由参数Iterations决定。
通过传递“maximum”,expand_region迭代直到收敛,即,直到不再发生变化。
通过该参数传递0,将返回所有非重叠区域。
这两种操作模式(图像和区域)在以下方面有所不同:


'image'
输入区域将迭代地展开,直到它们触及另一个区域或图像边框。
这种情况下,图像边框定义为从(0,0)到(row_max,col_max)的矩形。
这里(row_max,col_max)对应于所有输入区域(即“Regions”和“ForbiddenArea ”)最小外接矩形的右下角坐标。
因为expand_region同时处理所有区域,所以区域之间的间隙均匀地分布到所有区域。
通过将重叠区域均匀地分布到两个区域来分割重叠区域。


region
不扩展输入区域。
相反,通过将重叠区域均匀地分布到各个区域,只分割重叠区域。
因为与原区域的交集是在输出区域的操作间隙缩小后计算得到的,
即,分割并不完整。
这可以通过第二次调用expand_region来避免,
并将原始区域的补码作为“禁区”。




例程
read_image(Image,'clip')
threshold(Image,Dark,0,150)
connection(Dark,ConnectedRegions)
gen_circle (Circle, 400, 400, 200.5)
expand_region (ConnectedRegions, Circle, RegionExpanded, 'maximal', 'image')
dev_display (RegionExpanded)
再如
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
gen_circle (Circle, 20, 20, 30)
gen_circle (Forbidden, 150, 150, 20)
expand_region (Circle, Forbidden, RegionExpanded, 'maximal', 'image')
扩展后的结果区域RegionExpanded不包含Forbidden


  

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

  

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



回复

使用道具 举报

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