今天早上我注意到" 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);
//试图查看它是否是导出的字符串,它只是空白......
我在这里缺少什么?
答案 0 :(得分:0)
XYZij中的彩色图像缓冲区当前不可用,它打算成为时间同步图像。 900字节的缓冲区可能只是内存中的一些工件。