将Tango相机数据保存为图像

时间:2017-07-27 20:24:16

标签: c# android unity3d google-project-tango

我想将Tango相机中的相机数据保存为图像文件。我不知道从哪里开始,我能找到的最接近的问题是:Getting Tango's camera stream data

其他问题+答案看起来已经过时了。

这适用于我吗?或者我可以从ITangoCameraTexture获取纹理并将其保存为图像文件吗?

还有办法设置Tango相机的帧速率吗?

1 个答案:

答案 0 :(得分:1)

您的脚本应继承ITangoVideoOverlay并实现OnTangoImageAvailableEventHandler,其中图像存储在TangoUnityImageData imageBuffer下作为字节数组(imageBuffer.data)。 图像采用YUV格式,因此您必须将其转换为RGB或其他格式。

private void SaveImage(byte[] byteArray, string datetime)
{
    ...
    TextureFormat format = TextureFormat.RGBA32;
    Texture2D x = new Texture2D(1920, 1080, format, false);
    Color32[] argbArray = ColorHelper.YUV_NV21_TO_RGB(byteArray, 1920, 1080);
    x.SetPixels32(argbArray);
    File.WriteAllBytes(PATH + datetime + "_image.jpg", x.EncodeToJPG());
    ...
}

当然,尺寸不应该是硬编码的,但这只是正在进行的工作(imageBuffer具有宽度和高度的值)。