私のアプリケーションでは、Depth Basics Sampleから取得したデプスフレームと同様のデプスフレームを取得しています。私が理解していないことは、なぜイメージに個別のレベルがあるのでしょうか?私はこれらの急激な深さの変化を何と呼ぶのか分かりません。明らかに私の右手の半分はすべて黒で、左手は3つのレベルに分けられているようです。これは何ですか?これをどのように削除しますか?Kinect Depth Image
Kinect Depth Basics Sample http://i46.tinypic.com/2hwekxd.jpg
私はKinectExplorerサンプルアプリを実行すると、以下のように私は深さを取得します。これは、生の奥行きデータから生成したい奥行き画像です。
Kinect Explorer http://i50.tinypic.com/2rwx1z5.jpg
私はOpenCVのに伴い、マイクロソフトのKinect SDKの(バージョン1.6)NuiApiを使用しています。私は、次のコードを持っている:
BYTE *pBuffer = (BYTE*)depthLockedRect.pBits; //pointer to data having 8-bit jump
USHORT *depthBuffer = (USHORT*) pBuffer; //pointer to data having 16-bit jump
int cn = 4;
this->depthFinal = cv::Mat::zeros(depthHeight,depthWidth,CV_8UC4); //8bit 4 channel
for(int i=0;i<this->depthFinal.rows;i++){
for(int j=0;j<this->depthFinal.cols;j++){
USHORT realdepth = ((*depthBuffer)&0x0fff); //Taking 12LSBs for depth
BYTE intensity = (BYTE)((255*realdepth)/0x0fff); //Scaling to 255 scale grayscale
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 0] = intensity;
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 1] = intensity;
this->depthFinal.data[i*this->depthFinal.cols*cn + j*cn + 2] = intensity;
depthBuffer++;
}
}
画像をもう一度確認してください。画像が表示されません。 –
イメージのURLを変更しました。もう一度チェック。 – thinkquester
'' cn''は本当に '' 4''ではなく '' 3''でなくてはなりませんか?また、実際に画像を出力する場所を知るためには気が散っています。 – Tim