OpenFrameworks を使用するのはこれが初めてです。OpenCV のオプティカル フローを OpenNI のユーザー マスクで動作させるために使用しています。だから骸骨はいらない。必要なのは、OpenNI のユーザー マスクです。
私はOpenNI バージョン 1.5.4.0とNITE バージョン 1.5.2.21を使用しており、Ubuntu Trusty を使用しています。
1 つを除いて、ほとんどの部分が機能します。ユーザー マスクが表示されません。ネイティブの OpenNI のサンプルが機能します。ユーザー アウトラインが表示されます。しかし、OpenFrameworks からは、ユーザー マスクを取得できないようです。
私の OpenFrameworks コードの各ユーザーに対して、次のことができます。
// "user" is an object returned from ofxOpenNI::getTrackedUser
// This actually displays a skeleton:
user.drawSkeleton();
// These two do nothing:
user.drawMask();
user.drawPointCloud();
これは、OpenNI デバイスのデバッグ ビューにも当てはまると思います。
// openNiDevice is an instance of ofxOpenNI
openNiDevice.drawDebug();
これは、RGB カメラと深度カメラをスケルトンで表示していますが、ユーザー マスクは表示されていないと思います。ユーザー アウトラインが均一な深度読み取りと間違われる可能性があるため、完全には明確ではありませんが、そうではないと思います。デバッグ画面でもユーザーマスクはデプスカラーとは違う色になると思います。
描画時に画面にユーザー数を出力すると、ユーザーofxOpenNI
が検出されていることがわかります。また、スケルトンが表示されているので、何かを見ているに違いありません。
繰り返しますが、OpenNI サンプル アプリSample-NiUserTracker
は完璧なアウトラインを提供してくれるので、OpenNI は機能しているに違いありません。
私は何を間違っていますか?