`
agao1985
  • 浏览: 4063 次
  • 性别: 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之间,经过现场的真实测试后,二维码已经集成到管理信息系统系统。
分享到:
评论

相关推荐

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

    在IT行业中,条形码和二维码是数据交换与识别的重要工具,广泛应用于商品管理、物流追踪、信息存储等领域。Google的ZXing(Zebra Crossing)是一个开源项目,它提供了跨平台的条形码和二维码生成及扫描功能。下面将...

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

    二维码小工具 - VBA_二维码vba_二维码_二维码生成_VBa_VBA二维码是一个使用VBA(Visual Basic for Applications)编程实现的Excel宏工具,它允许用户在Excel环境中生成二维码。VBA是Microsoft Office套件中内置的一...

    生成二维码_labview二维码_labviewqrcode_二维码_

    在本主题中,我们主要关注如何利用LabVIEW来生成二维码。二维码(Quick Response Code)是一种二维条码,能存储大量数据,如网址、文本、联系信息等,且读取速度快,应用广泛。 生成二维码在LabVIEW中通常涉及到...

    EBS二维码打印,oracle 二维码打印

    在Oracle E-Business Suite (EBS) 中实现二维码打印功能是一项技术性的工作,涉及到报表开发、数据集成以及打印机设置等多个方面。以下是对这个主题的详细解释: 1. **Oracle E-Business Suite(EBS)**:Oracle ...

    HTML+JS 显示二维码_html_二维码_显示二维码_

    在网页上显示二维码是一项常见的需求,特别是在嵌入式系统中,它可以方便地将链接、文本信息等转换为可扫描的图像。本教程将详细介绍如何利用HTML和JavaScript来实现这一功能。 首先,理解二维码(Quick Response ...

    pb如何生成二维码.rar_PB 二维码_PB显示二维码_directlyzpo_joymog_pb二维码开发

    在本压缩包中,我们关注的是如何在PB环境中生成和显示二维码。二维码(Quick Response Code)是一种二维条码,可以存储大量信息,如网址、文本、联系人信息等,并能被智能手机快速读取。 首先,`MakeQRBarcode.dll`...

    Java 生成二维码代码

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

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

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

    FastReport完美支持中文二维码

    在标题提到的“FastReport完美支持中文二维码”中,我们主要关注的是FastReport对中文字符在二维码生成中的优化。 在此之前,尽管FastReport已经支持二维码生成,但对于中文字符的支持可能存在一些问题,可能显示不...

    二维码参数指标,22种二维码介绍

    二维码参数指标,22种二维码介绍 二维码是一种常用的自动识别技术,广泛应用于物流、零售、医疗等行业。二维码的参数指标是衡量二维码质量和可读性的重要指标,本文将详细介绍二维码参数指标和22种二维码的介绍。 ...

    Java实现的生成二维码和解析二维码URL操作示例

    Java 实现生成二维码和解析二维码 URL 操作示例 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在实际应用中,生成二维码和解析二维码 URL 是非常常见的操作。本文将详细介绍 Java 实现生成二维码和解析...

    PB生成二维码(ocx控件)_二维码_

    在IT行业中,二维码(Quick Response Code,简称QR码)已经成为数据传输和信息交换的重要工具,尤其是在移动设备上。PowerBuilder是一款老牌的可视化编程环境,专用于开发企业级应用。将二维码功能集成到Power...

    visionpro9.0二维码评级vpp

    "二维码评级"是其中的一个关键功能,它能够评估二维码的质量并根据行业标准进行分级。 在VisionPro 9.0中,二维码评级是通过内置的VPP(VisionPro Programming)工具实现的。VPP是一个可视化编程环境,用户可以通过...

    斑马打印机二维码打印斑马打印机二维码打印

    斑马打印机,作为工业级条码和二维码打印的佼佼者,被广泛应用于物流、仓储、制造等行业。本文将深入探讨如何使用斑马打印机进行二维码的打印,以及相关的技术要点。 首先,我们要了解斑马打印机的基本操作。斑马...

    VB_QRCode_QRCodevb_QRCODE_VB生成二维码_二维码_vb6生成二维码_

    在VB6(VB 6.0,Visual Basic 6.0)编程环境中,生成二维码是一项常见的需求,尤其在数据交换、信息展示等领域。本项目"VB_QRCode_QRCodevb_QRCODE_VB生成二维码_二维码_vb6生成二维码_"提供了一种解决方案,它是一个...

    二维码生成-C语言版本

    二维码生成在信息技术领域中是一项常见的任务,特别是在移动设备和物联网应用中。C语言,作为一种基础且广泛应用的编程语言,虽然不如高级脚本语言如Python或Java那样方便地提供现成的库来处理图像和编码,但依然...

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

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

    labview一次识别16个二维码

    在本场景中,我们讨论的是如何使用LabVIEW 2013及其视觉模块(Vision Development Module, VDM)来实现一次识别16个二维码的功能。这个任务涉及到图像处理、模式识别和计算机视觉等技术。 首先,我们要明确的是,...

    利用STM32生成二维码,实现二维码的转换

    在本文中,我们将探讨如何利用STM32微控制器生成二维码,实现数据的编码和解码,以便于信息的快速传递和读取。 首先,我们要了解二维码(Quick Response Code)的基本原理。二维码是一种二维条形码,能存储比传统...

    Halcon二维码_C#_二维码识别_halcon_

    在IT行业中,二维码识别是一项广泛应用于移动支付、信息交换、广告推广等领域的技术。本项目以"Halcon二维码_C#_二维码识别_halcon_"为主题,旨在介绍如何使用Halcon这一强大的机器视觉库,结合C#编程语言,实现对...

Global site tag (gtag.js) - Google Analytics