条码识别
Posted lc__________
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条码识别相关的知识,希望对你有一定的参考价值。
http://blog.csdn.net/u013162930/article/details/51969994条码是将线条与空白按照一定的编码规则组合起来的符号,用以代表一定的字母、数字等资料。 世界上约有225种以上的一维条码,每一种一维条码都有自己的一套编码规格,规定每个字母(可能是文字或数字)是由几个线条(Bar)及几个空白(Space)组成,以及字母的排列。一般较流行的一维条码有39码、EAN码、UPC码、128码等。
通常一个完整的条码是由两侧的静空区、起始码、资料码、检查码、终止码组成,以一条一维码而言,其排列方式通常如下所示:
静空区 | 起始码 | 资料码 | 检查码 | 终止码 | 静空区 |
我想识别的是Code128码。 Code128码也遵循上面的条码的结构。其中检查码可有可无。 Code128码是一种长度可变,连续性的字母数字条码,可以支持不同的编码方式,因此其应用弹性也比较大。 Code128码有三种不同的编码方式,具体选用1哪种编码方式是由起始码决定的
编码类型 | 逻辑形态 | 相对值 |
CODE A | 11010000100 | 103 |
CODE B | 11010010000 | 104 |
CODE C | 11010011100 | 105 |
下面就是一个Code128码的例子
我们可以看到,不论是线条还是空白区域,都有四种不同的宽度,从细到粗我们可以分别设它们为1,2,3,4。 6位分为一块可得如下结果,为了便于观看我把条形码的白色区域用红色表示了。。。
第一部分起始码是211232,查本文最后的Code128编码表可知其对应StartC,表明该条码为Code128C。 起始码之后是资料码的区域,查表可知其分别对应,00、00、00、46、98、22。 倒数第二位是校验码,421112对应着87。那么87又是怎么算出来的呢~ 校验位是通过MOD103算法计算而出的
码 | 211232 | 212222 | 212222 | 212222 | 113321 | 411311 | 223112 |
值 | 105 | 00 | 00 | 00 | 46 | 98 | 22 |
位置 | --- | 1 | 2 | 3 | 4 | 5 | 6 |
Code128编码表:
ID | Code128A | Code128B | Code128C | BandCode |
0 | SP | SP | 0 | 212222 |
1 | ! | ! | 1 | 222122 |
2 | " | " | 2 | 222221 |
3 | # | # | 3 | 121223 |
4 | $ | $ | 4 | 121322 |
5 | % | % | 5 | 131222 |
6 | & | & | 6 | 122213 |
7 | ' | ' | 7 | 122312 |
8 | ( | ( | 8 | 132212 |
9 | ) | ) | 9 | 221213 |
10 | * | * | 10 | 221312 |
11 | + | + | 11 | 231212 |
12 | , | , | 12 | 112232 |
13 | - | - | 13 | 122132 |
14 | . | . | 14 | 122231 |
15 | / | / | 15 | 113222 |
16 | 0 | 0 | 16 | 123122 |
17 | 1 | 1 | 17 | 123221 |
18 | 2 | 2 | 18 | 223211 |
19 | 3 | 3 | 19 | 221132 |
20 | 4 | 4 | 20 | 221231 |
21 | 5 | 5 | 21 | 213212 |
22 | 6 | 6 | 22 | 223112 |
23 | 7 | 7 | 23 | 312131 |
24 | 8 | 8 | 24 | 311222 |
25 | 9 | 9 | 25 | 321122 |
26 | : | : | 26 | 321221 |
27 | ; | ; | 27 | 312212 |
28 | 使用JavaScript创建SVG矢量图Code128编码 |