将抖动的CameraImage转换为文件

时间:2019-01-22 16:50:07

标签: android ios camera flutter face-recognition

我正在尝试进行人脸识别,需要从相机中获取图像/文件流。
我决定使用Flutters自己的相机库camera: 0.2.9+1
方法CameraController.startImageStream(Function(CameraImage) onAvailable)很有希望,但我不知道如何将CameraImage数据转换为可识别的面部识别数据。

还有其他人解决吗?

1 个答案:

答案 0 :(得分:1)

CameraImage通常为YUV 420格式。 (测试cameraImage.format.group进行确认。)

这与Firebase ML很好地配合,因为它是期望的格式。有用的演示here。但是,其他识别器可能需要其他格式(例如,AWS需要JPEG或PNG)。

YUV很难转换,因为它使用色度二次采样。另外,为了提高性能,您可能希望使用本机代码。在Android上,有一个YUVImage类,您可以在其中传递飞机。它具有一种转换为JPEG的方法。创建一个插件或方法通道,以将平面传递到YUVImage,将其保存到ByteArrayOutputStream并返回字节。