天天看點

所謂條形碼

所謂條形碼

一、條碼

條形碼,從外形看是一條條粗細,彼此間間隔不同的線段。正是由于這兩個特點,可用來表示若幹字元。

常用的條形碼編碼格式有​

​Code39​

​​,​

​Code128​

​。一般的39碼可表示44種字元

可表示字元 表示意義 二進制碼
101001101101
1 110100101011
2 101100101011
3 110110010101
4 101001101011
5 110100110101
6 101100110101
7 101001011011
8 110100101101
9 101100101101
A 110101001011
B 101101001011
C 110110100101
D 101011001011
E 110101100101
F 101101100101
G 101010011011
H 110101001101
I 101101001101
J 101011001101
K 110101010011
L 101101010011
M 110110101001
N 101011010011
O 110101101001
P 101101101001
Q 101010110011
R 110101011001
S 101101011001
T 101011011001
U 110010101011
V 100110101011
W 110011010101
X 100101101011
Y 110010110101
Z 100110110101
- 100101011011
. 110010101101
空字元 100110101101
$ 100100100101
/ 100100101001
+ 100101001001
% 101001001001
* 100101101101

顯然,若無需表示複雜的字元,例如隻需要用一定規則排列的數字表示資訊時,用Code39碼就OK了。但是,實際需要編碼的字元往往不隻這基本的44個字元。為滿足需要,出現了擴充的Code39碼。擴充後的Code39碼能表示128種字元

表示的字元 編碼 表示的字元 編碼 表示的字元 編碼 表示的字元 編碼
NUL %U SP Space @ %V ` %W
SOH $A ! /A A A a +A
STX $B /B B B b +B
ETX $C # /C C C c +C
EOT

D|

D |

/D D D d +D
ENQ $E % /E E E e +E
ACK $F & /F F F f +F
BEL $G /G G G g +G
BS $H ( /H H H H H
HT $I ) /I I I i +I
LF $J * /J J J j +J
VT $K + /K K K k +K
FF $L , /L L L l +L
CR $M - - M M m +M
SO $N . . N N n +N
SI $O / /O O O o +O
DLE $P P P p +P
DC1 $Q 1 1 Q Q q +Q
DC2 $R 2 2 R R r +R
DC3 $S 3 3 S S s +S
DC4 $T 4 4 T T t +T
NAK $U 5 5 U U u +U
SYN $V 6 6 V V v +V
ETB $W 7 7 W W w +W
CAN $X 8 8 X X x +X
EM $Y 9 9 Y Y y +Y
SUB $Z : /Z Z Z z +Z
ESC %A ; %F [ %K { %P
FS %B << %G \ %L | %Q
GS %C = %H ] %M } %R
RS %D > %I ^ %N ~ %S
US %E ? %J _ %O DEL %T, %X, %Y, %Z

Code128碼能表示128種字元。Code128與擴充後的Code39都能表示128種字元,差別在于其編碼規則不同。由于編碼規則不同,是以産生的條碼線的粗細,間隔都有差别。

二、識别裝置

能夠識别條碼的裝置。常見的是掃碼槍。掃碼槍識别條碼的原理是利用光的反射。掃碼槍會發出一道光,打到條碼上後,黑色的條碼線會吸收掉這段光波,而沒被吸收的部分将傳回到感應器。通過晶片(解碼規則)處理得到的間斷資訊。于是這段條碼的含義就被明确了。是以,若掃碼槍與條碼編碼不對應,即加密與解密的規則不一緻,當然就出現無法識别條碼的現象了。

而現在的手機應用,如微信也能識别條碼。識别的原理與第一種是不一樣的。打開微信掃描條碼,攝像頭本身并沒發光,但微信程式卻成功地識别出條碼表示的含義。很顯然,這是采用圖像識别的技術。雖然第一種方法也有圖像識别的意味,甚至也可以稱為圖像識别。但是後者卻是标标準準的圖像識别。推測微信程式首先會捕獲目标條碼,之後盡可能地增大色差,使得條碼線色與背景色能夠更加容易地差別開。然後關鍵是要處理條碼線的寬度與間隙寬度,再從中解密得到正确的資訊,是以就必然要檢測像素。檢測時也沒必要對整個圖檔進行處理,實際上隻需要截取有限高度的整段條碼即可。因為條碼是根據條碼線寬度與間隙表示資訊的。而因為一般商品的條碼編碼規則已經受到國家規範,是以實際上很容易解密出商品下方的字元碼(正确的資訊)。當然,這些識别過程不可能在本地完成的,因為牽扯到複雜的計算,放在本地計算無疑十分消耗使用者CPU。使用者也不樂意為此承擔複雜的計算。

三、字型

繼續閱讀