发明名称 基于通用办公设备的二维条码自动识读方法
摘要 本发明公开了一种基于通用办公设备的二维条码自动识读方法,对于目前的通用图像摄入设备所读取的二维条码,可以自动识别。本发明不局限于专用二维条码识读设备,也可对输入条码的限制条件放宽,提出了针对散焦模糊图像的最佳模糊参数的估计方法,应用维纳滤波实现了对它的清晰化。对存在畸变的条码图像,进行分块校正。针对自然光照的条码图像,设计了自适应阈值分割算法进行条码图像的阈值分割。在进行条码自动识读时,使用了投影法实现码字的分割,使用了条空序列比进行条码的精确定位和码字识读。同时还提供了按照国标进行二维条码的制作,对于生成二维条码,可以对照片等大信息量数据压缩在二维条码中,并可通过数字签名进行防伪和加密。
申请公布号 CN1184582C 申请公布日期 2005.01.12
申请号 CN03114568.X 申请日期 2003.03.25
申请人 西安理工大学 发明人 朱虹;周健;李晗
分类号 G06K7/10;G06K9/00 主分类号 G06K7/10
代理机构 西安通大专利代理有限责任公司 代理人 李郑建
主权项 1.一种基于通用办公设备的二维条码识读方法,包括现有识读器所采用国标GB/T 17172-1997中规定的二维条码的解码与编码方法,其特征在于,至少还包括以下步骤:1)对光照不均的图像画面进行高斯平滑,将平滑后的结果作为提取条码的自适应阈值,并进行阈值分割,可对具有光照不均的图像画面进行自动补偿,消除光照不均对条码识读的影响;第一步:用Gauss函数对原图像进行平滑处理设原图像为f(x,y),平滑处理后的图像为fs(x,y),则 fs(x,y)=g(x,y)*f(x,y) (1)其中:<math> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <msqrt> <mn>2</mn> <mi>&pi;</mi> </msqrt> <mi>&sigma;</mi> </mrow> </mfrac> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mfrac> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>y</mi> <mn>2</mn> </msup> </mrow> <msup> <mi>&sigma;</mi> <mn>2</mn> </msup> </mfrac> </mrow> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow> </math> 参数σ称为平滑参数,取值:5~10,用来确定平滑的强度;第二步:图像f(x,y)的自适应阈值选择为A·fs(x,y),A为阈值调整系数,取值为0.8~1.6;2)畸变条码图像的校正根据条码的结构,按照分块校正方法进行正确校正,对校正后的条码图像则可按照无畸变的条码识别方法进行识读;畸变校正的具体算法如下:第一步:根据层叠式PDF417二维条码的每列码字起始于黑条,终止于白条的特点,用垂直方向的锐化算子,对条码进行每列码字的列边界进行提取,锐化算子结构为:<math> <mrow> <mi>S</mi> <mo>=</mo> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> 第二步:对得到的锐化条码图像,以阈值=128进行二值化处理;第三步:因为在进行上面两步操作时,码字内部的某些部分也被提取出来,所以需要对这部分误提取信息进行处理。对得到的所有连通域计算其长度,将长度小于0.8*平均长度的连通域全部消除,则可以得到列之间边界;第四步:在每个列边界上等间隔地取出六个点,称这些点为控制点。这样,每相邻两条边界上的相邻两对控制点就构成了一个四边形。对每个四边形按照其校正目标为矩形用双线性插值法进行校正;3)散焦模糊的恢复散焦模糊采用如下方法:采用维纳滤波器对原图进行滤波处理,采用Wiener滤波器的形式为:<math> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msup> <mi>H</mi> <mo>*</mo> </msup> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mi>G</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mrow> <mo>|</mo> <mi>H</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>|</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>S</mi> <mi>nn</mi> </msub> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>/</mo> <msub> <mi>S</mi> <mi>ff</mi> </msub> <mrow> <mo>(</mo> <mi>u</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </math> 此处F(u,v),G(u,v),H(u,v)分别是原清晰图像f(x,y),退化图像g(x,y),降晰函数h(x,y)的二维Fourier变换,H*(u,v)为降晰函数H(u,v)的复数共轭;Snn(u,v)和Sff(u,v)分别是噪声和未失真图像的功率谱;第一步:计算退化图像g(x,y)的频谱G(u,v),以及退化系统的降晰函数h(x,y)的频谱H(u,v);第二步:计算噪声和原图像的功率谱Snn(u,v)和Sff(u,v);直接从退化图像上计算每个像素的局部方差,选取局部方差中的最大值作为图像的方差,同时可以在图像上找一块平坦区域,用其局部方差作为噪声方差;利用式(2)计算图像的局部方差,图像边界方差不考虑在内;用局部方差的最大值和最小值的比值作为图像信噪比的估计;<math> <mrow> <msub> <msup> <mi>&sigma;</mi> <mn>2</mn> </msup> <mi>gL</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mrow> <mo>(</mo> <mn>2</mn> <mi>P</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mn>2</mn> <mi>Q</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mo>-</mo> <mi>P</mi> </mrow> <mi>P</mi> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>l</mi> <mo>=</mo> <mo>-</mo> <mi>Q</mi> </mrow> <mi>Q</mi> </munderover> <msup> <mrow> <mo>[</mo> <mi>g</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>+</mo> <mi>k</mi> <mo>,</mo> <mi>j</mi> <mo>+</mo> <mi>l</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&mu;</mi> <mi>g</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>]</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow> </math> 式中μg是局部均值,按下式计算<math> <mrow> <mfrac> <mn>1</mn> <mrow> <mrow> <mo>(</mo> <mn>2</mn> <mi>P</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mn>2</mn> <mi>Q</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mo>-</mo> <mi>P</mi> </mrow> <mi>P</mi> </munderover> <munderover> <mi>&Rgr;</mi> <mrow> <mi>l</mi> <mo>=</mo> <mo>-</mo> <mi>Q</mi> </mrow> <mi>Q</mi> </munderover> <mi>g</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>+</mo> <mi>k</mi> <mo>,</mo> <mi>j</mi> <mo>+</mo> <mi>l</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow> </math> 式中:P,Q为窗的尺寸,此处P=Q=2(即5×5的操作窗);第三步:由第二步估计出原图像和噪声功率谱后,便可根据Wiener滤波公式(1)求出原图像的频谱F(u,v);第四步:对F(u,v)进行二维离散Fourier反变换,即可恢复出原清晰图像f(x,y);4)图像压缩根据需要承载图像的大小,以及目标条码的大小,采用混合压缩编码技术实现对图像的压缩;5)二维条码的编码、解码按国标GB/T 17172-1997中所规定的条码编码、解码标准进行,其中编码采用4.3节中规定的包含929个码字的码字集进行编码,解码则按照编码的逆过程来进行;6)纠错编码按国标GB/T 17172-1997中4.6节中规定的条码纠错编码进行;7)防伪保密技术提供数字签名功能,以供二维条码制作方实现条码的防伪和保密。
地址 710048陕西省西安市金花南路5号