Windows系统下libdmtx库的配置(VS2015+OpenCV3.4.3+libdmtx0.7.4)

libdmtx是一个对DM(DataMatrix)码进行编码和解码的开源库。
有关DM码的介绍可参考:https://www.cnblogs.com/gcczhongduan/p/5380337.html

step1 运行环境

1、Windows 10 64位

2、Visual Studio 2015 Professional

3、OpenCV 3.4.3

4、libdmtx 0.7.4

step2 编译生成库文件

1、在该链接https://sourceforge.net/p/libdmtx/libdmtx/ci/v0.7.4/tree/将0.7.4和0.7.2两个版本的库下载至本机,并解压。
在这里插入图片描述
在这里插入图片描述

2、将0.7.2文件夹中的project和wrapper文件夹拷到0.7.4的文件夹中。
在这里插入图片描述

3、打开libdmtx-libdmtx-0.7.4\project\visualc9路径下的libdmtx.sln解决方案文件,选中倒数第二个选项。
在这里插入图片描述

4、选中解决方案libdmtx,右键重新加载项目,确定单向升级。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、默认生成的是32位的lib和dll,如果要生成64位的,需要配置管理器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、配置好管理器后,右键解决方案,生成解决方案,不报错即可生成对应的lib和dll文件。
在这里插入图片描述
在这里插入图片描述

step3 配置库文件

1、将libdmtx-libdmtx-0.7.4\project\visualc9\x64\Debug下的libdmtx.lib和libdmtx.dll文件,以及0.7.4文件夹下的dmtx.h文件一同拷出备用。
在这里插入图片描述

2、在VS2015中新建空项目,在属性管理器->链接器->输入->附加依赖项中将libdmtx.lib添加进去。
在这里插入图片描述

3、复制以下代码,选择一张DM码的图片放入空项目路径中,运行解码。

#include <iostream>
#include <opencv2\opencv.hpp>
#include "dmtx.h"

int main()
{
	DmtxMessage *msg;
	DmtxRegion *reg;
	cv::Mat src = cv::imread("DM_code.jpg");
	if (!src.data)
	{
		std::cout << "cannot load image!" << std::endl;
	}
	DmtxImage *img;
	img = dmtxImageCreate(src.data, src.cols, src.rows, DmtxPack24bppRGB);
	DmtxDecode *dec = dmtxDecodeCreate(img, 1);
	reg = dmtxRegionFindNext(dec, NULL);
	if (reg != NULL)  //如果检测到存在DM码区域
	{
		msg = dmtxDecodeMatrixRegion(dec, reg, DmtxUndefined);  //解析DM码
		if (msg != NULL)  //如果DM码解析成功
		{
			std::cout << "DataMatrix Decode Result: " << msg->output << std::endl;
			dmtxMessageDestroy(&msg);
		}
		dmtxRegionDestroy(&reg);
	}
	dmtxDecodeDestroy(&dec);
	dmtxImageDestroy(&img);
	cv::imshow("Test", image);
	cv::waitKey();
	return 0;
}

step4 测试

实际测试中,选择使用摄像头捕获用代码生成的DM码,解码结果为本站博客网址。
在这里插入图片描述

有关条码定位:
代码中条码区域reg指针对象可以获取条码的位置信息,但是测试发现定位效果一般。
(测试图来自网络)
在这里插入图片描述

参考文章:
https://blog.csdn.net/qq_34965116/article/details/84202703
https://blog.csdn.net/tfb760/article/details/91312804
http://libdmtx.wikidot.com/libdmtx-on-windows-using-visual-studio
https://blog.csdn.net/wangduanqiugao/article/details/78696337
https://www.cnblogs.com/gcczhongduan/p/5380337.html
https://blog.csdn.net/p154613730/article/details/83999288
https://blog.csdn.net/fengbingchun/article/details/44279967
https://blog.csdn.net/fengbingchun/article/details/53889293(先生成二维码再解码)

Juliet 于 2019.9

猜你喜欢

转载自blog.csdn.net/stjuliet/article/details/100920405