在二维码扫描功能开发中,使用相机扫描图片时,往往图片中的信息比较多样,可能会造成二维码检测失败的问题。一种提高检测精度的方式就是把二维码在图片中单独抠出来,去除其它冗余信息,然后再去识别这张提取出来的二维码。本篇博客记录采用的一种实现二维码位置检测和精准提取方式。
效果展示:
大致思路:根据二维码的特征 --> 三个角点都有一个 “回” 字形图案,可以借助这三个 ‘‘回’’ 字形图案定位到二维码的具体位置,然后使用OpenCV中的 “抠图” 功能,根据坐标值把二维图从原图中抠出来。
对图像进行检测之前需要先做一些预处理,可以简单理解为让后续的图像检测精度更高的一种前置优化方式。这里的预处理方式可以根据自己情况进行,常见的预处理方式包括滤波、腐蚀、膨胀、颜色转换、二值化等,不管经过怎样的处理,最后都要进行二值化处理,方便后面进行图像整体轮廓的查询,本博客中所进行的预处理代码如下:
//转成灰度图像
Mat grayImage;
cvtColor