将颤振的 CameraImage 转换为文件

Posted

技术标签:

【中文标题】将颤振的 CameraImage 转换为文件【英文标题】:Convert flutter CameraImage to File 【发布时间】:2019-06-16 04:44:34 【问题描述】:

我正在尝试运行人脸识别并且需要来自相机的图像/文件流。 我决定使用 Flutters 自己的相机库camera: 0.2.9+1CameraController.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 转换为文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 将文本文件转换为 CSV 文件 [关闭]

颤振无效的`Podfile`文件:没有将nil隐式转换为String

如何使用 dart 将 Uint8list 转换为 List<int>?

(颤振)将飞镖时间(不是日期)转换为警报的持续时间

如何使用颤振将 Base64 字符串解码为图像文件

将 Map 转换为 json 字符串颤振