将 Tango 相机数据保存为图像

Saving Tango camera data as an image

我想将 Tango 相机的相机数据保存为图像文件。我不确定从哪里开始,我能找到的最接近的问题是:

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

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

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

您的脚本应继承 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 具有宽度和高度值)。