halcon边缘检测-autobahn车道线的快速检测

基本思路:

先获得主要感兴趣区域,去除车的干扰

然后通过sobel_amp算子检测边缘明显变化的图像,得到原始图像边缘位置的图像数据

然后通过阈值获取目标边缘。

通过膨胀目标边缘获得感兴趣区域,再次通过阈值分割获得目标

* autobahn.hdev: Fast detection of lane markers    * 车道线的快速检测

dev_update_window ('off')
dev_close_window ()
dev_open_window (0, 0, 768, 575, 'black', WindowID)
MinSize := 30
get_system ('init_new_image', Information)
set_system ('init_new_image', 'false')

* 获得网格 MinSize 小网格大小,512-网格的大小
gen_grid_region (Grid, MinSize, MinSize, 'lines', 512, 512)

*对这个网格以矩形修剪
clip_region (Grid, StreetGrid, 130, 10, 450, 502)
dev_set_line_width (3)
dev_set_color ('green')
read_image (ActualImage, 'autobahn/scene_00')
dev_display (ActualImage)
stop ()
dev_display (StreetGrid)
stop ()
for i := 0 to 28 by 1
    read_image (ActualImage, 'autobahn/scene_' + (i$'02'))

*用修剪过的网格剪切图片
    reduce_domain (ActualImage, StreetGrid, Mask)

*sobel算法
    sobel_amp (Mask, Gradient, 'sum_abs', 3)

*阈值分割
    threshold (Gradient, Points, 20, 255)

*膨胀操作
    dilation_rectangle1 (Points, RegionDilation, MinSize, MinSize)

*用膨胀后的区域剪切原图像
    reduce_domain (ActualImage, RegionDilation, StripGray)

*阈值分割
    threshold (StripGray, Strip, 190, 255)

*填充
    fill_up (Strip, RegionFillUp)
    dev_display (ActualImage)
    dev_display (RegionFillUp)
endfor
dev_set_line_width (1)
dev_update_window ('on')
set_system ('init_new_image', Information)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘大望

谢谢你请的咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值