将颤振的 CameraImage 转换为文件
Posted
技术标签:
【中文标题】将颤振的 CameraImage 转换为文件【英文标题】:Convert flutter CameraImage to File 【发布时间】:2019-06-16 04:44:34 【问题描述】:我正在尝试运行人脸识别并且需要来自相机的图像/文件流。
我决定使用 Flutters 自己的相机库camera: 0.2.9+1
。CameraController.startImageStream(Function(CameraImage) onAvailable)
方法很有希望,但我不知道如何将 CameraImage
数据转换为人脸识别可读的数据。
其他人解决了这个问题吗?
【问题讨论】:
github.com/flutter/flutter/issues/26348#issuecomment-453044033 可能有帮助 【参考方案1】:CameraImage
通常是 YUV 420 格式。 (测试cameraImage.format.group
确认。)
这适用于 Firebase ML,因为这是它所期望的格式。有用的演示here。但是,其他识别器可能需要其他格式(例如,AWS 需要 JPEG 或 PNG)。
YUV 使用色度二次采样很难转换。此外,出于性能考虑,您可能希望使用本机代码。在 android 上有一个 YUVImage 类,您可以将飞机传递到其中。它有一种转换为JPEG的方法。创建一个插件或方法通道以将平面传递给 YUVImage,让它自己保存到 ByteArrayOutputStream 并返回字节。
【讨论】:
非常有帮助。我将测试是否可以首先在颤振代码上运行。我真的只是在玩弄颤振并试图了解细节。如果我让它工作,我会检查你的答案是否正确。 演示链接返回 404。我在这里找到了完整的演示:github.com/bparrishMines/mlkit_demo/tree/master/lib以上是关于将颤振的 CameraImage 转换为文件的主要内容,如果未能解决你的问题,请参考以下文章
颤振无效的`Podfile`文件:没有将nil隐式转换为String