美文网首页计算机视觉
C++ Zxing opencv识别Data Matrix 二维

C++ Zxing opencv识别Data Matrix 二维

作者: 刘千予 | 来源:发表于2018-07-01 10:03 被阅读0次

    //zxing

    #include "zxing/LuminanceSource.h"

    #include "zxing/Reader.h" 

    #include "zxing/common/GlobalHistogramBinarizer.h"  

    #include "zxing/DecodeHints.h"  

    #include "zxing/datamatrix/DataMatrixReader.h"  

    #include "zxing/MatSource.h"

    #include "zxing/result.h"

    #include "zxing/BinaryBitmap.h"

    #include "zxing/Binarizer.h"

    #include "zxing/Exception.h"

    //opencv

    #include "opencv2/opencv.hpp"

    #include "opencv2/highgui/highgui.hpp"

    #include "opencv2/imgproc/imgproc.hpp" 

    #include "opencv2/core/core.hpp"

    /******************************************************************************************

    Function: DataMatrixDecoder

    Description: data matrix二维码解析

    Input: image_path:二维码图片路径

    Return: 解析结果*******************************************************************************************/

    std::string DataMatrixDecoder(std::string image_path) 

    {

    //初始化解析结果

    std::string content = "";

    //读取图片

    cv::Mat matSrc = cv::imread(image_path, 1);

    //读取失败则返回

    if (!matSrc.data)

     {

    fprintf(stderr, "read image error: %s", image_path.c_str());

    return content;

    try

    {

    //转化为灰度图

    cv::Mat matGray;cv::cvtColor(matSrc, matGray, CV_BGR2GRAY); 

    zxing::Refsource = MatSource::create(matGray);

    /*int width = source->getWidth();

    int height = source->getHeight();

    */

    /*fprintf(stderr, "image width: %d, height: %d\n", width, height);

    */

    zxing::Refreader;reader.reset(new zxing::datamatrix::DataMatrixReader);

    zxing::Refbinarizer(new zxing::GlobalHistogramBinarizer(source));

    zxing::Refbitmap(new zxing::BinaryBitmap(binarizer));

    //开始解码

    zxing::Ref result(reader->decode(bitmap, zxing::DecodeHints(zxing::DecodeHints::DATA_MATRIX_HINT)));

    //获取解析结果

    content = result->getText()->getText();

    }

    catch (zxing::Exception e)

    {

    }

    return content;

    }

    相关文章

      网友评论

        本文标题:C++ Zxing opencv识别Data Matrix 二维

        本文链接:https://www.haomeiwen.com/subject/tvdcuftx.html