【问题标题】:Saving Tango camera data as an image将 Tango 相机数据保存为图像
【发布时间】:2017-07-27 20:24:16
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您的脚本应该继承 ITangoVideoOverlay 并实现 OnTangoImageAvailableEventHandler,其中图像作为字节数组 (imageBuffer.data) 存储在 TangoUnityImageData imageBuffer 下。 图像为 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 具有宽度和高度值)。

    【讨论】:

    • 我这样做对吗?文本框文本永远不会改变,我想确保我实际上正在获取数据。 public class GetCameraFrame : MonoBehaviour, ITangoVideoOverlay { public byte[] data; public UnityEngine.UI.Text textbox; public void OnTangoImageAvailableEventHandler(Tango.TangoEnums.TangoCameraId cameraId, Tango.TangoUnityImageData imageBuffer) { data = imageBuffer.data; textbox.text = data.ToString (); } }
    • 我想通了,忘记在Start()中注册tango应用
    • 这个函数在哪里定义的 ColorHelper.YUV_NV21_TO_RGB ?
    • 如果我没记错的话,我用的是这个:stackoverflow.com/questions/12469730/…
    猜你喜欢
    • 1970-01-01
    • 2018-04-14
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2014-11-12
    • 1970-01-01
    • 2017-08-23
    相关资源
    最近更新 更多