问题标签 [android-vision]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
947 浏览

android - Android Mobile Vision获取相机参数

是否可以在 Android 的 Mobile Vision API 8.4 上访问 CameraSource 中的相机参数?我希望能够调整一些相机参数(快门速度、ISO、光圈……)。

更新 我尝试使用以下代码来做到这一点:

但这对我不起作用,当获取 type 的字段时field.get(cameraSource);返回。nullCamera.class

Android-Vision 团队,您是否计划在下一个版本中添加这些功能?

此致,

基督教

0 投票
1 回答
9093 浏览

android - Vision API 中的限制检测区域

似乎我发现自己陷入了用于条码扫描的 Google Vision API 的深草之中。在查看了各种替代库(ZBar、ZXing,甚至是一些收费的第三方实现)之后,我的头脑可能有点焦躁,但是我很难找到关于在哪里可以实现某种扫描的任何信息区域限制。

用例非常简单:如果我是一个用户,我将手机指向一个带有多个相同类型条形码的盒子(想想这里的运输标签),我想明确地指向一些小的取景器或对齐直尺屏幕上正是我想要捕捉的东西,而不必担心感兴趣的区域之外的任何东西会给我一些我不想要的扫描结果。

上面的案例在我见过的大多数其他 Android 库中都有处理,采用具有相对或绝对坐标的 Rect,这也是 iOS 的 AVCapture 元数据结果系统的一部分(它使用相对 CGRect,但实际上相同概念)。

我已经在 此处深入研究了条形码阅读器的示例应用程序,但是除了高级实现细节之外,该实现有点不透明。

对于在相机预览帧内的任何位置成功检测到条形码,对感兴趣区域之外的条形码进行简单的无操作,这似乎是一个丑陋的补丁,因为设备仍在努力计算这些帧。

我错过了一些非常简单和明显的东西吗?有什么想法可以干净地实现这一点,否则?

非常感谢您花时间阅读本文!

0 投票
0 回答
691 浏览

android - Android Vision 从位图中读取 ean-13 条码

我正在尝试从图片中读取条形码,但我只能读取 QR 码?正如您从下面的代码中看到的那样,我已经尝试使位图具有更高的分辨率,因为我希望是图像分辨率使图像不可读。但这没有帮助。

条码活动:

我似乎找不到我做错了什么..有人可以帮忙吗?

更新

发现它在 Gs6 边缘上运行,但不在我的 nexus 5 上运行......都运行 6.0.1 android

更新 2

得到它的工作,现在。问题是到图像的距离。我没有将手机放在距离代码 5 厘米的地方,而是尝试了更长的距离。

但是我仍然会保留这个问题,以防万一在代码中发现错误

0 投票
0 回答
694 浏览

android - 如何在视觉库android中获取扫描条码的图像

我通过 Google 示例成功实现了视觉库,它成功扫描了条形码并返回了一个字符串。我也想要条形码图像,所以我的问题是如何获取条形码图像或预览图像?

注意:代码基于谷歌视觉库的 git hub 示例。

0 投票
0 回答
510 浏览

android - 条码检测器 (Vision API) 的可靠性如何?

我正在评估用于扫描 QR 码的视觉 API。我正在使用 Google 的条形码阅读器示例。在大多数情况下,代码检测似乎都有效。但是,我遇到了一些样本无法解码的二维码。Android 上的 zxing 库(例如 Barcode Scanner 应用程序)或 iPhone 上的应用程序可以轻松解码相同的代码。

有问题的代码没有安静区域,或者由于缩放而导致时序失真,或者它们的图像被镜像(即位图数据源位于底部/左侧)。

有没有办法将 BarcodeDetector 调整为更宽容?

0 投票
1 回答
209 浏览

android - 条形码阅读器示例中的 CameraSource 重复。为什么?

条形码阅读器示例带有 CameraSource 类。但是,com.google.android.gms.vision包也包含 CameraSource 的类似实现。示例类有其他方法(例如 setFocusMode()、setFlashMode())。如果不使用这些方法,那么似乎可以将示例自定义类替换为com.google.android.gms.vision.CameraSource. 我试过了,样本工作正常。

有谁知道为什么该示例提供了自己的 CameraSource 实现?

0 投票
0 回答
557 浏览

android - 如何将媒体记录器添加到 Android Google Play Service Vision 条码扫描仪

有人问过这个问题,但这里从未回答过——但无论如何,它与我的需要有些不同。

我想录制视频,同时在后台运行 Google Vision 库,所以每当我的用户举起条形码(或足够接近条形码)时,相机都会自动检测并扫描条形码 - 并且一直在记录视频。我知道 Google Vision 演示是相当 CPU 密集型的,但是当我尝试一个更简单的版本时(即没有一直抓取每一帧并将其交给检测器)我没有得到可靠的条形码读取。

(我在 KitKat 4.4.3 上运行三星 Galaxy S4 Mini 不幸的是,由于只有三星知道的原因,他们不再报告 OnCameraFocused 事件,因此无法知道相机是否抓住焦点并调用读取条形码。这使得抓取和检查每一帧似乎是唯一可行的解​​决方案。)

所以至少为了证明这个概念,我想简单地修改 Google Vision Demo。(在这里找到)

似乎最简单的事情就是简单地跳入代码并添加一个媒体记录器。我在表面创建期间在 CameraSourcePreview 方法中执行了此操作。

像这样:

这确实记录了事情,同时仍将每一帧交给视觉代码。但是,奇怪的是,当我这样做时,相机似乎没有正确调用自动对焦,并且没有扫描条形码——因为它们从未真正聚焦,因此无法识别。

我的下一个想法是在条形码检测器处理帧时简单地捕获帧,并将它们一个一个地保存到磁盘(我可以稍后将它们混合在一起。)

我在 CameraSource.java 中做到了这一点。

这似乎没有捕获所有帧,即使我将它们写在后台运行的单独 AsyncTask 中,我认为最终会得到它们——即使需要一段时间才能赶上。保存没有优化,但它看起来好像在整个丢帧,而不仅仅是在最后。

要添加此代码,我尝试将其放在 run() 方法中的私有类 FrameProcessingRunnable 中。

在 FrameBuilder 代码之后,我添加了以下内容:

哪个调用这个类:

我对 mediarecorder 的想法或蛮力帧捕获的想法很满意,但似乎都没有正常工作。

0 投票
0 回答
626 浏览

android - 为什么barcodedetector 和相关的API 如此不可靠?

我已经用barcodedetector 和相关的Vision API 试验了一周左右,不幸的是,结论是它们不可靠。我已经用大约 10 台设备对它们进行了测试:三星和 Nexus 平板电脑/手机,Android 4.4 到 6.01。

常见的问题是我无法解码某些二维码——其他基于 zxing 库的应用程序以及 iPhone 都没有问题解码它们。有问题的二维码具有以下“缺陷”之一:时间有些失真(由于缩放)、没有静区,或者它们的位图数据具有底部/左侧原点(即图像被镜像)。

同样令人不安的是相关的API(例如CameraSource)似乎有问题。幸运的是,条形码阅读器示例带有开源版本,因此可以在必要时对其进行修复。最明显的错误是相机分辨率与视图大小匹配的方式,而不考虑当前方向。您可以清楚地看到示例中的副作用 - 相机预览永远不会填满包含的活动区域,尤其是在横向时。

有没有人遇到过类似的问题?是否有任何用于显示停止器的解决方法 - 即解码 qr 码?

谢谢。

0 投票
3 回答
3877 浏览

google-api - 花(植物)识别

我们可以使用 Mobile Vision API 来检测花(植物)种类吗?你有其他推荐吗?我曾尝试寻找其他几个 API,但不确定要使用什么。

谢谢

0 投票
2 回答
251 浏览

android - 如何使用 CameraSource 检测需要颜色信息的自定义可视代码

我想用来CameraSource检测一些可视代码(不是任何类型的条形码)。我实现Detector了它的detect(Frame frame)方法。但是,当我调用frame.getBitmap()detect方法时,它总是返回null. 我知道Frame有另一种方法,getGrayscaleImageData()但是检测代码需要颜色信息。似乎CameraSource只将灰度图像数据传递给其底层检测器。

那么,有没有办法通过 检测此代码CameraSource?还是我应该放弃CameraSource并另谋出路?