【问题标题】:getUserMedia() Camera FocusgetUserMedia() 相机焦点
【发布时间】:2017-04-24 04:14:37
【问题描述】:

请问有没有使用getUserMedia进行相机对焦的功能?我正在使用 QuaggaJS 项目 - https://serratus.github.io/quaggaJS/examples/live_w_locator.html

我想做的是将焦点放在相机上,因为它有点模糊并且无法检测到条形码。有谁知道可以吗?

谢谢!

【问题讨论】:

    标签: jquery getusermedia


    【解决方案1】:

    首先 - 虽然这里可能是不好的做法 - 我将链接到为什么 MediaCapture 可能比预期的模糊或颗粒状:

    简而言之:MediaCapture 对媒体源进行了大量转换,这可能会导致图像模糊或有颗粒感。传递给 getUserMedia 的 MediaConstraints 对象不允许您指定焦点位置。这取决于浏览器,通常应该在中心附近。

    要解决这个问题,请使用 ImageCapture:

    ImageCapture API 可以控制相机功能,例如 变焦、亮度、对比度、ISO 和白平衡。最重要的是,图像 Capture 允许您访问任何 可用的设备摄像头或网络摄像头。以前的服用技术 网络上的照片使用了视频快照,低于 分辨率高于静止图像可用的分辨率。

    解决您的问题:

    如果 QuaggaJS 不使用 ImageCapture 则不,这是不可能的。如果是这样,您可以通过 UX 和缩放滑块解决此问题。以下是有关如何使用 ImageCapture(静止图像)实现此目的的信息。 MediaCapture(视频源)不允许此功能。您可以使用 ImageCapture 并有一个按钮,例如“手动模式”,它允许用户选择正确的缩放比例来拍摄照片。

    您还可以通过更新循环每次更新执行 n 个 ImageCapture 来“模拟”相机。

    https://developers.google.com/web/updates/2016/12/imagecapture

    这是一个关于如何使用它/polyfill 的示例:https://github.com/GoogleChromeLabs/imagecapture-polyfill

    确保您使用处理跨平台支持的最新 getUserMedia polyfill:https://www.npmjs.com/package/webrtc-adapter

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      如果焦点不能很好地工作。您可以使用 locate 进行测试:false。定位的默认值为 true。

      {
        locate: false,
        area: { // defines rectangle of the detection/localization area
          top: "30%",   // top offset
          right: "30%",  // right offset
          left: "30%",   // left offset
          bottom: "30%"  // bottom offset
        }
      }

      根据需要调整区域。

      【讨论】:

      • 嗨,我尝试更新定位:false,但它仍然无法正常工作并且仍然模糊。
      猜你喜欢
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2018-02-19
      • 1970-01-01
      • 2013-09-05
      • 2021-11-08
      相关资源
      最近更新 更多