Datamatrix码
DataMatrix二维条码原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)於1989年发明。DataMatrix二维条码是一种矩阵式二维条码,其发展的构想是希望在较小的条码标签上存入更多的资料量。DataMatrix二维条码的最小尺寸是目前所有条码中最小的,尤其特别适用於小零件的标识,以及直接印刷在实体上。
DataMatrix二维条码又可分为ECC000-140与ECC200两种类型,ECC000-140具有多种不同等级的错误纠正功能,而ECC200则透过Reed-Solomon演算法产生多项式计算出错误纠正码,其尺寸可以依需求印成不同大小,但采用的错误纠正码应与尺寸配合,由於其演算法较为容易,且尺寸较有弹性,故一般以ECC200较为普遍,本节也仅介绍ECC200规格的DataMatrix二维条码码,以下所说的DataMatrix二维条码事实上都是指ECC200而言。
DataMatrix二维条码的外观是一个由许多小方格所组成的正方形或长方形符号,其资讯的储存是以浅色与深色方格的排列组合,以二位元码(Binary-code)方式来编码,故电脑可直接读取其资料内容,而不需要如传统一维条码的符号对映表(Character Look-up Table)。深色代表 “1”,浅色代表 “0”,再利用成串(String)的浅色与深色方格来描述特殊的字元资讯,这些字串再列成一个完成的矩阵式码,形成DataMatrix二维条码码,再以不同的印表机印在不同材质表面上。由於DataMatrix二维条码只需要读取资料的20%即可精确辨读,因此很适合应用在条码容易受损的场所,例如印在暴露於高热、化学清洁剂、机械剥蚀等特殊环境的零件上。
DataMatrix二维条码的尺寸可任意调整,最大可到14平方英寸,最小可到0.0002平方英寸,这个尺寸也是目前一维与二维条码中最小的,因此特别适合印在电路板的零组件上。另一方面,大多数的条码的大小与编入的资料量有绝对的关系,但是DataMatrix二维条码的尺寸与其编入的资料量却是相互独立的,因此它的尺寸比较有弹性。 此外,DataMatrix二维条码最大储存量为2,000bytes,自动纠正错误的能力较低,只适用特别的CCD扫瞄器来解读。
DataMatrix二维条码的结构
(一) 特性
DataMatrix二维条码码具有以下特性:
可编码字元集包括全部的ASCII字元及扩充ASCII字元,共256个字元。
条码大小(不包括空白区):10×10 ~ 144×144
资料容量:235个文数字资料,1556个8位元资料,3116个数字资料。
错误纠正:透过Reed-Solomon演算法产生多项式计算获得错误纠正码。不同尺寸宜采用不同数量的错误纠正码。
(二 )基本结构
每个DataMatrix二维条码符号由规则排列的方形模组构成的资料区组成,资料区的四周由定位图形(Finder Pattern)所包围,定位图形的四周则由空白区包围,资料区再以排位图形(Alignment Patterns)加以分隔。
定位图形
定位图形是资料区域的一个周界,为一个模组宽度。其中两条邻边为暗实线,主要用於限定物理尺寸;定位和符号失真。另两条邻边由交替的深色和浅色模组组成,主要用於限定符号的单元结构,但也能帮助确定物理尺寸及失真。
符号尺寸
ECC000-140符号有奇数行与奇数列。符号外观为一方形矩阵,尺寸从9×9至49×49,不包括空白区。这些符号可透过右上角深色方格识别出来。
ECC200符号有偶数行与偶数列。有些符号是正方形,尺寸从10×10至144×144,不包括空白区。有些是长方形,尺寸从8×18至16×48,不包括空白区。所有的ECC200符号都可以透过右上角浅色方格识别出来。
资料表示方法
DataMatrix二维条码按以下步骤来表示资料:
资料编码
先分析要表示的资料,选取合适的编码方案,按所选定的方案将资料流转为字码流,并加入必要的填字,如果使用者未规定矩阵寸,则应选取能满足要存放资料的最小尺寸。DataMatrix二维条码共有6种编码方案,即6种字码集,见表10.1。
DataMatrix二维条码的编码方案与相对应之字元集
编码方案 字元集
ASCII 十进位数字
ASCII值0~127
扩展ASCII值128~255
C40
基本大写文数字型
Text 基本小写文数字型
EDIFACT 32~94
Base256 0~255
X12 ANSI X12 EDI数据集
错误检测和纠正字码(ECC)的产生
对少於255个字码的DataMatrix二维条码,错误纠正字码可由资料字码计算得出。对於多於255个字码的符号,应将资料字码分成多个模组,然後再产生每一个模组的错误纠正字码。错误纠正字码能够纠正两种类误字码,包括E错误(已知位置上的错误字码),以及T错误(未知位置上的错误字码)。换句话说,E错误是不能被扫瞄或不能被解码的符号字元,T错误则是被错误解码的符号字元。
Datamatrix码的更多相关文章
- Atitit Data Matrix dm码的原理与特点
Atitit Data Matrix dm码的原理与特点 Datamatrix原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于 ...
- zxing源码分析——QR码部分
Android应用横竖屏切换 zxing源码分析——DataMatrix码部分 zxing源码分析——QR码部分 2013-07-10 17:16:03| 分类: 默认分类 | 标签: |字号大中 ...
- C# 生成 DataMatrix 格式的二维码
该文主要是利用OnBarcode.dll 生成 DataMatrix 格式的二维码的一些简单方法和操作技巧.关于QrBarcode的二维码比较常见和简单,网上有很多资源. 1.附件为dll 2.利用上 ...
- DataMatrix二维条码源码分析检测识别图像位置
发布时间:2014-10-31 DataMatrix的代码结构和QR码基本相同: 其中Detector的功能还是从原始图像中找出符号码的部分,并且进行透视转换纠正扭曲. 其解码流程与QR码差不多,关键 ...
- 打印十字码 DataMatrix
nuget 安装 DataMatrix.net //示例 DmtxImageEncoder Die = new DmtxImageEncoder(); DataMatrix.net.DmtxImage ...
- SparkMLlib之 logistic regression源码分析
最近在研究机器学习,使用的工具是spark,本文是针对spar最新的源码Spark1.6.0的MLlib中的logistic regression, linear regression进行源码分析,其 ...
- FastReport 中添加二维码功能.(Delphi)
http://www.cnblogs.com/fancycloud/archive/2011/07/24/2115240.html FastReport 中添加二维码功能.(Delphi) 在实际 ...
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- 随手记一次利用开源zxing生成带嵌入logo的二维码图片
之前就在项目里面用过zxing生成二维码,最近另一个项目同样需要用到二维码,故重新在学了学利用zxing生成二维码 接下来先做准备工作了,因为我是用vs2013上开发的,故选择了.net4.5版本的z ...
随机推荐
- JSONP跨域的原理解析及其实现介绍
JSONP跨域的原理解析及其实现介绍 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-22 JSONP跨域GET请求是一个常用的解决方案,下面我们来看一下JSONP跨域是如何实现的,并 ...
- TCP各种连接状态注释
TCP各种连接状态注释 连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CL ...
- Use Excel to write insert SqlScript
="insert into Process.dbo.TempHampInGoodStandingLoanList (Loan_No,ProgramType,ModificationEffec ...
- 用JS判断两个数字的大小
js中的var定义的变量默认是字符串,如果单纯的比较字符串的话,会出现错误,需要先转化为int类型在做比较. [备注:110和18在你写的程序中是18大的,因为 这两个数都是字符串,而1和1相等之后比 ...
- 视频媒体播放,最好的 HTML 解决方法
最好的 HTML 解决方法 HTML 5 + <object> + <embed> <video width="320" height="2 ...
- SQL Server 2012学习笔记 1 命令行安装
setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=748RB-X4T6B-MRM7V-RTVFF-CHC8H /FEATU ...
- Oracle Enterprise Manager 11g 输入用户名和口令 点击“登录”按键后没反应,也不报错,是什么原因?
在tnsnames.ora文件中检查设置好像没什么问题,用sqlplus也可以正常操作orcl 问题找到了,其实可简单,https://localhost:1158/em/console/logon/ ...
- codeforces 522D. Closest Equals 线段树+离线
题目链接 n个数m个询问, 每次询问输出给定区间中任意两个相同的数的最近距离. 先将询问读进来, 然后按r从小到大排序, 将n个数按顺序插入, 并用map统计之前是否出现过, 如果出现过, 就更新线段 ...
- 0610 python 基础03
复习: 条件判断 if..else >>> age=28 >>> if age<18: ... print "你还没有成年吧" ... ...
- [LeetCode]题解(python):006-ZigZag Conversion
题目来源: https://leetcode.com/problems/zigzag-conversion/ 题意分析: 这道题目是字符串处理的题目.输入一个字符串和一个数字,将字符串填入倒Z形输入字 ...