0

我今天早上注意到 Tango Core 的“H”更新,Unity SDK 现在看到从深度数据返回的“非空”color_image!进步!

但是它只填充了 900 字节的数据?这将是一个非常小的图像。:)

Tango 团队:我在使用 C#/Mono 访问 IntPtr 的方式上做错了什么,还是现在在 Unity 中实际获取 color_images 还为时过早?

代码:

受保护的覆盖无效_OnDepthAvailable(IntPtr callbackContext,TangoXYZij xyzij){

            try {

                if(xyzij.color_image != null){

                    Debug.Log ("_OnDepthAvailable: Copying image");

                    //IntPtr timage = xyzij.color_image;

                    Debug.Log ("_OnDepthAvailable: Copying image 700");
                    //1280x720x3

                    int maxsize = 1280*720*4;

// 我发现在 stackoverflow 问题中提到来自 C API 的预期图像是 1280x720x3 (? or 4=RGBA?) // maxsize = 900;

                    lastimage = new byte[maxsize];

                for(int i=0;i<1280;i++){

                        byte b = Marshal.ReadByte(xyzij.color_image,i);

                        Debug.Log ("_OnDepthAvailable: i:"+i+" checking color_image: "+ b);

                    }

// 对于每次深度采集,我得到的 Debug.Log 打印输出高达 899...

                    Marshal.Copy(xyzij.color_image,lastimage, 0, maxsize);

// 对于 maxsize 大于 900 的任何值,我的 Marshal.Copy 都会失败,但在 900 处运行愉快

                    Debug.Log ("_OnDepthAvailable: Copying image 709");
                    string strRequest = Encoding.UTF8.GetString(lastimage);

// 试图查看它是否是正在导出的字符串,它只是空白...

我在这里想念什么?

4

1 回答 1

0

XYZij 中的彩色图像缓冲区目前不可用,它打算作为时间同步图像。900 字节的缓冲区可能只是内存中的一些伪影。

于 2015-02-23T18:30:53.550 回答