opencv在4.5以后,可以连合微信开源二维码WeChatQrCode进行编译利用。较opencv原始的QRCode辨认正确率明显提升,对一些环境较差,拍摄不清晰的二维码均可自动顺应。
1、编译
opencv下载链接
https://github.com/opencv
具体编译方法,详见博客Opencv4.5.1 微信二维码辨认功能 QRCode 编译与利用 C++_二维码opencv c++-CSDN博客
由于下载特别慢,编译比较复杂,可以直接下载编译好的直接利用,包含下述3中的第三方依赖,链接如下:
https://download.csdn.net/download/zhangyan513/90125949?spm=1001.2014.3001.5501
2、利用示例
int TazkEzecute:: RecognizeuRCode(cv:: Mat ina, int thresholdialue, std:: stringe result)
{
// 读取图像
Mat image =ima. clone() ;
Vector<cv::Mat> transforn;
vector <string> qrResult;
cv.: Ptr<wechat_arcode: : WeChatQRCode> detector;
detector = cv.: makePtr<wechat_qrcode: : WeChatQRCode> (
"E:/3rdPartyLib/opencv_wechatQR/include/opencv2/openev_3rdparty-wechat_qrcode/detect.prototxt",
"E:/3rdPartyLib/opencv_wechatQR/include/opencv2/opencv_3rdparty-wechat_qrcode/detect. caffemodel",
"E: /3rdPartyLib/opencv_wechatQR/include/opencv2/opencv_3rdparty-wechat_qrcode/sr.prototxt",
"E:/3rdPartyLib/opencv_wechatQR/include/opencv2/opencv_3rdparty-wechat_qrcode/sr. caffemodel");
qrResult = detector-›detectAndDecode (image, transform) ;
if (qrResult.size () › 0)
{
result =qrResult [0] ;
}
}
3、第三方依赖
微信二维码利用CNN神经网络实现,因此可见,必要依赖第三方模子文件,函数阐明:
cv::wechat_qrcode::WeChatQRCode::WeChatQRCode (
const std::string &detector_prototxt_path = "",
const std::string &detector_caffe_model_path = "",
const std::string &super_resolution_prototxt_path = "",
const std::string &super_resolution_caffe_model_path = "" )
详细可见链接:
https://docs.opencv.org/5.x/d5/d04/classcv_1_1wechat__qrcode_1_1WeChatQRCode.html
第三方模子文件下载链接:
https://download.csdn.net/download/zhangyan513/90125949?spm=1001.2014.3001.5501
对应填入即可利用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |