opencv4.0.0 二维码检测
偶然间发现opencv4.0.0正式版已经发布了,听说有二维码检测功能,就试了试。
目前还没有发现自带的文档中关于二维码检测的示例,所以自己探索了下,把代码记录下。
话不多说,直接上代码。
#include <iostream>
#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
//读取本地的一张图片便显示出来
cv::Mat img = imread("1.jpg");
cv::QRCodeDetector QRdetecter;
std::vector<cv::Point> list;
cv::Mat res;
QRdetecter.detectAndDecode(img, list, res);
for (int i = 0; i < list.size(); i++)
{
if(i==3)
line(img, list[i], list[0], Scalar(0, 255, 0), 2);
else
line(img, list[i], list[i + 1], Scalar(0, 255, 0), 2);
}
imshow("测试窗口", img);
waitKey(0);
return 0;
}
其中,源图为
list中存放着检测到的二维码矩形框的四个顶点,画上去之后,其效果如图所示:
res中存放着二维码图片