2015-09-07 25 views
1

我正在製作一個使用OpenNI 2的C++實用程序。理想情況下,我現在需要設置深度圖像的最小和最大閾值。我在過去使用OpenCV或我自己的圖像處理函數完成了這項工作,在再次採用這種方法之前,我想知道OpenNI中是否有支持本機的功能。OpenNI 2設置最小/最大深度值

查看可下載的文檔(隨OpenNI包一起提供),在VideoStream類中定義了幾個有趣的函數,其中包括OpenNI.h。它們是:

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. 你確認的視頻流是最小和最大像素值是隻讀?
  2. OpenNI在某種程度上是否支持本機設置這些thresdolds?

謝謝您的關注。

+0

到目前爲止您是否找到答案? – zhangxaochen

+0

不,不幸的。在OpenNI中似乎沒有辦法從源頭設置這些閾值。您必須通過OpenCV進行操作或製作您自己的閾值過濾器。 – SteakOverflow

回答

1

我正面臨類似的問題,即設置特定設備的maxDepthVlaue。狀態總是作爲失敗返回。但是,當您運行isPropertySupported(openni :: STREAM_PROPERTY_MAX_VALUE)時,它將返回true。所以有一個內部的方法來設置最大深度值。不太清楚那是什麼。

相關問題