我正在制作一个使用OpenNI 2的C ++实用程序。理想情况下,我现在需要设置深度图像的最小和最大阈值。我过去使用OpenCV或我自己的图像处理功能这样做,在再次使用这种方式之前,我想知道OpenNI中是否有一个本机支持这个功能。
看一下可下载的文档(OpenNI包附带),在 OpenNI.h 中的VideoStream类中定义了一些有趣的函数。这些是:
int VideoStream::getMinPixelValue()
int VideoStream::getMaxPixelValue()
返回我需要的当前限制;这些似乎是硬件读数。尽管如此,VideoStream类还公开了 setProperty 函数,该函数允许设置 oniProperties.h 中定义的值列表中的一个属性。
由于文档和该文件中的注释都没有指定一个属性是否为只读,我尝试通过执行
来写入最小值和最大值。myVideoStream.setProperty<int>(openni::STREAM_PROPERTY_MIN_VALUE, myIntMinValue);
myVideoStream.setProperty<int>(openni::STREAM_PROPERTY_MAX_VALUE, myIntMaxValue);
因此,值不会改变。
我的问题是:
感谢您的关注。
答案 0 :(得分:1)
我面临类似的问题,即设置特定设备的maxDepthVlaue。状态始终作为失败返回。但是,当您运行isPropertySupported(openni :: STREAM_PROPERTY_MAX_VALUE)时,它将返回true。因此,有一种内部方法可以设置最大深度值。不过不知道那是什么。