工控编程吧

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

作者: qq263946146    时间: 2019-5-30 18:56
标题: halcon detect_edge_segments函数介绍
detect_edge_segments(Image : : SobelSize, MinAmplitude, MaxDistance, MinLength : BeginRow, BeginCol, EndRow, EndCol)
detect_edge_segment检测灰度图像Image 中的直线边缘段。
提取的边缘段返回为带有起始点(BeginRow,BeginCol)和结束点(EndRow,EndCol)的线段。
边缘检测基于Sobel滤波器,以“sum_abs”为参数,SobelSize为滤波掩码大小(见sobel_amp)。


只有滤波器响应大于MinAmplitude的像素才作为边缘点的候选。
这些阈值边缘点被变薄并分割成直线段。由于技术原因,导致多边相交的边缘点丢失。
因此,detect_edge_segment通常不返回封闭的对象轮廓。
参数MaxDistance控制边缘点到其近似线的最大允许距离。
为了提高效率,我们用坐标差绝对值的和来代替欧氏距离。
MinLength控制线段的最小长度,小于MinLength的行不返回。


注意,如果使用域缩小的图像作为输入,
过滤器操作符可能会返回意想不到的结果。请参考章节Filters.。


参数:
Image 输入图像
SobelSizeSobel操作符的掩码大小。
MinAmplitude最低边缘强度。
MaxDistance近似线到原边的最大距离。
MinLength到生成线段的最小长度。


BeginRow,BeginCol,EndRow,EndCol 提取线段和起点终点坐标。
例程:
read_image (Image, 'printer_chip/printer_chip_01')
detect_edge_segments (Image, 5,20, 50, 50, BeginRow, BeginCol, EndRow, EndCol)
gen_region_line (RegionLines, BeginRow, BeginCol, EndRow, EndCol)
dev_display (Image)
dev_display (RegionLines)
[halcon]1[/halcon]










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