Kinect v1のdepthデータが予想外の動きをした
わざわざ書くまでもない感じがするが、想定外だったので書いておく。
Kinect v1を使用してdepthデータを取得していろいろしているんだけど、
おそらく日光か何かの反射光がdepthセンサに直接当たる事によって、
想定外の値を出力する可能性があるみたい。
今確認したんだけど、上は20000mm超え、下は-7000mm超えだった。
特にマイナスに行くとは思ってなかったのでこれが原因でプログラムが止まってしまった。
なんつーか、初歩的すぎて恥ずかしくなってくるな……。
Kinect v1とKinect v2の徹底比較[C++] - Build Insider
このページ確認するに、モードにもよるけど最大値が10000mm、最小値が400mmぐらいなので
これに合わせて条件文書いてあげれば良いと思われる。
const int depthLowLimit = 400; const int depthHighLimit = 10000; if (_depthArray[i] > depthLowLimit || _depthArray[i] < depthHighLimit) { //何らかの処理を行う }
うーん。初歩的。恥ずかしい。戒めのためにも書いておく。