0

今朝、Tango Core の「H」アップデートで、Unity SDK が深度データから返された「null 以外の」color_image を認識していることに気付きました! 進捗!

しかし、900バイトのデータしか入っていませんか? かなり小さい画像になります。:)

Tango チーム : C#/Mono で IntPtr にアクセスする方法が間違っているのでしょうか、それとも Unity で color_images を実際に取得するにはまだ時期尚早なのでしょうか?

コード:

保護されたオーバーライド 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);

                    }

// 深度取得ごとに 899 までの Debug.Log 出力を取得します...

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

// 私の Marshal.Copy は、maxsize の値が 900 を超えると失敗しますが、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 に答える