HALCON示例程序edge_segments.hdev提取连续的边缘段

HALCON示例程序edge_segments.hdev提取连续的边缘段

示例程序源码(加注释)

  • 关于显示类函数解释
    dev_update_off ()
    dev_close_window ()
    read_image (Image, ‘mreut’)
    get_image_size (Image, Width, Height)
    dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowID)
    set_display_font (WindowID, 12, ‘mono’, ‘true’, ‘false’)
    dev_set_draw (‘margin’)
    dev_set_line_width (3)
    dev_display (Image)
    disp_continue_message (WindowID, ‘black’, ‘true’)
    stop ()

  • edges_image - 使用Deriche,Lanser,Shen或Canny过滤器提取边缘。

  • edges_image(图片:边缘幅度,边缘方向:滤波器,高斯标准差,最大抑制,滞后阈值低值,滞后阈值高值 ?
    edges_image (Image, ImaAmp, ImaDir, ‘lanser2’, 0.5, ‘nms’, 20, 40)
    dev_display (ImaAmp)
    disp_continue_message (WindowID, ‘black’, ‘true’)
    stop ()

  • 二值化提取边缘
    threshold (ImaAmp, Region, 1, 255)

  • 分割连通域
    connection (Region, ConnectedRegions)
    dev_clear_window ()
    dev_set_colored (12)
    dev_display (ConnectedRegions)
    disp_continue_message (WindowID, ‘black’, ‘true’)
    stop ()
    dev_clear_window ()
    count_obj (ConnectedRegions, Number)

  • 生成一个空的对象
    gen_empty_obj (XLDContours)
    for i := 1 to Number by 1

    • 选取指定图像
      select_obj (ConnectedRegions, SingleEdgeObject, i)
    • split_skeleton_lines - 根据线的曲率分割线段
    • split_skeleton_lines(边缘 :: 线的最大距离:起点行坐标,起点列坐标,终点行坐标,终点列坐标)
      split_skeleton_lines (SingleEdgeObject, 2, BeginRow, BeginCol, EndRow, EndCol)
      for k := 0 to |BeginRow| - 1 by 1
      • 这个是根据多个线段生成多边形
        gen_contour_polygon_xld (Contour, [BeginRow[k],EndRow[k]], [BeginCol[k],EndCol[k]])
        concat_obj (XLDContours, Contour, XLDContours)

    endfor
    endfor
    dev_display (XLDContours)

处理思路

这个例子是主要讲解了边缘的提取与分割。edges_image、split_skeleton_lines 、gen_contour_polygon_xld

后记
大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值