QQ登录

只需一步,快速开始

工业视觉halcon一维码识别介绍与实践

[ 复制链接 ]
halcon一维码识别

一维码和二维码在生活中经常使用,在商场超市,工业 产品以及我们生活中的各种日用 品上都可以看到。
微信支付宝更是常用 到二维码。一维码二维码在生活中中无处不在,码中含有很多商品信息,
如生产日期,制造厂家,商品名称等。通过 程序 的解码 算法,很快计算出其中的信息,然后和数据库的信息进行匹配,将搜寻的结果显示 出来 。
在halcon中提供 了相关解码的函数,可以计算出码中信息。其实一维码二维码我们可以理解成按照某种规则进行结算信息,
这个规则是一种人为定义 ,是一种协议规定,按照这种规定解算出相应信息,这个规定和算方法是多种多样的,也就是码制。
一维条码即指条码条和空的排列规则,
常用的一维码的码制包括:
EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码,及Codabar(库德巴码)等。
Halcon中,一维码识别很简单,加载图片,创建一维码句柄,在图片查找一维码。
对应的函数为
create_bar_code_model ([], [], BarCodeHandle)
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)


可以运行下边代码,查看效果。

工业视觉halcon一维码识别介绍与实践

工业视觉halcon一维码识别介绍与实践

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*读取图片,用于条码识别
read_image (Image, 'barcode/mixed/barcode_mixed_02')
dev_display (Image)
*创建条码模型句柄,用于后面条码识别
create_bar_code_model ([], [], BarCodeHandle)
*设置条码识别过程中,中间变量是否保留,1保留,0不保留,为1时下面get_bar_code_object才有效
set_bar_code_param (BarCodeHandle, 'persistence', 1)
*执行条码查找,结果字符串保存在DecodedDataStrings,条码所在区域保存在SymbolRegions
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
*获取条码识别过程中的中间变量:扫描线;
get_bar_code_object (Scallines, BarCodeHandle, 1, 'scanlines_valid')
*获取条码识别的设置参数。和set_bar_code_param对应。
get_bar_code_param (BarCodeHandle, 'persistence', GenParamValue)
*获取所有可以在get_bar_code_param和set_bar_code_param函数中使用的条码参数
query_bar_code_params (BarCodeHandle, 'all', GenParamName)
*将条码句柄(包含设置信息)保存到磁盘,供后期读取使用。
write_bar_code_model (BarCodeHandle, 'bar_code_model.bcm')
*清静条码句柄,释放内存资源。
clear_bar_code_model (BarCodeHandle)
*从事先 保存的文件读取条码句柄,并进行读码操作。
read_bar_code_model('bar_code_model.bcm', BarCodeHandle)
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
get_bar_code_object (Scallines, BarCodeHandle, 'all', 'scanlines_valid')
*串行化条码句柄(包含设置信息),并保存到磁盘.
serialize_bar_code_model (BarCodeHandle, SerializedItemHandle)
open_file('123.bin','output_binary',FileHandle)
fwrite_serialized_item (FileHandle, SerializedItemHandle)
close_file (FileHandle)
clear_bar_code_model (BarCodeHandle)
*从磁盘读取事先串行化的文件到条码句柄,并进行条码识别;
open_file('123.bin','input_binary',FileHandle)
fread_serialized_item (FileHandle, SerializedItemHandle)
deserialize_bar_code_model (SerializedItemHandle, BarCodeHandle)
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
get_bar_code_object (Scallines, BarCodeHandle, 'all', 'scanlines_valid')
*获取成功解码后的一些信息,如条码类型decoded_types,条码字符串decoded_strings
get_bar_code_result (BarCodeHandle, 'all', 'decoded_strings', BarCodeResults)
*为指定类型的条码设置参数
set_bar_code_param_specific (BarCodeHandle, ['EAN-13','Code 39'] ,'orientation', [90.0,0.0])
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
*获取指定类型条码的参数
get_bar_code_param_specific (BarCodeHandle, ['EAN-13','Code 39'], 'orientation_tol', GenParamValue)
dev_display(Image)
Row:=475
Column:=465
Phi:=0.07
Length1:=265
Length2 :=80
*在图片指定区域内读取条码。
decode_bar_code_rectangle2 (Image, BarCodeHandle, 'Code 39', Row, Column, Phi, Length1, Length2, DecodedDataStrings)
*当读取的条码类型是Code 39时,其结果可用此函数转换为Code 32类型字符串。
convert_decoded_string_code39_to_code32(DecodedDataStrings, ConvertedDataStringCode32)
帖子为下面的halcon视频教程部分内容,
可以下载视频教程学习与实践。
  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索