OpenNI 2设置最小/最大深度值

时间:2015-09-07 10:43:23

标签: openni

我正在制作一个使用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);

因此,值不会改变

我的问题是:

  1. 您是否确认VideoStream中的最小和最大像素值是只读的?
  2. OpenNI在某种程度上是否支持设置这些thresdolds?
  3. 感谢您的关注。

1 个答案:

答案 0 :(得分:1)

我面临类似的问题,即设置特定设备的maxDepthVlaue。状态始终作为失败返回。但是,当您运行isPropertySupported(openni :: STREAM_PROPERTY_MAX_VALUE)时,它将返回true。因此,有一种内部方法可以设置最大深度值。不过不知道那是什么。