近期在學習的內容之中的一個,整理一下,圖片均為網絡圖片。提及的條形碼主要為EAN-13碼。
一、概念
條形碼由寬度不同、反射率不同的條(黑色)和空(白色)組成。依照特定的編碼規則編制,用來表達一組數字、字母信息的圖形標識符。
工業25碼
EAN-13碼
為什么用黑色、白色來表示條形碼?
由於兩種顏色有截然不同的反射率,眾所周知。黑色吸收光中的全部顏色,白色反射光中的全部顏色。當然。也能夠用其它兩種顏色來表示條形碼,僅僅要兩種顏色有不同的反射率。足夠的對照度。
二、EAN-13碼
EAN-13碼是EAN碼的一種。用13個字符表示信息,是我國主要採取的編碼標准。EAN-13碼包括商品的名稱、型號、生存廠商、全部國家地區等等信息。
EAN碼是模塊組合型條碼。
模塊:組成條碼的基本寬度單位。說白了。條形碼上,每0.33毫米寬代表一個模塊。
一個模塊寬的條(條形碼黑色部分)表示二進制“1”,兩個模塊寬的條(黑)表示二進制“11“。一個模塊寬的空(條形碼白色部分)表示二進制”0“。
這樣。便能夠用二進制的0、1表示信息。
在EAN碼上,每一個字符(比如:數字1)。由兩個條(黑)和兩個空(白)組成,條和空又分別由1~4個同寬、同顏色的模塊組成。每一個字符總共同擁有7個模塊(寬),並規定每一個字符從外觀上包括兩個條、兩個空。
所以EAN碼又稱(7,2)碼。
一個字符:c1表示條的寬度(模塊),c2(空)。c3(條)。c4(空) (c1+c2+c3+c4=7)
EAN-13碼的格式如圖:
以上節EAN-13碼例圖來說明:
501(制造碼),2345(制造商代碼)。67890商品標識代碼,0(校驗碼)。
注意:EAN-13碼,在以圖形標識符表示時。第1位(例:上圖數字”5“)隱式表示。既不用條和空(表示)。而用第2位~第7位(總六位)的奇偶性來隱式表示(后面會說)。
如今,第一位用隱式表示,那么僅僅須要表示13-1=12個字符。將12個字符,分成兩半,左側6個字符。右側6個字符。
左側字符有奇偶性,右側字符全是偶的。左側的奇偶性取決於 隱式表示的第一位字符(前置符,即:EAN-13碼格式中的F1)。
詳細奇偶性如圖:E代表偶數位,O代表奇數位,如前置符0表示,左側六個字符都是奇數位。
那么奇、偶數位有什么用呢?
同樣字符在偶數位、和奇數位的二進制表示是不一樣的。如圖:

校驗碼有什么用?
EAN-13碼最后一個字符是校驗碼,用來保證條形碼識別的正確性。
EAN-13碼校驗算法例如以下:
(1)從右至左,將13個字符按順序排序。
(2)第2、4、6、8、10、12等偶數位的數據相加,將結果乘以3,得P.
(3)將3、5、7、9、11、13等奇數位數據相加,等N。
(4)N+P得 M
(5)用M除以10,取余數。求余數以10為模的補數 C。
(6)若C與 校驗碼 數值相等,則譯碼正確。
EAN-13碼識別原理
如圖,表示條形碼的一個字符。
C1。C2。C3,C4表示該字符中四個相鄰的條(黑)或空(白)的寬度。T是一個字符的寬度。
C1+C2+C3+C4=7(模塊)
用n表示一個模塊的寬度,n=T/7。
用mi=Ci/n,i=1,2,3,4,便能夠得到編碼。
若m1=1。m2=3。m3=1,m4=2,且條碼排列位條——空——條——空,則當前字符二進制編碼為 1 000 1 00,是右側偶字符“7”。
這樣的方法僅僅是最主要的識別方法,當條空間距較小,或印刷質量不好時,非常easy識別錯誤。
條形碼識別的方法還有很多,網上有很多資料,有興趣的朋友能夠自行學習。
