`
agao1985
  • 浏览: 3959 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

二维码

 
阅读更多
原文转自http://www.cnblogs.com/ruochen/archive/2012/06/28/2568699.html

以下文章是在解决客户问题时对二维码的感受,希望能给大家提供一些参考。
1问题背景

浙江某医药物流有限公司(以下简称:A物流公司)系某有限责任公司控股的全资子公司,现已投入使用的物流中心面积达6万平方米。多年来,A物流公司始终坚持“信息化是现代物流的灵魂”,自行设计开发了ERP、WMS、第三方物流系统、二维条码、办公自动化系统(OA)、物流网站,成功地应用了温湿度自动监测技术、无线射频技术(RF)、电子标签技术、消防安保红外监控报警技术、GPS监控、业务叫号系统等,引进了国际先进的托盘提升机、螺旋输送机、自动分拣系统等自动化物流设施,是一个集药品储存、验收养护、物流加工、装卸搬运、集中配送和信息服务等六大功能于一体的专业化医药物流基地。

我们从作业现场了解到,在发货前,需通过自动分拣系统对药品进行分拣,所以,仓管员在库房必须为每一箱药品打印一维码和二维码各一张标签,并粘贴在药品外包装上,然后通过螺旋输送机进入分拣系统。其中一维码标签用于药品在物流基地内部流通过程中的信息采集;而二维码标签用于药品在外部(如医院)流通过程中的信息采集。条码标签信息是自主开发的管理信息系统,仓管员通过手持终端远程访问部署在服务器的终端软件,终端软件调用我公司开发的打印组件程序驱动条码打印机打印条码标签。

我公司主要为A物流公司供应的设备主要有条码打印机、手持终端、无线路由等。其中条码打印机有两种类型:一种是移动打印机,型号为Zebra QL/420 Plus,另一种是台式打印机,型号为Zebra 888;手持终端采用的是Motorola MC50。二维码类型采用的是QR Code,包含近400至500个汉字,标签纸大小为80 * 40。

系统试运行时,台式打印机打印出来的标签上的二维码图像很清晰,手持终端对其识别率很高,扫描效果很好。但是移动式打印机打印出来的标签上的二维码图像很模糊,而且还会出现重影现象,手持终端对其识别率很低,省物品编码中心的专业仪器对其检测出来的参数未达到识别标准。试用期间,尽管我公司采取了一些措施,如放大二维码图像大小,调整打印机参数等,还邀请移动条码打印机厂商--斑马公司的工程师协助,二维码移动打印问题仍未得到圆满解决,直接导致A 物流公司的条码系统的推广计划被迫搁置。
2二维码知识

在分析上述问题之前,我们先来了解二维码方面的重要知识。
2.1二维码简介

二维码就是在平面(二维方向)上按照一定规律通过显示黑白相间的图形来记录数据信息的媒介。它可以被图象输入设备或光电扫描设备自动识读以实现信息自动处理。

相对一维码来说,二维码的主要优点是:

1) 高密度编码,信息容量大,可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字;

2)编码范围广,可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码;

3)容错能力强,具有纠错功能,即使局部损坏的二维码也可以正确得到识读;

4)译码可靠性高,二维码的误码率不超过千万分之一;

5)可引入加密措施,使得条码信息具有很好的保密性和防伪性。

使用二维码,可以很好的解决如下问题:

1)  表示包含汉字在内的数据信息。

2)  在有限的面积上表示大量信息。

3)  对物品进行精确描述。

4)  防止各种证件、卡片及单证的伪造。

5)  在无法连接数据库和不便联网的地方实现数据采集。
2.2二维码分类

按照图形结构来分,常见的二维码可分为行排式二维码和矩阵式二维码。

行排式二维码建立在一维码基础上,按需要由两行或多行的一维码堆积而成。它在编码设计、检验原理、识读方式等方面继承了一维条码的特点,其识读设备、条码印刷与一维条码兼容。常见的行排式二维码主要有PDF417、Code 49、Code 16K等,如下图:
 



PDF417


Code 49


Code 16K

1)  PDF417可以表示 1100 个字节;

2)  Code 49可以表示全部的 ASCⅡ字符;

3)  Code 16K可以表示全字符集的 128个字符及扩展 ASC Ⅱ字符。

矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上,用点的出现表示二进制“1”,点的不出现表示二进制的“0”,一系列的点的排列组合确定了二维码所代表的意义。矩阵式二维码是建立在计算机图像处理技术、组合编码的基础上的一种新型图形符号自动识读处理码制。常见的的矩阵式二维码主要有QR Code、Date Matrix、 Maxicode 、Code one等,如下图:










QR Code


Date Matrix


Maxicode


Code one








Grid Matrix


Compact Matrix




1)  QR Code除外可以表示与PDF417相同的字符外,还可以表示有效表示中国汉字、日本汉字。

2)  Data Matrix 能表示 128个字符及扩展 ASCⅡ字符;

3)  Maxicode可表示 128个 ASCⅡ字符及扩展 ASCⅡ字符;

4)  Code one可表示256个 ASCⅡ字符,另加 4个功能字符及一个填充字符。

5)  Grid Matrix和Compact Matrix标准是中国信息产业部于2006年5月份,所颁布的两项国产行业推荐标准。
2.3二维码技术指标

二维码有最重要的两个技术指标,即单位面积的信息存储容量和信息纠错能力,这两个技术指标同时影响着二维码的识别率。有限的单位面积内信息存储容量越大,可供存储纠错信息越少,纠错能力越低,反之,单位面积的信息存储容量越小,可供存储纠错信息越多,纠错能力越强。
3问题分析

根据上述二维码的知识,我们可以分析出,影响二维码识别率的因素主要包括以下方面:

a)       不同的二维码类型;

b)      条码识别设备的能力;

c)       二维码图像的打印质量;

d)      二维码单位面积的信息存储容量;

e)       二维码图像生成算法。

由于A物流公司的药品信息中包含了汉字信息,所以其二维码必须采用QR Code。由于台式打印机打印的二维码能够被MC50很好识别,而移动打印机打印的二维码却识别率很低,所以可以排除上述a)和b)两个因素的影响。这样一来,我们就应该从上述c)、d)和e)三个因素入手解决问题。
4试验过程及解决方案

第一次试验:由于之前没有接触过二维码,对二维码的知识知之甚少。首先,我在网上到处查找资料,然后潜心研究二维码相关知识,最后,我们得出的结论是,识别率低主要是纠错能力差的原因造成的;纠错等级越高,图像密度越大,扫描效果越差;QR Code最适合存储汉字的。首次试验没有实质性结果。

第二次试验:采用QR Code,通过逐步调整图像大小来提高打印质量,经过测试后发现确实有些效果,能够略微提高识别率。第二次试验收效甚微。

第三次试验:一位专门研究打印机的专家提醒,可以通过调整打印机的速度和浓度来提高打印质量,但经过测试后发现效果依然不明显。

第四次试验:通过与条码事业部的沟通过程中得知,不同价格的标签纸质量不一样。在本次测试过程中,我用质量最差的标签纸打印出来的二维码根本无法识别,而用质量最好的标签纸(理光)打印出来的二维码质量明显提高。所以,打印纸的质量好坏严重影响打印质量。

第五次试验:经过与A物流公司的工程师讨论,确定把二维码得字符容量降到300个汉字左右,配合前四次试验的方案,识别率明显提升,但是又发现扫描距离在很小的范围,这对操作员太麻烦了。

第六次试验:通过研究资料发现,生成二维码图像的程序算法会影响条码打印质量。所以接下来,我们立即对扫描接口程序结构分析,发现我公司开发的打印接口程序PLable.dll调用了一个第三方二维码生成组件。为了验证程序算法的影响,我们从网上下载了一个二维码生成软件PtBarcodeEnc (试用版),在相同的移动打印机、相同的标签、相同的字符数的情况下,我们发现生成二维码的程序算法对扫描效果影响很大。

第七次试验:经过前面六次之后,基本上可以确定能解决问题,关键是能找到最优的状态。所以,我们在本次测试中,设定5种不同的图像大小,4种不同的字符容量,经过排列组合成20种情况,并且把20种组合的效果打印出来,最后得到最优的效果。

总结七次测试,我们主要从改变图像大小、更换二维码生成程序、提高纸张质量、调整打印机参数等四个方案结合起来,并对接口程序进行优化和完善,这样就大幅提升二维码的打印质量。
5实施效果

我们从改变图像大小、更换二维码生成程序、提高纸张质量、调整打印机参数,大幅提升二维码的打印质量,把包含600个字符容量的二维码在标签纸打印后,识别率基本上可以达到100%,扫描距离的有效范围在6CM至15CM之间,经过现场的真实测试后,二维码已经集成到管理信息系统系统。
分享到:
评论

相关推荐

    QRCode二维码生成组件(珍藏版)

    现在网上很多应用都是用二维码来分享网址或者其它的信息。尤其在移动领域,二维码更是有很大的应用场景。因为项目的需要,需要在网站中增加一个生成二维码分析网址的功能,在谷歌大幅度抽筋的情况下无奈使用百度。...

    JAVA 生成二维码并设置失效机制

    1.通过QRCode.jar包生成二维码,可设置二维码图片格式,二维码图片存放路径,二维码尺寸,二维码颜色 2.二维码扫描内容分为两种,1种为链接式,如:www.zdkc.com,通过链接展示访问的内容,1种为json数据展示,通过...

    vue2 扫码获取二维码内容

    扫码扫码扫码获取二维码内容扫码扫码扫码获取二维码内容扫码扫码扫码获取二维码内容扫码扫码扫码获取二维码内容扫码扫码扫码获取二维码内容扫码扫码扫码获取二维码内容扫码扫码扫码获取二维码内容扫码扫码扫码获取...

    java自动识别图片中的二维码

    利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据利用java自动识别图片中的二维码并解析二维码中的数据...

    小程序源码 二维码生成器 (代码+截图)

    小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 ...

    Java程序批量生成二维码EPS、CSV、PDF矢量图和各种格式二维码

    面向开发人员,和经常接触使用各种二维码的人,这个工具能帮助开发二维码的人员生成各种格式二维码,包括png,jpg,bpm,gif,SVG(矢量),EPS(矢量),PDF(矢量),并且能够调用电脑的摄像头扫描二维码,将码...

    微信小程序 二维码生成器 (源码)

    微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码...

    QRCode二维码编码支持中文生成二维码的源码Asp.Net(C#)

    QRCode二维码维码支持中文Asp.Net(C#),是VS2010的项目,VS2008、VS2005也可以用,需要在你的项目里引用ThoughtWorks.QRCode.dll,在二维码生成页面内加上下面的代码: using System.Drawing.Imaging; using Thought...

    WPS插件 自动生成二维码4.0版.zip

    本工具可以自动生成二维码,只要提前设置好参数(包含使用哪些单元格生成二维码、二维码的尺寸、二维码的放置位置,分隔符),用户修改单元格中的值时,程序会全自动生成相应的二维码。 自带GIF动画教材。

    yolov7常用二维码检测检测+权重+数据集

    1、yolov7常用二维码检测检测,包含训练好的二维码检测检测权重,以及PR曲线,loss曲线等等,在二维码检测数据集中训练得到的权重,目标类别为QR_code共1个类别,并附2000多张二维码检测检测数据集,标签格式为voc和...

    条形码、二维码扫描、生成Demo 完整源码

    使用Google ZXing开源项目制作的条形码、二维码的生成、扫描Demo

    二维码生成器(微信小程序)源码.zip

    二维码生成器,一款可以生成二维码的微信小程序。可以生成带LOGO的二维码,也可以设置二维码颜色。 二维码生成器,一款可以生成二维码的微信小程序。可以生成带LOGO的二维码,也可以设置二维码颜色。 二维码生成...

    生成二维码生成二维码生成二维码

    生成二维码生成二维码生成二维码

    二维码小工具 -VBA_二维码vba_二维码_二维码生成_VBa_VBA二维码_

    用VBA语言生成二维码

    delphi FastReport,二维码

     FastReport 增加二维码支持(含源代码),方便在Delphi环境下使用FastReport的二维码功能,实现了一个 FastReport 打印二维码的应用,使用了PtQREncode.dll、PtImageRW.dll动态链接库。 用方法非常简单,将压缩包中...

    2020最新c#发票二维码识别支持pdf和图片

    c#在识别二维码这一块资源比较少,什么zxing那些用起来效果也不怎么好,所以这套代码楼主还是下了一番功夫才找到并整理的,代码主要是用来识别二维码的,然后之前试过阿里,腾讯,百度的二维码识别,准确率都不高,...

    Java 生成二维码代码

    二维码是一种快速、便捷的信息交换方式,广泛应用于商品营销、支付交易、签到管理、社交推广、文档处理、物流追踪、链接分享、出行交通、应用下载和疫情防控等众多领域,以提供便利、追踪、管理和传递信息,并为用户...

    Java窗体程序批量生成二维码EPS、CSV、PDF矢量图和各种格式二维码图片

    面向开发人员,和经常接触使用各种二维码的人,这个工具能帮助开发二维码的人员生成各种格式二维码,包括png,jpg,bpm,gif,SVG(矢量),EPS(矢量),PDF(矢量),并且能够调用电脑的摄像头扫描二维码,将码...

    基于STM32的二维码识别源码+二维码解码库lib

    基于STM32的二维码识别源码+二维码解码库lib 基于STM32的二维码识别源码+二维码解码库lib 基于STM32的二维码识别源码+二维码解码库lib 基于STM32的二维码识别源码+二维码解码库lib 基于STM32的二维码识别源码+二维码...

    java本科毕业设计基于Java Web的智能二维码门禁管理系统源码.zip

    java本科毕业设计基于Java Web的智能二维码门禁管理系统源码java本科毕业设计基于Java Web的智能二维码门禁管理系统源码java本科毕业设计基于Java Web的智能二维码门禁管理系统源码java本科毕业设计基于Java Web的...

Global site tag (gtag.js) - Google Analytics