根據微軟資料顯示,kinect v2的深度幀資料為0.5m-8m,每一幀的大小為512*424(pixel),每一畫素點的深度值存放在乙個16位bit的ushort中。
這裡的深度是指畫素點到kinect sensor平面的距離,網上有資料說資料的前13位表示距離,後3位表示使用者id,也有說12+4的,但根據我獲得的原始
資料顯示,並沒有使用者id位,全都是表示距離的。
下面介紹一下在unity5.6中獲取深度資料並當紋理顯示在一遊戲物件上的過程,離sensor越近則顏色越紅,越遠則越綠。
首先定義變數
private kinectsensor _sensor; //kincet感測器在start方法中初始化各變數private depthframereader _depthreader; //深度幀讀取器
private ushort _depthdata; //因為深度資料為2位元組16bit,所以定為ushort存放資料
private texture2d _texture;
private color pixelcolor; //根據每個畫素點的深度,賦予顏色
private int nearthreshold; //最近的有效探測距離
private int farthreshold; //最遠的有效探測距離
_sensor =kinectsensor.getdefault ();定義depth2colortexture(),並根據各畫素點的深度值,賦值不同的顏色,更新紋理if (_sensor != null
)
if (!_sensor.isopen)
_sensor.open ();
void在update中獲取深度幀資料,並呼叫depth2colortexture方法顯示。depth2colortexture()
else
if (data > farthreshold)
else
}_texture.setpixels (pixelcolor);
getcomponent
().material.maintexture =_texture;
}
if (_depthreader == null最後,當整個程式退出時,銷毀sensor和reader)
return
;
var frame =_depthreader.acquirelatestframe ();
if (frame != null
)
void效果如圖所示if (_sensor != null
) _sensor = null
; }
}
Kinect 深度資料
kinect兩側的感測器負責獲取深度資料 深度資料是指kinect視野範圍內的物體到kinect的三維空間距離。深度資料流提供了一種結構 該結構中每個畫素的高13位表示在深度感測器的視野範圍內離特定座標物體最近的距離。在kinect sdk中,通過處理深度資料來識別感測器組前的兩個人體影象。從程式中...
Kinect深度資料文字分析
深度值計算公式 depth pixeldata i depthimageframe.playerindexbitmaskwidth 解析 pixeldata存放的是short型資料,原始資料為二進位制,2個位元組,16位。在vs中以十進位制方式顯示 depthimageframe.playerind...
Kinect顯示彩色資料流和深度資料流
1.勾選computer color map 2.新建乙個rawimage,彩色資料流將顯示在這個rawimage上 3.編寫指令碼usekinectmanager public rawimage rawimage void update 4.執行後,是顛倒過來的,需要將scale中的y變成 1 1...