微信公眾號:OpenCV學堂
關注獲取更多計算機視覺與深度學習知識
前言
基本原理



https://github.com/WeChatCV/opencv_3rdparty/tree/wechat_qrcodeQR碼解碼演示
基于OpenCV4.8的二維碼掃碼演示

cv::Mat?src?=?cv::imread("D:/opencvxuetang.png");
//?初始化
std::shared_ptr?detector(new?cv::QRCodeDetector());
std::vector?pts;
std::vector<std::vector>?contours;
//?檢測QR碼
detector->detect(src,?pts);
std::cout?<"boxes:?"<std::endl;
contours.push_back(pts);
//?解析QR碼
std::string?codetxt?=?detector->decode(src,?pts);
std::cout?<"decode?text:?"?<std::endl;
cv::drawContours(src,?contours,?-1,?cv::Scalar(0,?0,?255),?2,?8);
cv::imshow("QR?Code解碼",?src); 一維條碼解碼演示

實現代碼如下:
//?定義
cv::Mat?image?=?cv::imread("D:/barcode.png");
std::shared_ptr?barcode_detector(new?cv::barcode::BarcodeDetector());
//?檢測
vector?corners;
barcode_detector->detect(image,?corners);
std::cout?<"barcode?location:?"?<std::endl;
//?解碼
std::string?barcode_txt?=?barcode_detector->decode(image,?corners);
std::cout?<"decode?text:?"?<std::endl;
//?顯示
contours.clear();
contours.push_back(corners);
cv::drawContours(image,?contours,?-1,?cv::Scalar(0,?0,?255),?2,?8);
cv::imshow("barcode",?image); 
學習 OpenCV4.8?圖像與視頻分析、特征提取與DNN部分,請掃碼查看視頻教程



