halcon例程解析:快速检测车道线——autobahn. hdev

1. 效果展示

在如下图中快速检测出车道线

原图
在这里插入图片描述
结果
在这里插入图片描述

2. 思路分析

本例程中为快速检测车道线,使用网格确定感兴趣区域进行分割

2.1 建立网格

gen_grid_region (Grid, MinSize, MinSize, 'lines', 512, 512)
clip_region (Grid, StreetGrid, 130, 10, 450, 502)
  1. 生成网格,其中512*512为原图大小
  2. 截取网格区域
    在这里插入图片描述

2.2 以网格线区域为感兴趣区域提取车道线

2.2.1 以网格线为感兴趣区域在原图中分割,生成Mask

reduce_domain (ActualImage, StreetGrid, Mask)

在这里插入图片描述

2.2.2 使用Sobel算子检测边缘(振幅)

sobel_amp (Mask, Gradient, 'sum_abs', 3)

在这里插入图片描述

2.2.3 做阈值分割,提取有效区域

threshold (Gradient, Points, 20, 255)

2.2.4 做一次大尺寸膨胀

dilation_rectangle1 (Points, RegionDilation, MinSize, MinSize)

2.2.5 以上得到有效区域,在原图中分割

reduce_domain (ActualImage, RegionDilation, StripGray)

在这里插入图片描述

2.2.6 做阈值分割

threshold (StripGray, Strip, 190, 255)

2.2.7 填充空洞

fill_up (Strip, RegionFillUp)

至此得到结果,在原图中标出车道线
在这里插入图片描述

3. 原始代码

* 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')
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_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
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值