halcon 条形码识别(持续更新)
2022/2/23 6:23:48
本文主要是介绍halcon 条形码识别(持续更新),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
达到识别目的的最简化结构
*创建条码识别模型 create_bar_code_model ([], [], BarCodeHandle) *解码 *这里码的类型自动识别 find_bar_code (Image, SymbolRegions, BarCodeHandle,['auto'], DecodedDataStrings)
只需要创建一个条形码模型再对该模型进行识别即可!
通过DecodedDataStrings我们即可得到读取到的条形码的内容
我们先加载一张图片,结果如下
再按照上述的方法对图片进行处理
得到的结果如下
我们可以发现,成功读取到数据 '05800000228902' 与'ST089030003' 但是,数据'05800000228902'的值与条码原本的值不符!
这说明读取出现了问题。
为了解决本次读取出现的问题,我们要先查看读取时的候选区域,看看是否正常。我们可以
使用以下方法查看候选区,并对候选区域进行计数,其中,候选区以蓝色显示!
*得到条形码候选区域 get_bar_code_object (BarCodeObjects, BarCodeHandle,'all', 'candidate_regions') *对候选区域进行计数 count_obj (BarCodeObjects, Number) *显示候选区域 dev_set_color ('blue') dev_display (BarCodeObjects)
我们发现左侧码的候选区域出现了异常,本应该是一个完整的区域却被分成了两个区域
为了验证我们的想法,再查看一下扫描线,看看是否出现了异常
*得到扫描线 get_bar_code_object (BarCodeObjects1, BarCodeHandle, 'all', 'scanlines_all')
添加代码后如下....
运行后出现如下提示 由于对halcon刚刚学习不久,推测应该是有扫描线间断导致的
我们这个时候要设置扫描模型,将'persistence' 设置为 1 .
*找出扫描线中的有效部分 set_bar_code_param (BarCodeHandle, 'persistence', 1)
添加代码后运行
扫描线证实了我们的想法 左侧的条形码扫描出现了异常,进行了多次扫描,扫描线出现了重叠
因为我们前面设置了'auto'自动解码,应该是自动解码判断错了解码类型导致的,我们使用以下代码查看一下解码类型来验证一下我们的想法
*获取解码类型 get_bar_code_result (BarCodeHandle, 'all','decoded_types', BarCodeResults)
得到结果如下,应该是自动模式识别错了条形码的类型
添加以下代码打开空白区验证,帮助其找到正确的条码类型
*打开空白区验证 此举可以自动拒绝不正确的条码类型 并且自动尝试直到找到正确的条码类型 set_bar_code_param (BarCodeHandle, 'quiet_zone', 'true')
此时解码正常了 条码被正确读取!
至此,这个基础的条形码解码算初步完成了!
这篇关于halcon 条形码识别(持续更新)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27文件掩码什么意思?-icode9专业技术文章分享
- 2024-12-27如何使用循环来处理多个订单的退款请求,代码怎么写?-icode9专业技术文章分享
- 2024-12-27VSCode 在编辑时切换到另一个文件后再切回来如何保持在原来的位置?-icode9专业技术文章分享
- 2024-12-27Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品 审核中
- 2024-12-27TypeScript面试真题解析与实战指南
- 2024-12-27TypeScript大厂面试真题详解与解析
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解