Qt 识别 DM 码

  • 下载libdmtx
  • 添加源码到Qt 工程
  • 生成一维码/二维码

识别普通二维码网上库很多,这个库专门识别 DM码

下载libdmtx

https://github.com/dmtx/libdmtx

添加源码到Qt 工程

libdmtx.pri

INCLUDEPATH +=$$PWDHEADERS += \$$PWD/libdmtx/dmtx.h \$$PWD/libdmtx/dmtxstatic.hSOURCES += \$$PWD/libdmtx/dmtx.c \$$PWD/libdmtx/dmtxbytelist.c \$$PWD/libdmtx/dmtxdecode.c \$$PWD/libdmtx/dmtxdecodescheme.c \$$PWD/libdmtx/dmtxencode.c \$$PWD/libdmtx/dmtxencodeascii.c \$$PWD/libdmtx/dmtxencodebase256.c \$$PWD/libdmtx/dmtxencodec40textx12.c \$$PWD/libdmtx/dmtxencodeedifact.c \$$PWD/libdmtx/dmtxencodeoptimize.c \$$PWD/libdmtx/dmtxencodescheme.c \$$PWD/libdmtx/dmtxencodestream.c \$$PWD/libdmtx/dmtximage.c \$$PWD/libdmtx/dmtxmatrix3.c \$$PWD/libdmtx/dmtxmessage.c \$$PWD/libdmtx/dmtxplacemod.c \$$PWD/libdmtx/dmtxreedsol.c \$$PWD/libdmtx/dmtxregion.c \$$PWD/libdmtx/dmtxscangrid.c \$$PWD/libdmtx/dmtxsymbol.c \$$PWD/libdmtx/dmtxtime.c \$$PWD/libdmtx/dmtxvector2.c

使用
在.pro添加

include($$PWD/libdmtx.pri)

它给的例子是使用opencv的cv::mat,这里我们用QImage取代它

#include "libdmtx/dmtx.h"int QRCodeTool::dataMatrixDecode(const QString &imageName)
{QImage image;if(!image.load(imageName)){qWarning()<<"image load fail !!!";return -1;}if(image.format() == QImage::Format_Mono){image = image.convertToFormat(QImage::Format_ARGB32);qDebug()<<"image.format() "<<image.format();}int pack = DmtxPack32bppXRGB;switch(image.format()){case QImage::Format_ARGB32:pack = DmtxPack32bppXRGB;break;case QImage::Format_RGB32:pack = DmtxPack32bppXRGB;break;case QImage::Format_RGB888:pack = DmtxPack24bppRGB;break;case QImage::Format_Indexed8:pack = DmtxPack8bppK;break;case  QImage::Format_Grayscale8:pack = DmtxPack8bppK;}int width = image.width();int height = image.height();DmtxImage* img = dmtxImageCreate(image.bits(), width, height, pack);//DmtxPack32bppRGBX,DmtxPack24bppRGBif (!img) {fprintf(stderr, "dmtx image create fail\n");return -1;}DmtxDecode *dec = dmtxDecodeCreate(img, 1);DmtxRegion *reg = Q_NULLPTR;DmtxMessage *msg = Q_NULLPTR;reg = dmtxRegionFindNext(dec, Q_NULLPTR);if (reg)  //如果检测到存在DM码区域{msg = dmtxDecodeMatrixRegion(dec, reg, DmtxUndefined);  //解析DM码if (msg)  //如果DM码解析成功{std::cout << "DataMatrix Decode Result: " << msg->output << std::endl;dmtxMessageDestroy(&msg);}dmtxRegionDestroy(&reg);}dmtxDecodeDestroy(&dec);dmtxImageDestroy(&img);return 0;
}

生成一维码/二维码

https://blog.csdn.net/u012020854/article/details/113061811

Qt 识别 DM 码相关推荐

  1. Qt识别一维码、二维码软件分享

    一.效果展示 二.实现方案 识别主要通过qzxing库来识别,库的下载和编译百度一下. 三.实现源码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWIN ...

  2. Android园区部队人脸识别源码门禁项目讲解

    Android园区部队人脸识别源码门禁项目讲解 这边搞人脸识别相关项目有一段时间,今天抽时间讲述一个经典的人脸识别项目:部队人脸识别门禁系统. 大家都知道部队对人员管理安全要求是相当高的,很多保密的技 ...

  3. mnist 数据集的识别源码解析

    在基本跑完识别代码后,再来谈一谈自己对代码的理解: 1      前向传播过程文件(mnist_forward.py) 第一个函数get_weight(shape, regularizer); 定义了 ...

  4. 【Labview机器视觉】- USB摄像头识别一维码(条形码)- 学习记录

    [Labview机器视觉]- USB摄像头识别一维码(条形码)- 学习记录 前言 一.读取USB摄像头 二.拍照并储存 三.读取一维码 后记 前言 本篇文章是关于Labview机器视觉学习的记录. 1 ...

  5. 使用pytorch模型学习框架easyocr模块识别行程码图片文字并使用Flask Web返回指定信息json字符串

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 使用pytorch模型学习框架easyocr模块行识别程码图片 安装部署 实践使用 ...

  6. python识别麻将牌_图像识别之麻将识别源码( 三 )

    图像识别之麻将识别源码( 三 ) 未经过允许不得转载,转载请联系我,如何联系,点我头像. 连载已经完结, 百度网盘测试APP下载地址: 提取码:pkbl 先见效果图,另外我已经上传到了抖音视频,想看N ...

  7. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  8. Android安卓麻将识别源码Demo( 三)

    Android安卓麻将识别源码Demo( 三) 未经过允许不得转载,转载请联系我,如何联系,点我头像. 连载已经完结, 百度网盘测试APP下载地址:  链接:https://pan.baidu.com ...

  9. 如何通过Excel数据批量生成DM码

    DM码指的就是最常用的Data Matrix 二维码,Data Matrix二维码原名Data code,是由美国国际资料公司于1989年发明.DM码需要选择编码容量大的二维码,而Data Matri ...

  10. Qt C++ 源码 开发《打飞机游戏》

    QT C++ 源码 开发打飞机游戏(账户登录.注册本地存储.添加音乐播放) 我是刚接触Qt一个多月的新手,有着想做一款打飞机类型游戏的心.在做之前我先在网上找过同类型的框架,也是通过自己的收集,自 己 ...

最新文章

  1. 4G EPS 的接口类型
  2. 001-Java命名规范
  3. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL
  4. 使用JS动态生成表格数据和分页显示
  5. java 监听文件内容_java 监听文件内容变化
  6. ubuntu下载goalng-1.9
  7. JavaWeb过滤器的应用
  8. SGD、Adam优化器
  9. redis-实现排行榜
  10. Web安全之CSRF攻击
  11. vofuria的开发(1)
  12. 云服务器复现PointRCNN代码踩坑总结
  13. ride导入自定义python库
  14. Linux NAND FLASH驱动程序分析(mini2440)
  15. 音频怎么转换文件格式?教你轻松转换
  16. 2020NBA选秀大会结果出炉,开启.fans球星域名抢注!
  17. JAVA基础——基本类型
  18. java小游戏-java小游戏-飞机大战
  19. Python黑帽子--黑客与渗透测试编程之道 python3 实现代码
  20. Hive学习笔记(1)基本操作

热门文章

  1. pdf两页合并一页,身份证两页合并到一页
  2. 根据两点经纬度坐标计算距离
  3. Linux vi命令详解与使用教程
  4. iOS商户进件之【营业执照编号校验】18位社会信用代码验证 unified social credit identifier
  5. Ubuntu中Scala下载
  6. 广数系统加工中心编程_数控铣床与数控加工中心操作与编程
  7. WinRAR去广告方法
  8. 清理vdbench后台进程
  9. 【转】姚班学霸陈立杰
  10. C语言实训设计——疫情健康打卡系统