Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 3 KB

barcode.md

File metadata and controls

47 lines (35 loc) · 3 KB

条码识别简述

常用的条码规格

条码可分为 一维码和二维码,每个条码支持的字符以及长度都是有所区别,比如二维码支持中文,而一维码不支持中文,而且不同的一维码也有区别,介绍几种常用一维码支持的字符和长度限制。

常见的条形码有:EAN-13商品条码,Code128码,EAN/Ucc128码,UPC-A码,ITF-14码,交叉25码(code 2of5 Interleaved),矩阵25码(Code 2of5 Matrix),Codabar码,Code93码,SSCC-18码等等。

  • EAN-13码和UPC-A码支持的字符范围为0-9数字,EAN-13码长度为13位,UPC-A码长度为13位。
  • Code93码支持字符有44个:(0-9)十个数字,(A-Z)二十六个英文大写字母,以及八个特殊字符:“空格符”、“-”、“.”、“*”、“$”、“/”、“+”、“%”,理论上没有长度限制。
  • 交叉25码(code 2of5 Interleaved)支持的字符集为0-9数字,理论上长度没有限制,不过只能编码偶数个数字。
  • Codabar码是一种可表示数字、字母信息的条形码,其包含20位字符集:数字“0-9”,A、B、C、D四个英文大写字母,以及6个特殊字符(“-”、“:”、“/”、“.”、“+”、“$”),其中A、B、C、D只作起始字符和终止字符使用。理论上长度没有限制。
  • Code128码可表示从 ASCII 0 到ASCII 127 共128个字符(其中包含数字,字母,符号),理论上常没有限制。Code128码有三个子集A码、B码、C码:
    • Code128 A码可表示:大写英文字母、数字、控制字符组成的字符串,比如:ABC、ABC123。
    • Code128 B码可表示:大小写英文字母、数字、字符组成的字符串,比如:Abc123、A-123(B)。
    • Code128 C码可表示:仅可表示100个“两位”数字编码(00-99),比如:123456、00225869。
  • ITF-14码和矩阵25码(Code 2of5 Matrix)支持字符都为0-9数字,矩阵25码长度13位,ITF-14码长度14位。
  • UCC/EAN-128码支持字符为ASCII码,理论上长度不限制。
  • SSCC-18严格意义上并不是一种条码类型,而是使用UCC/EAN-128编码的条形码,支持字符也是为全ASCII码,长度为20位,前两位(00)是应用标识符。

常用的条码检测库

  • Dynamsoft Barcode Reader(商业软件)
  • Commercial SDK A(商业软件)
  • Commercial SDK B(商业软件)
  • BoofCV(开源软件)
  • Zxing(开源软件)
  • Zbar(开源软件)
  • OpenCV(开源软件)

开源库检测能力

以下表格仅限于本项目测试,可能有出入

条码 二维码 批量检测 开发语言
OpenCV yes yes yes C++
ZXing yes yes no Java
ZBar yes yes yes C
BoofCV no yes yes Java
  • OpenCV仅支持部分条码规格,不支持常用的code128
  • boofcv功能强大,二维码检测只是它的一项能力

参考资料

http://devblogs.damingsoft.com/qr-code-reading-benchmark-and-comparison/