概述
opencv前段时间已经发布了4.0.0版本,就着这个机会学习一下opencv中的实现。需说明的是,opencv二维码检测模块是基于Quirc(git://github.com/dlbeer/quirc.git)这个开源库集成开发的。
qr码检测到类为QRCodeDetector,其主要成员函数有
- 构造函数
- 析构函数
- void setEpsX(double epsX)、void setEpsY(double epsY):这两个设置X、Y两个方向上检测出定位码的系数,默认epsX = 0.2,epsY = 0.1;
- bool detect(cv::InputArray img, cv::OutputArray points) const:定位qr码;
- string decode(cv::InputArray img, cv::InputArray points, cv::OutputArray straight_qrcode = cv::noArray()):解码;
- std::string detectAndDecode(cv::InputArray img, cv::OutputArray points=cv::noArray(), cv::OutputArray straight_qrcode = cv::noArray()):定位和解码。
定位
我们把重点放到定位detect()上,这基本上也是qr码检测成败的关键。
bool QRCodeDetector::detect(InputArray in, OutputArray points) const
{