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;
}

运行结果

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值