条码可分为 一维码和二维码,每个条码支持的字符以及长度都是有所区别,比如二维码支持中文,而一维码不支持中文,而且不同的一维码也有区别,介绍几种常用一维码支持的字符和长度限制。
常见的条形码有: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/