.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)