主权项 |
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>π</mi> </msqrt> <mi>σ</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>σ</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>σ</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>Σ</mi> <mrow> <mi>k</mi> <mo>=</mo> <mo>-</mo> <mi>P</mi> </mrow> <mi>P</mi> </munderover> <munderover> <mi>Σ</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>μ</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>Σ</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)防伪保密技术提供数字签名功能,以供二维条码制作方实现条码的防伪和保密。 |