工控编程吧
标题:
halcon merge_cont_line_scan_xld函数介绍
[打印本页]
作者:
qq263946146
时间:
2019-5-21 19:25
标题:
halcon merge_cont_line_scan_xld函数介绍
merge_cont_line_scan_xld(CurrConts, PrevConts : CurrMergedConts, PrevMergedConts : ImageHeight, Margin, MergeBorder, MaxImagesCont : )
操作符merge_cont_line_scan_xld将从相邻高度为
ImageHeigh的
图像中提取的XLD轮廓连接起来。
该操作符特别用于连接线扫描相机捕捉的图像中提取的轮廓。
CurrConts包含当前图像的轮廓,
PrevConts
包含
前一个图像的轮廓。
MergeBorder参数可以用于区域下面两种情况:
如果当前图像的顶部(第一行)与前一图像的底部(最后一行)接触,
则 MergeBorder 必须设置为“top”,
否则 MergeBorder 设置为“bottom”。
MergeBorder定义边界的边距。
在接下来的合并过程中,只考虑轮廓线中位于此边距内的端点。
如果递归使用merge_cont_line_scan_xld,
则参数MaxImagesCont确定合并轮廓所覆盖的图像的最大数量。
删除旧图像中合并轮廓的所有点。
merge_cont_line_scan_xld返回两个轮廓数组。
PrevMergedConts包含所有不与当前轮廓合并的PrevConts 中的轮廓。
CurrMergedConts将所有当前轮廓和之前图像中合并的部分合并在一起。
合并后的轮廓将超过原始图像,
因为之前的轮廓会根据图像的高度向上移动(合并边界='top')或向下移动(合并边界='bottom')。
例程可参考函数merge_regions_line_scan对应的实例
也可执行下面例程,简单查看效果
open_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'clips/clips.seq', 'default', -1, -1, AcqHandle)
grab_image (Image, AcqHandle)
get_image_size (Image, Width, Height)
MaxImageRegions := 4
gen_image_const (Image1, 'byte', Width, Height*MaxImageRegions)
gen_empty_obj (PreContour)
ClipProcessedSofar :=0
dev_close_window ()
dev_open_window (0, 0, Width/2, Height*(MaxImageRegions+1)/2, 'black', WindowHandle)
while(true)
*让当前采集图像显示于窗口底部
dev_set_part (-Height*MaxImageRegions, 0, Height-1, Width-1)
grab_image (Image2, AcqHandle)
threshold (Image2, Region, 0, 80)
gen_contour_region_xld (Region, CurContours, 'border')
merge_cont_line_scan_xld (CurContours, PreContour, CurrMergedConts, PrevMergedConts, Height, 0, 'top', MaxImageRegions)
copy_obj (CurrMergedConts, PreContour, 1, -1)
endwhile
[halcon]1[/halcon]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4