首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动视觉API读取错误条形码

移动视觉API读取错误条形码
EN

Stack Overflow用户
提问于 2017-05-11 14:34:00
回答 4查看 2.2K关注 0票数 4

最近我做了一些Android条形码扫描应用程序。一切都很好,直到我意识到我的朋友在IOS上制作的同一款应用程序在检测条形码方面要好得多。经常出错,它检测像“72345.”这样的条形码。当真正的条形码是“12345.”。这是一般的问题吗?有什么解决办法吗?

条形码样本:

当我把我的设备放在上面的时候,这个条形码被检测到很好,但是在任何小的移动之后,都有很大的机会得到不正确的代码。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-10 11:01:22

我发现,不使用第一次匹配,而是应用一个简单的退出策略,效果很好。例如,我只考虑一个有效的匹配后,条形码出现在3个连续帧。在内部使用Detector<Barcode>的自定义com.google.android.gms.vision.barcode.BarcodeDetector中可以很容易地做到这一点。它降低了检测速度,但也使它们更加可靠。

票数 5
EN

Stack Overflow用户

发布于 2019-05-22 07:38:05

对于任何想要基于google条形码示例的快速解决方案的人。在BarcodeGraphicTracker中添加三个字段:

代码语言:javascript
复制
String currentBarcode = null;
int confirmCounter = 0;
final static int CONFIRM_VALUE = 10;

用新方法更新BarcodeUpdateListener接口:

代码语言:javascript
复制
 @UiThread
 void onBarcodeConfirmed(Barcode barcode);

将此片段添加到overriden onUpdate方法中:

代码语言:javascript
复制
if (currentBarcode != null && currentBarcode.equals(item.displayValue)){
        confirmCounter++;
        if (confirmCounter >= CONFIRM_VALUE){
            confirmCounter = 0;
            mBarcodeUpdateListener.onBarcodeConfirmed(item);
        }
    }else{
        currentBarcode = item.displayValue;
        confirmCounter = 0;
    }
}

现在您可以通过将fps设置为相机源并更改CONFIRM_VALUE来对其进行调优。

票数 1
EN

Stack Overflow用户

发布于 2017-05-11 14:49:32

到目前为止,我找到的最佳解决方案是将cameraSource的FPS设置为15.0f。它将减慢预览,但结果将更加可靠。然而,比IPhone更不可靠。

来自Google的样本:

https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/BarcodeCaptureActivity.java

代码语言:javascript
复制
.setRequestFps()

是一种去的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43918466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档