发明名称 运单信息录入和黑白色块编码解码系统
摘要 本发明为运单信息录入和黑白色块编码解码系统,解决巳有系统图像识别码的种类和排列单一,不便运单图片排版,解码时对编码中图像识别码的准确定位相对困难,进而使得对运单图片进行解码和版面识别困难的问题。包括设计版面单元,运单图片采集单元,运单图片黑白色块解码单元以及运单信息生成单元:黑白色块编码是若干黑、白色块,横向或纵向按照直线顺序和相同间距进行排列组合,每种排列组合为一种编码,通过设定编码表,将编码和运单类型匹配,确定各种编码对应的运单类型,便于后续在解码后对应确定相应的运单类型。
申请公布号 CN103473518A 申请公布日期 2013.12.25
申请号 CN201310364550.7 申请日期 2013.08.20
申请人 成都三泰电子实业股份有限公司 发明人 补建;罗安;冯少川;杨吟峰;李毅;师改梅
分类号 G06K7/00(2006.01)I;G06K9/60(2006.01)I;G06T9/00(2006.01)I 主分类号 G06K7/00(2006.01)I
代理机构 成都立信专利事务所有限公司 51100 代理人 冯忠亮
主权项 1.运单信息录入和黑白色块编码解码系统,其特征在于包括设计版面单元,运单图片采集单元,运单图片色块解码单元以及运单信息生成单元:一、设计版面单元通过黑白色块编码,将版面和黑白色块编码关联,设计票据版面后批量印刷成运单图片,运单图片上有黑白色块编码和其他信息;黑白色块编码是若干黑、白色块,横向或纵向按照直线顺序和相同间距进行排列组合,每种排列组合为一种编码,通过设定编码表,将编码和运单类型匹配,确定各种编码对应的运单类型,便于后续在解码后对应确定相应的运单类型;在黑白色块编码后,根据运单版面特征,在运单的特定位置加入色块信息,批量印刷;二、运单图片采集单元运单图片采集单元的主要功能是通过通用的扫描仪,将各运单图片进行扫描得到的各运单图像储存;三、运单图片黑白色块编码解码单元运单图片黑白色块编码解码单元的主要功能是对每种运单图像进行色块解码,确定每个运单图片的运单类型;黑白色块编码解码包括如下步骤:1、运单图像获取读取真实运单图像,得到运单彩色图像。2、运单图像二值化首先将运单彩色图像转换为灰度图像,运单图像二值化就是将运单灰度图像转化为黑白二值的运单二值图像,对于读入的运单灰度图像,I[i,j]表示水平位置为i,垂直位置为j像素点处运单图像的灰度值,[i,j]遍历运单灰度图像的所有像素点,i是变量,表示窗口图像中像素点的水平位置,取值为i=1,2,...,W<sub>0</sub>,j是变量,表示窗口图像中像素点的垂直位置,取值为j=1,2,...,H<sub>0</sub>,W<sub>0</sub>为运单灰度图像宽度,H<sub>0</sub>为运单灰度图像高度;对于运单灰度图像的各个像素点,采用阈值分割法,将运单灰度图像中大于分割阈值的像素点置为0,小于分割阈值的像素点置为255,得到运单二值图像,D<sub>1</sub>[i,j]表示运单二值图像水平位置为i,垂直位置为j像素点处的值,具体计算方法为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>255</mn><mo>,</mo><mi>I</mi><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>&lt;</mo><msub><mi>th</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>I</mi><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>&GreaterEqual;</mo><msub><mi>th</mi><mn>1</mn></msub></mtd></mtr></mtable></mfenced><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>W</mi><mn>0</mn></msub><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mn>0</mn></msub></mrow></math>]]></maths>其中,th<sub>1</sub>为分割阈值,th<sub>1</sub>的选取要使得运单灰度图像的黑色字体和表格信息凸现出来,而去除其他信息的干扰;3、运单二值图像自动纠偏在运单扫描过程中,由于送纸传送带或滚筒的机械原因导致扫描的运单图像经常会出现倾斜情况,自动纠偏包括两个步骤:计算倾斜角度和倾斜校正;(1)计算倾斜角度计算运单二值图像的倾斜角度是在步骤2得到的运单二值图像的基础上进行的,对运单二值图像进行分析,选定运单二值图像左边<img file="FDA0000369222200000025.GIF" wi="50" he="92" />处做分析,将该位置的二值图像提取出来称为边框二值图像,分别对边框二值图像做-8°到8°的顺时针旋转,旋转间隔为1°,每旋转一次,对该边框二值图像进行水平投影,计算极大投影值,共计算得到17个极大投影值,求这17个极大投影值中的最大值,得到最大值对应的旋转角度,该角度便为运单二值图像逆时针方向的倾斜角度,具体包括以下步骤:a.将运单二值图像中特定区域的图像提取出来称为子区域二值图像R[i,j]表示子区域二值图像水平水平位置为i,垂直位置为j像素点处的值,W<sub>1</sub>表示子区域二值图像的宽度,H<sub>1</sub>表示子区域二值图像的高度,W为运单二值图像的宽度,H为运单二值图像的高度,运单子区域二值图像的提取方法为:R[i,j]=D<sub>1</sub>[i,j],i=1,2,..,W<sub>1</sub>,j=1,2,..,H<sub>1</sub>其中,<maths num="0002"><![CDATA[<math><mrow><msub><mi>W</mi><mn>1</mn></msub><mo>=</mo><mfrac><mn>1</mn><mn>8</mn></mfrac><mi>W</mi><mo>,</mo><msub><mi>H</mi><mn>1</mn></msub><mo>=</mo><mi>H</mi><mo>;</mo></mrow></math>]]></maths>b.对子区域二值图像做旋转调整将子区域二值图像R[i,j]做-8°到8°,间隔为1°的顺时针旋转,用W<sub>2k</sub>表示第k次旋转后子区域二值图像所占图像的宽度,用H<sub>2k</sub>表示第k次旋转后子区域二值图像所占图像的高度,计算方法为:<img file="FDA0000369222200000023.GIF" wi="626" he="82" /><img file="FDA0000369222200000024.GIF" wi="626" he="83" />其中,α=|k-9|°表示旋转角度,<img file="FDA0000369222200000034.GIF" wi="72" he="78" />为向下取整运算符,<img file="FDA0000369222200000035.GIF" wi="490" he="81" />表示不大于W<sub>1</sub>×cosα+H<sub>1</sub>×sinα的最大整数;用R<sub>k</sub>[i,j]表示第k次旋转后,子区域二值图像水平第i个像素点,垂直第j个像素点的值,先做初始化,R<sub>k</sub>[i,j]=0,i=1,2,...,W<sub>2k</sub>,j=1,2,...,H<sub>2k</sub>,取k=1时,子区域二值图像像素点R[i,j]顺时针旋转-8°,也即逆时针旋转8°,此时α=8°,得到旋转后的子区域二值图像R<sub>1</sub>[i,j],原子区域二值图像位置[i,j]对应的像素值R[i,j]在逆时针旋转α后子区域二值图像位置[i<sub>1</sub>,j<sub>1</sub>]对应的像素值R<sub>1</sub>[i,j]的计算公式为:<maths num="0003"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>i</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>j</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><msub><mi>W</mi><mn>1</mn></msub><mo>&times;</mo><mi>sin</mi><mi>&alpha;</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>i</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>j</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,[i<sub>1</sub>,j<sub>1</sub>]为经过运算后向下取整操作得到的;k依次加1,取k=2,3,...,8时,依次将子区域二值图像像素点R[i,j]逆时针旋转-7°到-1°,此时,α=|k-9|°,可分别得到R<sub>2</sub>[i,j],R<sub>3</sub>[i,j],...,R<sub>8</sub>[i,j],k=9时,旋转角度为0,此时,R<sub>9</sub>[i,j]=R[i,j],k=10,11,...,17时,依次将子区域二值图像像素点R[i,j]顺时针旋转1°到7°,此时,α=|k-9|°,原子区域二值图像各像素点的位置[i,j]对应的像素值R[i,j]在顺时针旋转α后子区域二值图像各像素点的位置[i<sub>1</sub>,j<sub>1</sub>]对应的像素值R<sub>k</sub>[i,j]中的位置的计算公式为:<maths num="0004"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>i</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>j</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><msub><mi>H</mi><mn>1</mn></msub><mo>&times;</mo><mi>cos</mi><mi>&alpha;</mi></mtd></mtr><mtr><mtd><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>i</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>j</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,[i<sub>1</sub>,j<sub>1</sub>]为经过运算后向下取整操作得到的,可分别得到R<sub>10</sub>[i,j],R<sub>11</sub>[i,j],...,R<sub>17</sub>[i,j],共得到17个子区域二值图像R<sub>k</sub>[i,j];c.对旋转后的每个子区域二值图像按行进行垂直投影,计算每个旋转后的子区域二值图像的极大投影值m[k]:<maths num="0005"><![CDATA[<math><mrow><mi>m</mi><mo>[</mo><mi>k</mi><mo>]</mo><mo>=</mo><munder><mrow><mi>max</mi><mrow><mo>(</mo><msub><mi>h</mi><mi>k</mi></msub><mo>[</mo><mi>j</mi><mo>]</mo><mo>)</mo></mrow></mrow><mrow><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mrow><mn>2</mn><mi>k</mi></mrow></msub></mrow></munder><mo>,</mo><mi>k</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>17</mn></mrow></math>]]></maths>其中,h<sub>k</sub>[j]表示旋转后的每个子区域二值图像的垂直投影值,<img file="FDA0000369222200000041.GIF" wi="387" he="158" />j=1,2,..,H<sub>2k</sub>;d.计算倾斜角度:对得到的17个极大投影值m[k]进行判断,找出其中的最大值<img file="FDA0000369222200000042.GIF" wi="224" he="102" />作为最大投影值,此时对应的角度值为<img file="FDA0000369222200000043.GIF" wi="415" he="102" />如果(K-9)&lt;0,表明运单图像顺时针方向倾斜了|K-9|°,即倾斜角度为β=|K-9|°,如果(K-9)=0,表示运单图像没有倾斜,β=0,如果(K-9)&gt;0,表明运单图像逆时针方向倾斜了|<sup>K</sup>-<sup>9</sup>|°,倾斜角度为β=-|K-9|°;(2)倾斜校正根据上述得到的倾斜角度,对运单二值图像进行倾斜补偿,完成倾斜校正,用W<sub>3</sub>表示倾斜校正后运单二值图像的宽度,用H<sub>3</sub>表示倾斜校正后运单二值图像的高度,计算方法为:<img file="FDA0000369222200000044.GIF" wi="626" he="90" /><img file="FDA0000369222200000047.GIF" wi="631" he="90" />当倾斜角度β&gt;0时,对运单二值图像做逆时针β校正:<maths num="0006"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>i</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>j</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mi>&beta;</mi></mtd><mtd><mi>sin</mi><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>&beta;</mi></mtd><mtd><mi>cos</mi><mi>&beta;</mi></mtd><mtd><msub><mi>W</mi><mn>1</mn></msub><mo>&times;</mo><mi>sin</mi><mi>&beta;</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>i</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>j</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,[i<sub>1</sub>,j<sub>1</sub>]为经过运算后向下取整操作得到的;当倾斜角度β&lt;0时,对运单二值图像做顺时针|β|校正:<maths num="0007"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>i</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>j</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mo>|</mo><mi>&beta;</mi><mo>|</mo></mtd><mtd><mo>-</mo><mi>sin</mi><mo>|</mo><mi>&beta;</mi><mo>|</mo></mtd><mtd><msub><mi>H</mi><mn>1</mn></msub><mo>&times;</mo><mi>cos</mi><mo>|</mo><mi>&beta;</mi><mo>|</mo></mtd></mtr><mtr><mtd><mi>sin</mi><mo>|</mo><mi>&beta;</mi><mo>|</mo></mtd><mtd><mi>cos</mi><mo>|</mo><mi>&beta;</mi><mo>|</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>i</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>j</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,[i<sub>1</sub>,j<sub>1</sub>]为经过运算后向下取整操作得到的;当倾斜角度β=0时,对运单二值图像不做校正;4.运单二值图像去噪当扫描过程中由于纸张质量或者扫描镜头的灰尘原因,造成扫描出来的影像存在噪声点,大大影响黑白色块编码定位和黑白色块编码解码的质量,因此针对步骤3自动纠偏后的运单二值图像需要进行噪声点去除;5.黑白色块编码定位在步骤4处理后,在运单二值图像上进行黑白色块编码定位,在倾斜校正后的运单二值图像中,首先确定各需要定位的黑白色块编码顶点的搜索范围,然后与相应的定位模板进行加权计算,完成对各色块顶点的精确定位,进而确定各色块的位置;所谓定位模板是指用于定位各顶点,与各顶点进行卷积运算的矩阵,m表示定位模板的列值,n表示定位模板的行值,m=1,2,...,51,n=1,2,...,51,用T<sub>1</sub>[m,n]表示左上角定位模板第n行第m列的值,用公式表示如下:<img file="FDA0000369222200000051.GIF" wi="1533" he="226" />用T<sub>2</sub>[m,n]表示右上角定位模板第n行第m列的值,用公式表示如下:<img file="FDA0000369222200000052.GIF" wi="1393" he="214" />用T<sub>3</sub>[m,n]表示左下角定位模板第n行第m列的值,用公式表示如下:<img file="FDA0000369222200000053.GIF" wi="1389" he="216" />运单二值图像中编码中各色块可以是横向排列或纵向排列;(1)纵向排列的黑白色块编码定位在本发明中,编码是由很多色块组成的,每个色块为形状和大小相同的方块,对于纵向排列的黑白色块编码定位,步骤如下:1)黑白色块编码第一色块左上角精确定位由于黑白色块编码总是位于运单图像的某一区域内,运单图像中黑白色块编码左上角的大概位置为[x<sub>00</sub>,y<sub>00</sub>],这个位置同时也是黑白色块编码第一色块的左上角位置,对于左上角给予一定的宽裕,水平偏移量为a,垂直偏移量为b,则运单二值图像黑白色块编码第一色块左上角搜索范围依次为:左上角[x<sub>00</sub>-a,y<sub>00</sub>-b],右上角[x<sub>00</sub>+a,y<sub>00</sub>-b],左下角[x<sub>00</sub>-a,y<sub>00</sub>+b],右下角[x<sub>00</sub>+a,y<sub>00</sub>+b];在搜索范围内,从左上角开始,按自左向右,自上向下的顺序依次平移定位模板,每移动一次定位模板窗口,使定位模板的中心与搜索范围内的相应点重合,计算定位模板与其覆盖下图像的卷积值;如上所述,定位模板的中心是指定位模板正中间的点,对于左上角定位模板来说,其中心为用T<sub>1</sub>[11,11]表示,右上角定位模板的中心为T<sub>2</sub>[11,11],左下角定位模板的中心为T<sub>3</sub>[11,11];运单二值图像搜索范围内各像素点与左上角定位模板的卷积值t<sub>1</sub>[i,j]的计算方法如下:<maths num="0008"><![CDATA[<math><mrow><msub><mi>t</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>1</mn></msub><mo>[</mo><mn>11</mn><mo>,</mo><mi>n</mi><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>j</mi><mo>-</mo><mn>11</mn><mo>]</mo><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>1</mn></msub><mo>[</mo><mi>m</mi><mo>,</mo><mn>11</mn><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>m</mi><mo>+</mo><mi>i</mi><mo>-</mo><mn>11</mn><mo>,</mo><mi>j</mi><mo>]</mo><mo>-</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></math>]]></maths>其中,i=x<sub>00</sub>-a,x<sub>00</sub>-a+1,..,x<sub>00</sub>+a,j=y<sub>00</sub>-b,y<sub>00</sub>-b+1,..,y<sub>00</sub>+b;在计算得到的运单二值图像搜索范围内各像素点的卷积值t[i,j]中,其最大值对应的位置便为运单二值图像黑白色块编码第一色块左上角的位置,这个位置同时也是黑白色块编码的左上角位置,用[x<sub>01</sub>,y<sub>01</sub>]表示;2)黑白色块编码第一色块右上角精确定位以黑白色块编码第一色块左上角为基础,确定黑白色块编码第一色块右上角的搜索范围依次为:左上角[x<sub>01</sub>,y<sub>01</sub>-b],右上角[x<sub>01</sub>+2*a,y<sub>01</sub>-b],左下角[x<sub>01</sub>,y<sub>01</sub>+b],右下角[x<sub>01</sub>+2*a,y<sub>01</sub>+b];按照步骤1)相同的搜索方式,计算定位模板与其覆盖下图像的卷积值,运单二值图像搜索范围内各像素点与右上角定位模板的卷积值t<sub>2</sub>[i,j]的计算方法如下<maths num="0009"><![CDATA[<math><mrow><msub><mi>t</mi><mn>2</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>2</mn></msub><mo>[</mo><mn>11</mn><mo>,</mo><mi>n</mi><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>j</mi><mo>-</mo><mn>11</mn><mo>]</mo><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>2</mn></msub><mo>[</mo><mi>m</mi><mo>,</mo><mn>11</mn><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>m</mi><mo>+</mo><mi>i</mi><mo>-</mo><mn>11</mn><mo>,</mo><mi>j</mi><mo>]</mo><mo>-</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></math>]]></maths>其中,i=x<sub>01</sub>,x<sub>01</sub>+1,..,x<sub>01</sub>+2*a,j=y<sub>01</sub>-b,y<sub>01</sub>-b+1,..,y<sub>01</sub>+bt<sub>2</sub>[i,j]最大值对应的位置便为运单二值图像黑白色块编码第一色块右上角的位置,这个位置同时也是黑白色块编码的右上角位置,用[x<sub>02</sub>,y<sub>02</sub>]表示;3)黑白色块编码第一色块左下角定位以黑白色块编码第一色块左上角为基础,确定黑白色块编码第一色块左下角的搜索范围依次为:左上角[x<sub>01</sub>-a,y<sub>01</sub>],右上角[x<sub>01</sub>+a,y<sub>01</sub>],左下角[x<sub>01</sub>-a,y<sub>01</sub>+2*b],右下角[x<sub>01</sub>+a,y<sub>01</sub>+2*b],按照步骤1)相同的搜索方式,计算定位模板与其覆盖下图像的卷积值,<maths num="0010"><![CDATA[<math><mrow><msub><mi>t</mi><mn>3</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>3</mn></msub><mo>[</mo><mn>11</mn><mo>,</mo><mi>n</mi><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>j</mi><mo>-</mo><mn>11</mn><mo>]</mo><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>3</mn></msub><mo>[</mo><mi>m</mi><mo>,</mo><mn>11</mn><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>m</mi><mo>+</mo><mi>i</mi><mo>-</mo><mn>11</mn><mo>,</mo><mi>j</mi><mo>]</mo><mo>-</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></math>]]></maths>其中,i=x<sub>01</sub>-a,x<sub>01</sub>-a+1,..,x<sub>01</sub>+a,j=y<sub>01</sub>,y<sub>01</sub>+1,..,y<sub>01</sub>+2*b,t<sub>3</sub>[i,j]最大值对应的位置便为运单二值图像黑白色块编码第一色块左下角的位置,用[x<sub>03</sub>,y<sub>03</sub>]表示;4)黑白色块编码第一色块右下角定位得到黑白色块编码第一色块的左上角,右上角,左下角位置后,对应可得到黑白色块编码第一色块的右下角位置[x<sub>04</sub>,y<sub>04</sub>],其中x<sub>04</sub>=x<sub>02</sub>,y<sub>04</sub>=y<sub>03</sub>;5)黑白色块编码第二色块左上角定位以黑白色块编码第一色块左上角为基础,确定黑白色块编码第二色块左上角的搜索范围依次为:左上角[x<sub>01</sub>-a,y<sub>01</sub>],右上角[x<sub>01</sub>+a,y<sub>01</sub>],左下角[x<sub>01</sub>-a,y<sub>01</sub>+2*b],右下角[x<sub>01</sub>+a,y<sub>01</sub>+2*b];按照步骤1)相同的搜索方式,计算左上角定位模板T<sub>1</sub>[m,n]与其覆盖下图像的卷积值t<sub>4</sub>[i,j]:<maths num="0011"><![CDATA[<math><mrow><msub><mi>t</mi><mn>4</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>1</mn></msub><mo>[</mo><mn>11</mn><mo>,</mo><mi>n</mi><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>j</mi><mo>-</mo><mn>11</mn><mo>]</mo><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>2</mn></msub><mo>[</mo><mi>m</mi><mo>,</mo><mn>11</mn><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>m</mi><mo>+</mo><mi>i</mi><mo>-</mo><mn>11</mn><mo>,</mo><mi>j</mi><mo>]</mo><mo>-</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></math>]]></maths>其中,i=x<sub>01</sub>-a,x<sub>01</sub>-a+1,..,x<sub>01</sub>+a,j=y<sub>01</sub>,y<sub>01</sub>+1,..,y<sub>01</sub>+2*b。t<sub>4</sub>[i,j]最大值对应的位置便为运单二值图像黑白色块编码第二色块左上角的位置,用[x<sub>11</sub>,y<sub>11</sub>]表示;可以得出第一色块的宽度w等于x<sub>02</sub>-x<sub>01</sub>,第一色块的高度h等于y<sub>03</sub>-y<sub>01</sub>,第一色块的下边界和第二色块的上边界的垂直距离d等于y<sub>11</sub>-y<sub>03</sub>;6)黑白色块编码剩余各色块定位由于黑白色块编码每一色块的大小是相同的,并且黑白色块编码各色块间的位置是固定的,因此对应可以确定黑白色块编码剩余每一色块的精确位置;黑白色块编码第二色块的右上角的位置为[x<sub>12</sub>,y<sub>12</sub>],其中x<sub>12</sub>=x<sub>11</sub>+w,y<sub>12</sub>=y<sub>11</sub>,黑白色块编码第二色块左下角的位置为[x<sub>13</sub>,y<sub>13</sub>],其中,x<sub>13</sub>=x<sub>11</sub>,y<sub>13</sub>=y<sub>11</sub>+h,黑白色块编码第二色块右下角的位置为[x<sub>14</sub>,y<sub>14</sub>],其中,x<sub>14</sub>=x<sub>12</sub>,y<sub>14</sub>=y<sub>13</sub>,黑白色块编码第三色块左上角的位置为[x<sub>21</sub>,y<sub>21</sub>],其中,x<sub>21</sub>=x<sub>13</sub>,y<sub>21</sub>=y<sub>13</sub>+d,黑白色块编码第三色块右上角的位置为[x<sub>22</sub>,y<sub>22</sub>],其中,x<sub>22</sub>=x<sub>21</sub>+w,y<sub>22</sub>=y<sub>21</sub>,黑白色块编码第三色块左下角的位置为[x<sub>23</sub>,y<sub>23</sub>],其中,x<sub>23</sub>=x<sub>21</sub>,y<sub>23</sub>=y<sub>21</sub>+h,黑白色块编码第三色块右下角的位置为[x<sub>24</sub>,y<sub>24</sub>],其中,x<sub>24</sub>=x<sub>22</sub>,y<sub>24</sub>=y<sub>23</sub>,黑白色块编码第四色块左上角的位置为[x<sub>31</sub>,y<sub>31</sub>],其中,x<sub>31</sub>=x<sub>23</sub>,y<sub>31</sub>=y<sub>23</sub>+d,黑白色块编码第四色块右上角的位置为[x<sub>32</sub>,y<sub>32</sub>],其中,x<sub>32</sub>=x<sub>31</sub>+w,y<sub>32</sub>=y<sub>31</sub>,黑白色块编码第四色块左下角的位置为[x<sub>33</sub>,y<sub>33</sub>],其中,x<sub>33</sub>=x<sub>31</sub>,y<sub>33</sub>=y<sub>31</sub>+h,黑白色块编码第四色块右下角的位置为[x<sub>34</sub>,y<sub>34</sub>],其中,x<sub>34</sub>=x<sub>32</sub>,y<sub>34</sub>=y<sub>33</sub>,黑白色块编码第五色块左上角的位置为[x<sub>41</sub>,y<sub>41</sub>],其中,x<sub>41</sub>=x<sub>33</sub>,y<sub>41</sub>=y<sub>33</sub>+d,黑白色块编码第五色块右上角的位置为[x<sub>42</sub>,y<sub>42</sub>],其中,x<sub>42</sub>=x<sub>41</sub>+w,y<sub>42</sub>=y<sub>41</sub>,黑白色块编码第五色块左下角的位置为[x<sub>43</sub>,y<sub>43</sub>],其中,x<sub>43</sub>=x<sub>41</sub>,y<sub>43</sub>=y<sub>41</sub>+h,黑白色块编码第五色块右下角的位置为[x<sub>44</sub>,y<sub>44</sub>],其中,x<sub>44</sub>=x<sub>42</sub>,y<sub>44</sub>=y<sub>43</sub>;(2)横向排列的黑白色块编码定位横向排列的黑白色块编码各色块的左上角、右上角位置的纵坐标相同,各色块的左下角、右下角位置的纵坐标相同,各色块的左上角位置的横坐标之间的距离相同,各色块的右上角位置的横坐标的距离相同,各色块的左下角位置的横坐标的距离相同,各色块的右下角位置的横坐标的距离相同;1)黑白色块编码左上角精确定位黑白色块编码左上角的定位方法与纵向排列的黑白色块编码左上角定位的方法相同,这个位置同时也是黑白色块编码第一色块的左上角位置,用[x<sub>61</sub>,y<sub>61</sub>]表示;2)黑白色块编码第一色块右上角精确定位黑白色块编码第一色块的右上角定位方法与纵向排列的黑白色块编码第一色块右上角定位的方法相同,用[x<sub>62</sub>,y<sub>62</sub>]表示;3)黑白色块编码第一色块左下角定位黑白色块第一色块的左下角定位方法与纵向排列的黑白色块编码第一色块左下角定位的方法相同,用[x<sub>63</sub>,y<sub>63</sub>]表示;4)黑白色块编码第一色块右下角定位得到黑白色块编码第一色块的左上角,右上角,左下角位置后,对应可得到黑白色块编码第一色块的右下角位置[x<sub>64</sub>,y<sub>64</sub>],其中x<sub>64</sub>=x<sub>62</sub>,y<sub>64</sub>=y<sub>63</sub>;5)黑白色块编码第二色块左上角定位以黑白色块编码第一色块左上角为基础,确定黑白色块编码第二色块左上角的搜索范围依次为:左上角[x<sub>61</sub>,y<sub>61</sub>-b],右上角[x<sub>61</sub>+2*a,y<sub>61</sub>-b],左下角[x<sub>61</sub>,y<sub>61</sub>+b],右下角[x<sub>61</sub>+2*a,y<sub>61</sub>+b];在搜索范围内,从左上角开始,按自左向右,自上向下的顺序依次平移定位模板,每移动一次定位模板窗口,使定位模板的中心与搜索范围内的相应点重合,计算定位模板与其覆盖下图像的卷积值;左上角定位模板T<sub>1</sub>[m,n]与其覆盖下图像的卷积值t<sub>4</sub>[i,j]:<maths num="0012"><![CDATA[<math><mrow><msub><mi>t</mi><mn>5</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>1</mn></msub><mo>[</mo><mn>11</mn><mo>,</mo><mi>n</mi><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>j</mi><mo>-</mo><mn>11</mn><mo>]</mo><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mn>21</mn></munderover><msub><mi>T</mi><mn>2</mn></msub><mo>[</mo><mi>m</mi><mo>,</mo><mn>11</mn><mo>]</mo><mo>&CenterDot;</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>m</mi><mo>+</mo><mi>i</mi><mo>-</mo><mn>11</mn><mo>,</mo><mi>j</mi><mo>]</mo><mo>-</mo><msub><mi>D</mi><mn>1</mn></msub><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></math>]]></maths>其中,i=x<sub>61</sub>-a,x<sub>61</sub>-a+1,..,x<sub>61</sub>+a,j=y<sub>61</sub>,y<sub>61</sub>+1,..,y<sub>61</sub>+2*b;t<sub>5</sub>[i,j]最大值对应的位置便为运单二值图像黑白色块编码第二色块左上角的位置,用[x<sub>71</sub>,y<sub>71</sub>]表示;可以得出第一色块的宽度w<sub>1</sub>等于x<sub>62</sub>-x<sub>61</sub>,第一色块的高度h<sub>1</sub>等于y<sub>63</sub>-y<sub>61</sub>,第一色块的右边界和第二色块的左边界的水平距离d<sub>1</sub>等于x<sub>71</sub>-x<sub>62</sub>;6)黑白色块编码剩余各色块位置确定由于黑白色块编码每一色块的大小是相同的,并且黑白色块编码各色块间的位置是固定的,因此对应可以确定黑白色块编码剩余每一色块的精确位置;黑白色块编码第二色块的右上角的位置为[x<sub>72</sub>,y<sub>72</sub>],其中x<sub>72</sub>=x<sub>71</sub>+w<sub>1</sub>,y<sub>72</sub>=y<sub>71</sub>,黑白色块编码第二色块左下角的位置为[x<sub>73</sub>,y<sub>73</sub>],其中,x<sub>73</sub>=x<sub>71</sub>,y<sub>73</sub>=y<sub>71</sub>+h<sub>1</sub>,黑白色块编码第二色块右下角的位置为[x<sub>74</sub>,y<sub>74</sub>],其中,x<sub>74</sub>=x<sub>72</sub>,y<sub>74</sub>=y<sub>73</sub>,黑白色块编码第三色块左上角的位置为[x<sub>81</sub>,y<sub>81</sub>],其中,x<sub>81</sub>=x<sub>72</sub>+d<sub>1</sub>,y<sub>81</sub>=y<sub>72</sub>,黑白色块编码第三色块右上角的位置为[x<sub>82</sub>,y<sub>82</sub>],其中,x<sub>82</sub>=x<sub>81</sub>+w<sub>1</sub>,y<sub>82</sub>=y<sub>81</sub>,黑白色块编码第三色块左下角的位置为[x<sub>83</sub>,y<sub>83</sub>],其中,x<sub>83</sub>=x<sub>81</sub>,y<sub>83</sub>=y<sub>81</sub>+h<sub>1</sub>,黑白色块编码第三色块右下角的位置为[x<sub>84</sub>,y<sub>84</sub>],其中,x<sub>84</sub>=x<sub>82</sub>,y<sub>24</sub>=y<sub>83</sub>,黑白色块编码第四色块左上角的位置为[x<sub>91</sub>,y<sub>91</sub>],其中,x<sub>91</sub>=x<sub>82</sub>+d<sub>1</sub>,y<sub>91</sub>=y<sub>82</sub>,黑白色块编码第四色块右上角的位置为[x<sub>92</sub>,y<sub>92</sub>],其中,x<sub>92</sub>=x<sub>91</sub>+w<sub>1</sub>,y<sub>92</sub>=y<sub>91</sub>,黑白色块编码第四色块左下角的位置为[x<sub>93</sub>,y<sub>93</sub>],其中,x<sub>93</sub>=x<sub>91</sub>,y<sub>93</sub>=y<sub>91</sub>+h<sub>1</sub>,黑白色块编码第四色块右下角的位置为[x<sub>94</sub>,y<sub>94</sub>],其中,x<sub>94</sub>=x<sub>92</sub>,y<sub>94</sub>=y<sub>93</sub>,黑白色块编码第五色块左上角的位置为[x<sub>101</sub>,y<sub>101</sub>],其中,x<sub>101</sub>=x<sub>92</sub>+d<sub>1</sub>,y<sub>101</sub>=y<sub>92</sub>,黑白色块编码第五色块右上角的位置为[x<sub>102</sub>,y<sub>102</sub>],其中,x<sub>102</sub>=x<sub>101</sub>+w<sub>1</sub>,y<sub>102</sub>=y<sub>101</sub>,黑白色块编码第五色块左下角的位置为[x<sub>103</sub>,y<sub>103</sub>],其中,x<sub>103</sub>=x<sub>101</sub>,y<sub>103</sub>=y<sub>101</sub>+h<sub>1</sub>,黑白色块编码第五色块右下角的位置为[x<sub>104</sub>,y<sub>104</sub>],其中,x<sub>104</sub>=x<sub>102</sub>,y<sub>104</sub>=y<sub>103</sub>;6.色块解码在得到编码中各色块的位置后,就可以进行黑白色块编码的解码了;通过统计运单二值化图像中黑白色块编码上每一色块中白点的个数来判定每一色块对应的编码信息,当白点个数大于每一块像素点总数的一半时,该色块用‘1’表示,表示为黑色块,当白点个数小于等于每一块像素点总数的一半时,该方块用‘0’表示,表示为白色块,将从上到下各色块的信息依次排列,便可得到该黑白色块编码信息;四、运单信息生成单元运单信息生成单元的主要功能是将运单图片的运单类型保存下来,这里的运单信息生成单元可以简单的看作一个常用的计算机,将运单图片的运单类型保存在计算机里,用于后续的识别。
地址 610091 四川省成都市金牛区蜀西路42号