二维码识别.doc
《二维码识别.doc》由会员分享,可在线阅读,更多相关《二维码识别.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、|二维码的识别一、目的与要求本课题主要研究二维条码的识别程序及译码方法,使用 C 语言来开发二维码的识别程序。查找并阅读相关资料,了解基本的内容,利用需求分析文档,对整个系统有个初步的架构。搜寻实验用的文件文档集和研究过程中用到的各种工具软件。根据已有的资料并借助面向对象的程序设计思想对系统各模块进行分析、建模、设计。使用 C 语言来开发二维码识别程序。二、设计的内容本文主要来完成二维码识别和译码程序,运用图像校正、二值化、边缘检测等各种图像处理方法实现条码的预处理,并进行二维码码的解码,结合图像处理技术,完成了基于图像处理的二维码快速识别的解码系统。三、总体方案设计本设计的主要任务是在研究二
2、维条码的码制标准的基础上实现对二维码的告诉采集与识别,详细分析二维码的基本特点、符号结构;在条码图像识别方面,研究了对采集的条码图像进行预处理的方法,即:对图像进行整形。运用图像校正、二值化、去噪、边缘检测、Hough 变换、图像旋转等多种图像处理方法实现条码图像的预处理、条码定位、条码分割和数据提取。对预处理后的条码图像进行译码。四、各个功能模块的主要实现程序(一) 二维码的识别流程灰度化 去噪 二值化 寻找探测图形确定旋转角度定位旋转获得数据首先,对采集的彩色图像进行灰度化,以提高后继的运行速度。其次,去除噪声。采用十字形中值滤波去除噪音对二码图像的干扰主要是盐粒噪声。|再次,利用灰度直方
3、图工具,使用迭代法选取适当的阈值,对二维码进行二值化处理,使其变为白底黑色条码。最后,确定二维码的位置探测图形,对条码进行定位,旋转至水平后,获得条码数据,以便下一步进行解码。(二)图像的灰度化灰度化的常用方法有两种:1.Gray(i,j) = 0.299 * R(i,j) + 0.587 * G(i,j) + 0.114 * B(i,j)2.Gray(i,j) = 30 * R(i,j) + 59 * G(i,j) + 11 * B(i,j)/100本设计进行灰度化的实现函数如下:internal virtual void imageToGrayScale(int image)for (in
4、t y = 0; y 16 int g = imagexy 8 int b = imagexy int m = (r * 30 + g * 59 + b * 11) / 100;imagexy = m;(三)图像的降噪处理降噪的方法很多,选用的是中值滤波法,因为中值滤波是一种非线性平滑滤波器。中值滤波在降低噪声的同时,又可以保持图像的细节,使用中值滤波时能较好保护图像的边缘。中值滤波的滤波窗口的形状和尺寸对滤波效果有一定的影响。常用的中值滤波窗口形状一般为正方形、十字形等。就一般经验而言,对于有缓慢变化的较长轮廓线物体的图像,适合使用正方形窗口;对于包含尖角物体的图像,适合使用十字形窗口。窗口
5、大小一般小于图像中最小有效物尺寸为宜。|中值滤波的函数实现如下:internal virtual bool applyMedianFilter(bool image, int threshold)bool filteredMatrix = new boolimage.Length;for (int i = 0; i threshold)filteredMatrixxy = POINT_DARK;return filteredMatrix;|(四)图像的二值化处理二值化就是将图像转换成只有黑或白两种颜色,二值的方法也有很多,一种较为常用的是阈值法,取一个合适的阈值,使图像中每一个像素点应该属于目
6、标还是背景区域,从而产生相应的二值图像。设原始图像为 f(x,y),按照一定的准则在该图像中找到特征阈值 T,将图像分割为两部分,分割后的图像为: Tyxfbyxg),( ),(10(2-1)其中,b 0为黑,b 1为白。在 QR 码的图像二值化中,一般取 b0=1,b 1=0,也就是:Tyxfyxg),( ),((2-2)根据确定阈值的取样范围来分,二值化的方法可以分为全局阈值法与局部阈值法。全局阈值法对整幅图像的所有像素点进行取样,通过相关算法计算出一个阈值,进行二值化。而局部阈值法(又称为自适应阈值法)是将整幅图像划分成若干区域(通常是均匀划分) ,对每块区域中的像素点进行阈值计算,每块
7、区域得出一个阈值,然后分块进行二值化9,10,11。使用局部阈值法时,每一块区域的二值化过程是独立进行的。本文使用的是中间值法,先对区域中所有像素点进行遍历,找出最大的灰度值Graymax 和最小的灰度值 Graymin,然后求出最大灰度值与最小灰度值的中间值 Graymid,将该灰度值作为区域的阈值,即 T = Graymid = (Graymax + Graymin) / 2。(五)图形的定位 QR 码有三个形状相同的位置探测图形,在没有旋转的情况下,这三个位置探测图形分别位于 QR 码符号的左上角、右上角和左下角。三个位置探测图形共同组成图像图形。QR 码的位置探测图形每个位置探测图形可
8、以看作是由 3 个重叠的同心的正方形组成,它们分别为 7*7 个深|色模块、5*5 个浅模块和 3*3 个深色模块。位置探测图形的模块宽度比为 1:1:3:1:1。位置探测图形这种 1:1:3:1:1 的宽度比例特征在图像的其他位置出现的可能性很小,故可以将此作为位置探测图形的扫描特征。基于此特征,当一条直线上(称为扫描线)被黑白相间地截为 1:1:3:1:1 时,可以认为该直线穿过了位置探测图形。另外,该扫描特征不受图像倾斜的影响。对比中的两个 QR 码符号可以发现,无论 QR码符号是否倾斜,都符合 1:1:3:1:1 的扫描特征。(六)常规扫描方法GB/T 18284-2000 中推荐的扫
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二维码 识别
限制150内