基于Halcon的一维码识别

摘要

  halcon识别一维码识别步骤如下:

1.图像采集
2.预处理
3.识别条码: (1)创建条码模型
			(2)设置参数(非必要)
     		(3)解码
4.识别并显示
5.清除模型

一维码类型

黑底白纹的一维码

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

*1 图像采集
read_image (Image, '1.bmp')

*2预处理
scale_image (Image, ImageScaled, 6.89189, -55)

*3识别条码:创建条码模型>设置参数>解码
create_bar_code_model ([], [], BarCodeHandle)
invert_image (ImageScaled, ImageInvert)
find_bar_code (ImageInvert, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings1)

*4识别并显示
dev_display (Image)
dev_set_draw ('margin')
dev_display (SymbolRegions)
set_display_font (WindowHandle, 30, 'mono', 'true', 'false')
disp_message (WindowHandle, DecodedDataStrings1, 'window', 12, 12, 'black', 'true')

*5清除模型
clear_bar_code_model (BarCodeHandle)

在这里插入图片描述

分辨率过高的一维码

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

*1 图像采集
read_image (Image, '2.bmp')

*2预处理:降低图片分辨率
zoom_image_factor (Image, ImageZoomed, 0.5, 0.5, 'constant')
scale_image (ImageZoomed, ImageScaled, 3.31169, -566)

*3识别条码:创建条码模型>设置参数>解码
create_bar_code_model ([], [], BarCodeHandle)
*set_bar_code_param (BarCodeHandle, 'majority_voting', 'true')
find_bar_code (ImageScaled, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)

*4识别并显示
dev_display (ImageZoomed)
dev_set_draw ('margin')
dev_display (SymbolRegions)
set_display_font (WindowHandle, 30, 'mono', 'true', 'false')
disp_message (WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'true')

*5清除模型
clear_bar_code_model (BarCodeHandle)

在这里插入图片描述

有干扰的一维码

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)


*1 图像采集
read_image (Image, '5.bmp')

*2预处理
scale_image (Image, ImageScaled1, 28.3333, -2068)

*3识别条码:创建条码模型>设置参数>解码
create_bar_code_model ([], [], BarCodeHandle)
find_bar_code (ImageScaled1, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings1)

*4识别并显示
dev_display (Image)
dev_set_draw ('margin')
dev_display (SymbolRegions)
set_display_font (WindowHandle, 30, 'mono', 'true', 'false')
disp_message (WindowHandle, DecodedDataStrings1, 'window', 12, 12, 'black', 'true')

*5清除模型
clear_bar_code_model (BarCodeHandle)

在这里插入图片描述

环形一维码

本案例使用Halcon自带例程:circular_barcode

在这里插入图片描述

柱状一维码

本案例使用Halcon自带例程:grid_rectification
基本思路就是,先将一维码拉直,再根据摘要中的步骤;

在这里插入图片描述
#总结
  如有错误欢迎指正,共同进步!

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值