From 2981ee00d97811d50727635ae58a24d955724fe4 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Sat, 8 Nov 2014 02:21:59 +0300 Subject: [PATCH 1/2] OpenNI2: prevent failure of setVideoMode() call with invalid parameters Not all parameters are specified for openni::VideoMode, so "selected" mode can be unsupported for device. Replace default VideoMode constructor to result of getVideoMode() call. --- modules/videoio/src/cap_openni2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/videoio/src/cap_openni2.cpp b/modules/videoio/src/cap_openni2.cpp index 62aacb2faa..8fea1bdb26 100644 --- a/modules/videoio/src/cap_openni2.cpp +++ b/modules/videoio/src/cap_openni2.cpp @@ -646,7 +646,7 @@ bool CvCapture_OpenNI2::setImageGeneratorProperty(int propIdx, double propValue) { case CV_CAP_PROP_OPENNI_OUTPUT_MODE : { - openni::VideoMode mode; + openni::VideoMode mode = color.getVideoMode(); switch( cvRound(propValue) ) { From 2e05f1e3f8581554be7713fedc3b5addb25e73c3 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Sat, 8 Nov 2014 02:22:17 +0300 Subject: [PATCH 2/2] openni_capture sample: enable OpenNI2 if available Sample works with OpenNI2 with minimal code changes (CAP_OPENNI -> CAP_OPENNI2) --- samples/cpp/openni_capture.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/samples/cpp/openni_capture.cpp b/samples/cpp/openni_capture.cpp index 76b092298a..64aa90bc69 100644 --- a/samples/cpp/openni_capture.cpp +++ b/samples/cpp/openni_capture.cpp @@ -192,7 +192,11 @@ int main( int argc, char* argv[] ) if( isVideoReading ) capture.open( filename ); else - capture.open( CAP_OPENNI ); + { + capture.open( CAP_OPENNI2 ); + if( !capture.isOpened() ) + capture.open( CAP_OPENNI ); + } cout << "done." << endl;