Tango - Unity - 深度:xyzij.color_image现在非NULL! - 但只有900字节长?

时间:2015-02-16 14:02:11

标签: google-project-tango

今天早上我注意到" H"更新Tango Core,Unity SDK现在看到了#34;非null"从深度数据返回的color_image!进展!

然而它只填充了900字节的数据?这将是一个非常小的形象。 :)

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

代码:

protected override void _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(?或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,我的Marshal.Copy对于任何大于900的值都会失败,但是在900

时运行愉快
                    Debug.Log ("_OnDepthAvailable: Copying image 709");
                    string strRequest = Encoding.UTF8.GetString(lastimage);

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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

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