我今天早上注意到 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);
// 试图查看它是否是正在导出的字符串,它只是空白...
我在这里想念什么?