Halcon 初体验

学习Halcon后,有种一切图像都可做提取或识别的冲动。以识别门禁卡的例子作为入门体验实战。

上Halcon 代码

* Image Acquisition 01: Code generated by Image Acquisition 01

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
open_framegrabber ('USB3Vision', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', '2BDF36305954_Hikvision_MVCA05020UC', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
while (true)    
    grab_image_async (Image, AcqHandle, -1)
    * 图形通道分离
    decompose3 (Image, R, G, B)
    * 转化为H S V颜色模型
    trans_from_rgb(R, G, B, H, S, V, 'hsv')
    dev_display(S)   
    * 二值化
    threshold (S, Regions, 174, 255)
    dev_display(Regions)
    * 孔洞填充
    fill_up (Regions, RegionFillUp)
    dev_display (RegionFillUp)  
    
    * 连通区域,将一整块区域划为为若干小的区域
    connection (RegionFillUp, ConnectedRegions)
    area_center (ConnectedRegions, Area, Row, Column)    
    target:=max(Area)    
    
    * 特性选择,按面积在一定区域内提取所需区域
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', target-100, target+100)
    dev_display(SelectedRegions)  
    
    * 显示区域面积
    area_center (SelectedRegions, Area1, Row1, Column1)    
    disp_message (WindowHandle, '面积为:'+ Area1, 'window', 10, 10, 'green', 'true')
 
endwhile
close_framegrabber (AcqHandle)

代码内有注释关键步骤含义,结合动图的图示应该可以体会到没步骤后图像的变化效果。

就这样,一个门禁卡就被提取出来了

这类图像 区域识别对应Halcon中的“Blob分析“ ,Halcon带有大量的实例程序可以学习。结合具体的例子上手更快。一般手法或者说套路大致如下:

1:图像预处理:常用手法比如:图像转灰增强(灰度变化:add_image, invert_image,直方图变化:equ_histo_image)、去噪滤波(均值滤波mean_image、中值滤波median_image、高斯滤波gauss_image)等;

2:二值化:threshold 分割图形;

3:形态学处理:膨胀、腐蚀,开运算,闭运算;

4:区域连通:connection算子

5:特性分析 select_shape ,按长、宽,面积、圆度、矩形度等方面筛选;

技不压身,记录学习过程,生命不息,学习不止。完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值