You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

使用Google Vision API无法识别条形码,二维码可正常扫描求解决

嘿,我一眼就瞅出问题所在啦!你的代码里漏掉了条形码对应的格式配置,这就是为啥能正常扫二维码,却完全检测不到条形码的原因~

问题根源

你在初始化BarcodeDetector的时候,只指定了Barcode.DATA_MATRIXBarcode.QR_CODE这两种二维码专属格式,完全没添加任何条形码相关的格式枚举值。Google Vision API只会检测你明确指定的格式,自然不会去识别条形码啦。

修复方案

修改BarcodeDetector.BuildersetBarcodeFormats方法,把你需要支持的条形码格式加进去。常见的条形码格式包括:

  • Barcode.CODE_128(最常用的一维条码之一)
  • Barcode.UPC_A/Barcode.UPC_E(商品条码)
  • Barcode.EAN_13/Barcode.EAN_8(欧洲商品条码)
  • Barcode.CODE_39(工业常用条码)

如果想偷懒支持所有常见条码类型,直接用Barcode.ALL_FORMATS就能一步到位。

修改后的代码示例

替换你原来的Detector初始化代码:

barcodeDetector = new BarcodeDetector.Builder(this)
        // 按需添加你需要的条形码格式,这里举几个常见例子
        .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE | Barcode.CODE_128 | Barcode.EAN_13)
        .build();

或者用全格式简化版本:

barcodeDetector = new BarcodeDetector.Builder(this)
        .setBarcodeFormats(Barcode.ALL_FORMATS)
        .build();
额外小提醒
  • Barcode.ALL_FORMATS可能会轻微增加一点检测的资源消耗,但对于绝大多数日常应用来说,这点消耗完全可以忽略;
  • 你代码里已经加了Google Play Services版本检查,这点做得很到位,记得保持Play服务更新哦;
  • 测试时尽量用光照充足、清晰无反光的条形码,模糊或角度太偏的条码也会影响检测成功率。

内容的提问来源于stack exchange,提问作者ola

火山引擎 最新活动