libdmtx下载
https://github.com/dmtx/libdmtx
libdmtx安装
$ ./configure
$ make
$ sudo make install
运行./configure如果报"./configure: No such file or directory",错误,先运行 ./autogen.sh再运行./configure即可。
测试代码
#include "opencv2/opencv.hpp"
#include "dmtx.h"
int main(int argc, char *argv[])
{
cv::Mat matImg = cv::imread("/home/vicky/Desktop/images/test.png", -1);//选择要解码的图片
if(matImg.empty())
{
return -1;
}
cv::Size size;
cv::Point pt;
matImg.locateROI(size, pt);
DmtxImage *img;
DmtxDecode *dec;
DmtxRegion *reg;
DmtxMessage *msg;
img = dmtxImageCreate(matImg.data, size.width, size.height, DmtxPack24bppRGB);
assert(img != NULL);
dec = dmtxDecodeCreate(img, 1);
assert(dec != NULL);
reg = dmtxRegionFindNext(dec, NULL);
if(reg != NULL)
{
msg = dmtxDecodeMatrixRegion(dec, reg, DmtxUndefined);
if(msg != NULL)
{
fputs("output: \"", stdout);
fwrite(msg->output, sizeof(unsigned char), msg->outputIdx, stdout);
fputs("\"\n", stdout);
dmtxMessageDestroy(&msg);
}
dmtxRegionDestroy(®);
}
dmtxDecodeDestroy(&dec);
dmtxImageDestroy(&img);
return 0;
}
运行结果