我想将Tango相机中的相机数据保存为图像文件。我不知道从哪里开始,我能找到的最接近的问题是:Getting Tango's camera stream data
其他问题+答案看起来已经过时了。
这适用于我吗?或者我可以从ITangoCameraTexture获取纹理并将其保存为图像文件吗?
还有办法设置Tango相机的帧速率吗?
答案 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具有宽度和高度的值)。