- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 QR码的检测;;8.1 了解项目背景;;8.2 分析项目需求;8.2 分析项目需求;8.2.1 数据说明
每个定位块可以看作是由黑、白、黑且边长之比为7:5:3的3个不同大小的同心正方形叠加而成。
这样的结构是经过精心设计的:当使用线扫描类型的读取设备扫描QR码时,穿过定位块中心位置的水平扫描线上的黑色和白色像素段会呈现1:1:3:1:1的宽度比。
同时由于正方形是中心对称图形,从任意方向扫描图像,穿过定位块中心点的扫描线都会检测到这个独特的比率。即使图像中的QR码发生了旋转和轻微变形,以上的两个设计仍确保了通过在扫描线中检测黑白像素段比例的方法,能够迅速可靠地在含有QR码的图像中检测出QR码的位置。;8.2.2 项目目标
本项目以手机拍摄的包含QR码的图像为研究对象,主要利用边缘检测、扫描线算法及透视变换等算法来实现以下目标。
(1) 通过在边缘轮廓中检测三层嵌套结构和比例特征来定位图像中的QR码定位块。
(2) 根据定位块位置确定QR码的范围及朝向。
(3) 对切割出来的QR码通过透视变换得到标准化的QR码,便于进一步的信息提取。;8.2.3 QR码检测流程
QR码检测的流程如下图所示,所包含的主要步骤如下。
(1) 图像预处理,包括RGB转灰度、中值滤波去噪和自适应二值化。
(2) 在二值图像的轮廓中检测三层嵌套结构并使用线扫描算法进一步筛选定位块。
(3) 根据定位块信息计算QR码的四个角点及朝向,使用几何校正及缩放得到标准化的QR码图像。
(4) 调用函数进行QR码的内容解析。
;;8.3.1 彩色图像的灰度化
原始的QR码只包含黑白两色,图像中的其他颜色对QR码的识别没有价值。使用灰度化算法把彩色图像转化为灰度图像,即减小了图像的数据量,也便于后续的图像二值化操作。
使用OpenCV中的cvtColor函数实现彩色图像到灰度图像的转换。;8.3.2 图像去噪
本章用于检测QR码定位块的轮廓嵌套关系计算容易受到图像噪声的影响,需提前进行图像去噪。
使用手机拍摄的QR码照片易出现椒盐噪声,即黑背景下的白噪点和白背景下的黑噪点。
中值滤波基于图像局部邻域的统计排序过滤噪声,使用中心像素邻域内灰度值的中值来替换中心像素的值??
具体步骤如下。
(1) 对于每一个图像像素点,确定以该像素为中心的一个邻域窗口,形状通常为正方形,尺寸大小可根据图像细节和噪声情况来调整。
(2) 确定邻域窗口的形状和大小后,针对每一个像素,将以该像素为中心点的邻域窗口内所有像素点的灰度值进行排序,然后使用排序的中值替换中心点像素的灰度值。
中值滤波的去噪效果依赖于图像的局部特征和邻域窗口的大小,窗口过大过小都会影响去噪效果。对于使用手机随意拍摄的含有大小不确定的QR码的图像,很难确定固定的滤波器窗口尺寸。;8.3.2 图像去噪
自适应中值滤波算法,能够自适应地根据算法调整滤波器窗口尺寸,在保留图像细节的同时平滑噪声,具有更好的鲁棒性。
记 是像素 对应的邻域窗口, 是窗口 内的最小灰度值, 是窗口 内的最大灰度值, 是窗口 内所有灰度值的中值, 是像素 的灰度值; 是 所能允许的最大尺寸。
自适应中值滤波算法的流程如右图所示。;8.3.3 灰度图像的二值化
由于QR码本身由黑白两色构成,图像的对比度高使,适合使用阈值方法进行二值化。
考虑到手机拍摄的含QR码的图像可能存在光照不均匀的情况,尝试使用大津法和自适应阈值分割方法。
对比上图的结果,可以发现自适应阈值方法拥有更好的分割结果。
;8.3.3 灰度图像的二值化
对比示例图像在两种不同二值化算法下的结果,虽然自适应阈值分割方法(右图)会使图像中非QR码区域产生扰动,但是却非常好地处理了处理了QR码所在的区域。
本案例最终使用自适应阈值来处理图像,之后对结果图像进行第二次中值滤波。;;经过预处理得到的二值图像中,不仅包含QR码,也包含文字等其他的干扰成分,需要根据QR码定位块的结构特征设计算法对其进行定位。
定位块检测的流程
(1)使用OpenCV库函数提取二值图像中黑色区域的轮廓对象以及反映各轮廓间拓扑关系的层次树
(2)对轮廓层次树进行遍历,找出其中满足3层嵌套关系的轮廓
(3)为了排除图像中非定位块结构造成的干扰,使用扫描线算法找出满足扫描线上黑白线段长度比为1:1:3:1:1的三层嵌套结构
;8.4.1 提取二值图像的轮廓
使用OpenCV中的findContours函数可检测二值图像中的边缘,并返回保存在列表hierarchy中的边缘之间的层次树。
使用函findContours从二值数值图像中找出的轮廓,如图所示。
;8.4.2 嵌套关系检测
遍历列表hierarchy,递归有包含关系的轮廓,如果某个轮
您可能关注的文档
最近下载
- 2024年陕西省中考生物试题(含解析).pdf VIP
- 2023年天津化学会考试卷.pdf VIP
- 广西宝坛地区铜镍硫化物矿石982_省略_Re_Os同位素年龄及其地质意义_毛景文.pdf VIP
- 专业调研报告(工业机器人技术专业).pdf
- 管理学(北师大)中国大学MOOC慕课 章节测验 客观题答案.docx
- 小暑24节气ppt模板.pptx
- 安利股份:2023年度业绩预告.pdf VIP
- 常见疾病康复:挛缩的康复.pptx VIP
- 浅谈数学如何提高学生计算能力的方法研究-来源:文理导航(教育研究与实践)(第2020009期)-内蒙古自治区北方文化研究院.pdf VIP
- 某上市公司珠海旧改项目前期服务协议.docx VIP
文档评论(0)