这是我第一次使用 OpenFrameworks。我正在使用它来让 OpenCV 的光流与来自 OpenNI 的用户掩码一起工作。所以我不需要骨架。我需要的是来自 OpenNI 的用户掩码。
我正在使用OpenNI 版本 1.5.4.0和NITE 版本 1.5.2.21,并且我在 Ubuntu Trusty 上。
大多数部件都可以工作,除了一个:我看不到用户面具。原生 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 必须工作。
我究竟做错了什么?