zxing 2次元コードのデモを解決

 

.CPPソースファイル

// の#include "funset.hpp" 
の#include < 文字列 > 
の#include <fstreamの>
 // する#include <はWindows.h> 

書式#include <zxing / LuminanceSource.h> 
の#include <zxing /共通/ Counted.h> 
の#include <zxing / Reader.h> 
の#include <zxing /アズテック/ AztecReader.h> 
の#include <zxing /共通/ GlobalHistogramBinarizer.h> 
の#include <zxing / DecodeHints.h> 
の#include <zxing / DataMatrixの/ DataMatrixReader.h> 
#含める <zxing / MultiFormatReader.h> 
の#include <zxing / PDF417 / PDF417Reader.h> 
書式#include <zxing / QRコード/ QRCodeReader.h> 

の#include<opencv2 / opencv.hpp> 

の#include " zxing / MatSource.h " 
使って 名前空間はstdを、
使用して 名前空間の品種; 

文字列 test_QRCode_decode(文字列イメージ名)
{ 

    文字列の内容= "" ; 
    CVは::マットmatSrcは CV ::関数imread =(イメージ名を、1 )。
    もし(!matSrc.data){ 
        関数fprintf(stderrに、" 画像読み取りエラー:%S " 、image_name.c_str())。
        戻り値の内容; 
    }
 
    CV ::マットmatGray。
    CV :: cvtColor(matSrc、matGray、COLOR_BGR2GRAY)。

    zxing ::文献 <zxing :: LuminanceSource>ソース= MatSource ::作成(matGray)。
    INT幅=ソース- > のgetWidth();
    INTの高さ=ソース- > のgetHeight(); 
    関数fprintf(stderrに、" 画像幅:%のD、高さ:%Dを\ n " 、幅、高さ)。

    zxing ::参考 <zxing ::リーダー> リーダーを。
    reader.reset(新しいzxing :: QRコード:: QRCodeReader)。

    zxing ::参考 <zxing ::値化>値化(新しいzxing :: GlobalHistogramBinarizer(ソース)); 
    zxing ::参考 <zxing :: BinaryBitmap>ビットマップ(新しいzxing :: BinaryBitmap(二値化)); 
    zxing ::文献を <zxing ::結果>結果(reader-> デコード(ビットマップ、zxing :: DecodeHints(zxing :: DecodeHints :: QR_CODE_HINT))); 


    // 获取解析结果 
    含量= result->のgetText() - > のgetText(); 

    戻り値の内容; 
} 

int型のmain(){ 

    文字列パス= " /ホーム/ leoxae /图片/qrcode1.png " 文字列結果= test_QRCode_decode(パス)。
    裁判所未満 << " 結果==> " <<結果<< てendl; 
}

 

cmakelist

cmake_minimum_required(バージョン3.14 
プロジェクト(ZxingQrcode)

セット(CMAKE_CXX_STANDARD 14 

add_executable(ZxingQrcodeのmain.cppに)



#找到OpenCVの的包
セット(TARGET_LIBS " は/ usr / local /含む/ opencv4 / opencv2 / " 
find_package(OpenCVのREQUIRED)
include_directories( $ {OpenCV_INCLUDE_DIRSを})

#zbar 
セット(zbar_include_dir " は/ usr / local /含む" セット(zbar_link_dir " / usr / local / libディレクトリ" 

(include_directories $ {zbar_include_dir})
link_directories($ {zbar_link_dir})
link_libraries(zbar)

#zxing 
セット(zxing_include_dir " は/ usr / local /には、" セット(zxing_link_dir " / usr / local / libディレクトリ" 

include_directories($ {zxing_include_dir})
link_directories($ {zxing_link_dir})
link_libraries(zxing)


#jsoncpp 
セット(jsoncpp_include_dir " /home/leoxae/apps/jsoncpp/1.8.4/include " セット(jsoncpp_link_dir " /home/leoxae/apps/jsoncpp/1.8.4/lib " 

include_directories($ {jsoncpp_include_dir})
link_directories($ {jsoncpp_link_dir})
link_libraries(jsoncpp)
动态链接
#target_link_libraries(pedestrian_detectionの$ {OpenCV_LIBS})
target_link_libraries(ZxingQrcode $ {OpenCV_LIBS})
target_link_libraries(ZxingQrcode jsoncpp)
target_link_libraries(ZxingQrcode zbar)
target_link_libraries(ZxingQrcodeのzxing)

 

おすすめ

転載: www.cnblogs.com/lx17746071609/p/11428901.html