现在各行各业的人们都使用条码/二维码从生产阶段到销售点全程追踪他们

的产品。那么怎么验证生产出来的具有可读性,码的质量等级如何呢?

其实ISO行业标准已经给出了如何评估码的质量等级的标准,以下三种主要验证标准用于确定一维条码、二维码和DPM码的质量。

  • 一维条码使用ISO 15416标准。

  • 印刷在标签上的二维码使用ISO 15415标准。

  • 二维DPM码使用ISO/IEC TR 29158标准(也称为AIM DPM标准)。

1 条码质量

一维条码由一系列条与空组成,这些条与空基于宽度模式创建一组数据。每个单独的条或空被称为一个元素。一组形成特定模式的条与空称为字符。每种符号体系都拥有一组可转换为字符的不同模式。

读取一维条码时,扫描线将横向穿过代码来测量反射率,以确定条与空的大小和模式。当扫描线在整个代码上移动时,光线在穿过空模块时会被反射,并被条模块吸收。从暗到亮的光路创建了扫描反射率剖面图(“SRP”)。当扫描线穿过较暗的条时,它将导致SRP下降至全局阈值以下;然后,当扫描线穿过较亮的空时,它将再次上升至全局阈值以上。

图片中的虚线代表全局阈值,该阈值定义了划分明与暗的灰度值。

每个参数均基于SRP被评级。理想情况下,相比条或空,SRP在大小上是一致的,准确地模仿了所读取的代码。此图片中的代码显示了具有缺陷和调制问题的代码示例。当扫描线穿过缺陷点时,光路开始下降,以一个凹陷使平滑的曲线被中断。此外,还有一个空不像其他空那样明亮,因此反射率剖面图不会达到与其他空元素相同的高度,这揭示了存在调制问题。

使用ISO 15416标准评级过程,通过求取10条扫描线的平均值对一维条码进行评级。根据9个不同的参数对每条扫描线进行评级,以评估可读性。评级最低的参数将成为扫描线的扫描评级。然后求取所有扫描评级的平均值,以计算总体评级。

ISO15416标准参数解释和常见解决方案如下:

下面是代码测试:

create_bar_code_model ([], [], BarCodeHandle)
*如果需要输出质量,则要开启持久模式,
set_bar_code_param (BarCodeHandle, 'persistence', 1)
*最大解码个数
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 0)
*最小条形码宽度
set_bar_code_param (BarCodeHandle, 'barcode_width_min', -1)
*最小条形码高度
set_bar_code_param (BarCodeHandle, 'barcode_height_min', -1)
*最少字符数
set_bar_code_param (BarCodeHandle, 'min_code_length', 0)
*最少对比度
set_bar_code_param (BarCodeHandle, 'contrast_min', 10)dev_close_window ()
dev_open_window (0, 0, 600, 600, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_update_off ()
dev_set_draw ('margin')
dev_set_color ('green')
dev_set_line_width (3)read_image (Image, 'C:/Users/Administrator/Desktop/bb.png')
dev_resize_window_fit_image (Image, 0, 0, -1, -1)
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'Code 128', DecodedDataStrings)
area_center(SymbolRegions, Area, Row, Column)
get_bar_code_result (BarCodeHandle, 0, 'quality_isoiec15416_labels', Labels)
get_bar_code_result (BarCodeHandle, 0, 'quality_isoiec15416', Quality)

quality_isoiec15416_labels可以得到质量参数,quality_isoiec15416可以得到质量参数值,如下:

2 二维码质量

质量良好的二维码的特点在于黑模块与白模块之间具有高对比度,边线清晰,并且比例理想。即使是微小的瑕疵,也可能导致代码出现问题。

Data Matrix符号体系可能是最常见的二维码。它可以在每个模块中实现最高的数据密度,尤其是对于较小的符号而言,因此评级质量至关重要。定位图案由实心的左侧和底侧组成,其形成“L”图案及“L”图案相对侧的水平和垂直时钟图案(或轨迹)。时钟图案指定矩阵中模块的数量,并用于读码放置模块的网格。有关符号大小、编码和纠错的所有信息均由矩阵的大小决定。

读码过程如下:

  1. 采集图像。

  2. 软件使图像模糊化,以消除背景中的噪音或纹理。

  3. 计算模糊图像上的全局阈值。全局阈值是指用于确定单元格是更接近于白色还是黑色的设置值。

  4. 软件将其转换为黑白(亦称为“二进制”)图像。为了对图像进行二值化处理,软件会使用具有灰度值的模糊图像,然后将每个像素转换为黑色或白色。

  5. 软件将追踪线条,以找到“L”图案并寻找时钟图案。本质上,它是在查找定位图案。

  6. 基于时钟齿的间距,生成参照读码网格。

  7. 在网格相交处,绘制一个圆圈(光圈),并将所包含的光值与阈值进行比较,创建一个基于单元格颜色(称为“位流”)的二进制数据序列。

  8. 使用Reed-Solomon纠错功能对位流(数据序列)进行纠正。

  9. 将校正后的位流将转换为ASCII值,以显示代码中的数据。

ISO15415标准评级过程如下:

ISO15415标准参数解释和常见解决方案如下:

下面是代码测试:

read_image (Image1, 'C:/Users/Administrator/Desktop/board/ecc200_disturbed_002.png')
create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
find_data_code_2d (Image1, SymbolXLDs, DataCodeHandle, ['stop_after_result_num'], [2], ResultHandles, DecodedDataStrings)
get_data_code_2d_results (DataCodeHandle, 0, 'quality_isoiec15415_labels', ResultValues)
get_data_code_2d_results (DataCodeHandle, 0, 'quality_isoiec15415', ResultValues2)

quality_isoiec15415_labels可以得到质量参数,quality_isoiec15415可以得到质量参数值,如下:

Halcon条码和二维码质量评级相关推荐

  1. 条码条形码二维码检错系统供应

     条码条形码二维码检错系统可防止因人为误操作.设备损坏等原因导致的错误,减少产品的退货返工,避免客户的投诉,提高工作效率.减少人力成本.适用于各种需要对条码进行检查的场合,如标签打印检查.装箱前对箱型 ...

  2. 微信小程序条码、二维码生成模块

    代码地址如下: http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  3. ZPL 打印条码、二维码及小票(中文/汉字),生成条码、二维码图片【Asp.Net】-含示例代码

    生成条码(图1).二维码(图2)图片及打印出二维码标签(图3)效果                 图1                                       图2        ...

  4. OpenCV检测与识别条码、二维码

    原文链接:http://www.juzicode.com/opencv-note-barcodedetector-qrcodedetector ​在 zbar:给我来10G打码图片 一文中桔子菌介绍了 ...

  5. 条码打印软件中如何导出条码或二维码矢量文件到Coredraw和Ai

    在通过coredraw或ai进行矢量设计时,我们经常会用到条码,虽然可以用上述软件直接生成一个条码或二维码,但约束多,更多情况下设计出来的条码识别等级也打不到A级.其实,大家完全可以先在条码打印软件中 ...

  6. Zxing条码扫描二维码扫描简化

    最近需要用到条码扫描二维码扫描的功能,于是搜索到google开源项目zxing,项目地址:http://code.g....com/p/zxing/ 下载了源代码,项目太大了,很多东西都不需要用到,我 ...

  7. Android之条码扫描二维码扫描

    Android之条码扫描二维码扫描 二维码条形码扫描,参考技术网址: 1.Apache License 2.0 开源的 ZXing项目的简化版 http://xinlanzero.iteye.com/ ...

  8. excel数据生成条码或者二维码并放在表格中(VBA)

    最近做的项目要将一列数据生成条码和二维码,并打印 这是一个简单的表格操作嵌入式脚本目的是生成二维码或条码 直接上代码 Sub 批量生成二维码()Dim k As Long, i As Long, j ...

  9. H5 嵌入条码和二维码生成

    效果动画演示 实现步骤 第一步:创建窗口"H5" 第二步:找到对应的H5处理页面(自己可以自行开发,或开发打印功能都可以的) Html5页面对应的页面代码如下: <!DOCT ...

最新文章

  1. 阿里云 云服务器 ECS——创建与绑定密钥对
  2. Java编程基础篇第四章
  3. windows平台搭建Mongo数据库复制集(类似集群)(一)
  4. springboot页面乱码问题
  5. 【C++基础学习】引起类模板被实例化情形总结
  6. python矩阵操作_Python中的矩阵操作
  7. 使用.NET为Window Mobile写自动化工具的无奈之处.
  8. React15.6.0实现Modal弹层组件
  9. python 核心编程 练习题
  10. php免杀书籍,php免杀教程【绝对原创+首发】
  11. word添加自定义样式(导入normal.dotm)
  12. wincc服务器不能创建项目,wincc不能创建和打开项目
  13. Xcelsius 使用XML做为数据源 ----利用ASP与数据库进行交互,即时刷新
  14. mysql 未找到 WinSxS_window_win7系统如何使用WinSxS工具安全删除WinSxS文件夹垃圾?,WinSxS文件: WinSxS是系统文件Wi - phpStudy...
  15. 概率论中常见分布的数学期望、方差及特征函数推导 (一)离散型随机变量
  16. Lua实现简单的任务动画移动(Animator)
  17. idea使用lombok的时候无法找到log,编译时无法找到log
  18. Ubuntu 14.04更新源
  19. rust 局域网联机_Steam上有哪些值得推荐的可以多人局域网联机的游戏?
  20. 大创项目(记录自己的教训)

热门文章

  1. h5响应式布局、PC和移动端适配方案
  2. 2.STM32F427llHX(大疆A板) 点亮小灯(库函数版本)
  3. vsomeip第一课: vsomeip的安装和demo演示
  4. 有哪些平台是和连连支付合作的?连连支付可以跨境支付?
  5. pic单片机ccp脉冲捕捉c语言程序,PIC18F的CCP模块的捕捉模式实现电机测速的方法...
  6. 《pigcms v6.2最新完美至尊版无任何限制,小猪微信源码多用户微信营销服务平台系统》
  7. 《2021大数据产业年度最具投资价值企业》榜重磅发布丨金猿奖
  8. 百度地图SDK导航功能初始化错误
  9. go map fatal error:concurrent map read and map write
  10. squid代理服务之透明代理的配置方法