R200はセグメンテーション機能が使えないので、depthを使って自分で実装することにしました。
自力でセグメンテーション
- カラー画像とDepth画像を取得する
- Depth画像をカラー座標系に座標変換する
- パーソントラッキング機能で、カラー画像から人物の中心位置を取得する
- 人物の中心位置のdepthをもとに、前後50cm以外の箇所をカラー画像から取り除く
ざっくりですが、こんな感じになりました。
エッジ部分があらい、ブロブの内部も除去されてる、遅い。このあたりを改善したいです。
座標変換
カラー画像とDepth画像はカメラの位置がずれてるので、併せて使う場合は座標変換をする必要があります。今回はDepth画像の座標系をカラー画像に変換しました。
座標変換用のクラス「PXCProjection」を使います。
使い方は、こちらのサイトが参考になりました。
あと、RSDKのサンプルにある「Projection」も参考になります。