- Visual C++数字图像模式识别典型案例详解
- 冯伟兴 梁洪 王臣业编著
- 595字
- 2025-03-16 03:50:29
3.2.3 译码过程——平均值法
条形码图像经过预处理后得到了二值化的图像,它是进行条形码识读的基础。但由于印刷质量、污垢等各种因素的影响,未经处理的条形码图像将存在一定程度的噪声干扰,故在识别时应考虑这些噪声的因素。
所谓平均值法,就是对条形码符号图像中从起始符号到终止符整个宽度进行测量,然后除以95(标准宽度),求出单位模块所含的像素列宽,即单位宽度,再分别测量各个条空的实际宽度(此宽度以单位宽度计算)。最后根据宽度识别出一维条形码图像中所包含的信息。
EAN-13是一种(7,2)码,即每个字符的总宽度为7个模块宽,交替由两个条和两个空组成,而每个条、空的宽度不超过4个模块。
设一个有序数组 A=(a1,a2,a3,a4)表示一个条形码字符,由EAN-13编码规则知,它满足如下性质:
性质1:ai为整数,且1≤ai≤4,i=1,2,3,4。
性质2:。
图3-3所示为EAN-13条形码的一个字符,图中条、空宽度定义如下:C1、C2、C3、C4表示每个字符中4个相邻条、空的宽度,T是一个字符的宽度。

图3-3 EAN-13条形码宽度的定义
设一个字符中单位模块的宽度为n,则单位模块宽度为
n=T 7
T =C 1+C2+C3+C4
由于条形码条、空宽度C1、C2、C3、C4已知,设条形码条、空分别占单位模块的个数为mi,则
m i =Ci n i=1,2,3,4
因此,由mi可知条形码的编码。例如:若m1=1,m2 =3,m3=1,m4 =2且条形码的排列为条—空—条—空,则可知条形码编码为1000100,是右侧偶字符7。若m1=3,m2 =1,m3=1,m4 =2且条形码的排列为空—条—空—条,则可知条形码编码为0001011,是左侧偶字符9。