DM 码是一种二维矩阵码,由深浅两种不同灰度的码块组成棋盘的样式,其具有正方形和长方形两种符号形式。图1表示了一个DM 码的区域划分。DM 码由定位图形和数据区域组成,定位图形又由一组垂直的实线边缘和虚线边缘组成,实线边缘形成一个“L”形的特征边,用于提供条码的位置基准和方向基准,虚线边缘由深浅两色码块切换组成,其提供二维条码的尺寸信息;数据区域分布着深色和浅色的码块,分别代表数据位“1”和“0”,通过对条码以编码规则顺序读出每个码块代表的数据位信息,得到一组承载一定信息的数据流,按DM 码的编码协议可译码得到条码所存储的数据内容。

图1 DM 码符号
DM码的识别流程主要分为6 个步骤,分别为定位条码区域,对数据区采样,检查条码的版本,提取数据流,就数据流进行纠错,按编码规则进行译码,最后输出译码后的条码内容,执行流程如图2所示。

图2 DM 码识别流程
DM 码以其存储方式和纠错方式分为ECC000-140 与ECC200 两种类型,其中ECC000-140 根据ECC000、ECC050、ECC080、ECC100 和ECC140 这些格式的不同采用不同的卷积纠错方法,而ECC200 使用Reed-Solomon 纠错算法,具有更强大的纠错能力。ISO/IEC-16022 标准中建议使用ECC200 作为新的DM 码应用,而将ECC000-140 作为内部管理使用。
两种类型的DM 码比较如表1.1 所示。


从上表可以看出,ECC200 具有更强的纠错性能和更大的存储容量,其可扩展的字符集特点也赋予DM 码具有针对性的编码应用的可能。两种类型的DM 码外型基本一致,故可使用同一个定位、提取算法获取图像中的DM 码信息。

参考:
[1]郭浩铭. 复杂背景下的DataMatrix二维码识别算法研究[D].深圳大学,2017.

DataMatrix 码提取流程相关推荐

  1. 二维码提取(不包括识别)

    二维码提取(不包括识别) 实验室相关课题需要对二维码中心点作为特征点来提取,得到其像素坐标,然后利用深度相机恢复其三维空间坐标,用于后续实验.本文主要针对二维码中心点像素坐标提取做介绍. 二维码概述 ...

  2. 搭建认证服务器 - Spring Security Oauth2.0 集成 Jwt 之 【授权码认证流程】 总结

    在搭建介绍流程之前,确保您已经搭建了一个 Eureka 注册中心,因为没有注册中心的话会报错(也有可能我搭建的认证服务器是我项目的一个子模块的原因):Request execution error. ...

  3. laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)

    laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案) 参考文章: (1)laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案) (2)http ...

  4. c语言先调用load函数,透过源码全流程分析+load函数初始化

    网络上讲解+load函数的文章很多很多,但我总觉得缺少点什么,主要表现在不够系统化,割裂的看待问题.本文只是谈一下个人的理解,主要涉及以下四个方面: 苹果开发文档对+load方法的介绍 dyld是如何 ...

  5. ArcGIS水文分析实战教程(13)流域提取流程

    ArcGIS水文分析实战教程(13)流域提取流程 本章导读:这里的流域是一个自然概念,而不是行政概念,或者称之为集水区更加合理一些.在流域提取中,其过程都是先定义河流然后才能通过河流定义流域.其中流域 ...

  6. 阿里云盘福利码兑换流程

    目录 一.阿里云盘简介 二.专属福利码 三.福利码兑换流程 (1)进入阿里云盘app,点击我的 (2)选择福利社 (3)点击右上角的兑换福利码 (4)填写粉丝福利即可兑换成功 一.阿里云盘简介 阿里云 ...

  7. 生鲜配送系统源码开发流程教程

    生鲜配送系统源码开发流程教程 随着微信小程序的上线,越来越多的商家发现小程序的商机,纷纷加入小程序,不管是企业还是零售个体还是商户,都可以充分的利用微信小程序来扩展销量. "小程序+同城配送 ...

  8. Android sim卡 pin码解锁流程.

    sim卡 pin码解锁流程 1. PIN码解锁界面属于Phone Policy的一部分,代码位置在 \frameworks\base\policy\src\com\android\internal\p ...

  9. 网站微信扫码支付流程

    网站微信扫码支付流程 一.申请微信公众号 1.首先去微信公众平台申请微信公众号(小程序的也可以),APP_ID是要用的 二.注册商户平台(个体目前不能申请) 1.注册申请通过后,商户号(MCH_ID) ...

  10. Jetson Agx Xavier USB驱动裁剪+can时钟修改+内核源码编译流程(jetpack4.6.1)

    自己做了一块Xavier载板,硬件裁剪了一些功能,导致官方镜像usb无法使用,我使用的是jetpack4.6.1(R32.7.1),所以进行驱动修改,重新编译内核. 一.虚拟机环境 在Windows下 ...

最新文章

  1. 一个简单的apache cgi-bin
  2. Java黑皮书课后题第10章:*10.19(Mersenne素数)
  3. aspx页面在运行的时候会自动产生当前页面类的一个子类。
  4. java findclass_带你深入了解Class类-深度分析:反射从入门到精通
  5. win7 绑定arp
  6. 快速排序的性能和名字一样优秀
  7. Docker-HealthCheck指令探测ASP.NET Core容器健康状态
  8. regsvr32.exe进程注册dll文件
  9. IntelliJ Idea取消Could not autowire. No beans of 'xxxx' type found的错误提示
  10. android 混淆移除log,关于安卓代码混淆和Release版本中去除Debug信息
  11. linux 修改ssh密码_西部数码使用指南:弹性云linux系统通过控制台进入单用户重置ssh登陆密码(适用centos6)...
  12. urlencode编码基本概念_URLencode编码简析
  13. 在线翻译_英汉互译,支持繁体,韩语,日语 - 微信小程序在线翻译,单词句子翻译
  14. ubuntu查看opencv版本
  15. JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构
  16. 字符识别,口算题识别论文小梗概
  17. 获取高德地图省市区县列表
  18. Linux常用操作命令和命令行编辑快捷键
  19. 采用bitly压缩url
  20. 抖音开发 发布内容至抖音H5

热门文章

  1. 求助!ENDnoteX8+Word2016可关联,但总提示【该文档有宏】等bug
  2. CAPL学习之路-关键字
  3. 网站扫码登录时怎么一回事?
  4. Java实现多文档文本编辑器
  5. 2020张宇1000题【好题收集】【第七章:三重积分、曲线曲面积分】
  6. 微信小程序密码显示隐藏(小眼睛)
  7. 美团搜索广告排序推荐,从机器学习到深度学习的模型实践
  8. 影视后期PR效果窗口
  9. 通过文献DOI下载外文文献
  10. Oracle项目管理系统的BIM应用