Linux下使用libdmtx识别图片上的datamatrix

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(&reg);
    }

    dmtxDecodeDestroy(&dec);
    dmtxImageDestroy(&img);

    return 0;
}

运行结果

 

发布了9 篇原创文章 · 获赞 3 · 访问量 895

猜你喜欢

转载自blog.csdn.net/qq_23516957/article/details/103924760