From 1242a6611930f0672f63426d635dc7e9dc001787 Mon Sep 17 00:00:00 2001 From: Lars Glud Date: Sun, 20 Jul 2014 14:49:47 +0200 Subject: [PATCH] Openni2 support --- modules/highgui/CMakeLists.txt | 6 ------ modules/highgui/include/opencv2/highgui.hpp | 5 ----- modules/highgui/include/opencv2/highgui/highgui_c.h | 4 ---- modules/videoio/CMakeLists.txt | 6 ++++++ modules/videoio/include/opencv2/videoio.hpp | 7 +++++-- modules/videoio/include/opencv2/videoio/videoio_c.h | 6 +++++- modules/{highgui => videoio}/src/cap_openni2.cpp | 4 ++-- 7 files changed, 18 insertions(+), 20 deletions(-) rename modules/{highgui => videoio}/src/cap_openni2.cpp (99%) diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index a80fe04408..b0c93a8eba 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -72,12 +72,6 @@ elseif(HAVE_COCOA) list(APPEND HIGHGUI_LIBRARIES "-framework Cocoa") endif() -if(HAVE_OPENNI2) - list(APPEND highgui_srcs src/cap_openni2.cpp) - ocv_include_directories(${OPENNI2_INCLUDE_DIR}) - list(APPEND HIGHGUI_LIBRARIES ${OPENNI2_LIBRARY}) -endif(HAVE_OPENNI2) - if(UNIX) #these variables are set by CHECK_MODULE macro foreach(P ${HIGHGUI_INCLUDE_DIRS}) diff --git a/modules/highgui/include/opencv2/highgui.hpp b/modules/highgui/include/opencv2/highgui.hpp index b23519065e..47b6547e85 100644 --- a/modules/highgui/include/opencv2/highgui.hpp +++ b/modules/highgui/include/opencv2/highgui.hpp @@ -201,9 +201,4 @@ CV_EXPORTS int createButton( const String& bar_name, ButtonCallback on_change, bool initial_button_state = false); } // cv - - CAP_OPENNI2 = 1600 // OpenNI2 (for Kinect) - CAP_PROP_OPENNI_OUTPUT_MODE = 100, - CAP_PROP_OPENNI2_SYNC = 110, - CAP_PROP_OPENNI2_MIRROR = 111 #endif diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h index 34c811d430..f45a71079d 100644 --- a/modules/highgui/include/opencv2/highgui/highgui_c.h +++ b/modules/highgui/include/opencv2/highgui/highgui_c.h @@ -208,10 +208,6 @@ CVAPI(void) cvUpdateWindow(const char* window_name); /****************************************************************************************\ - - CV_CAP_OPENNI2 = 1600 // OpenNI2 (for Kinect) - CV_CAP_PROP_OPENNI2_SYNC = 110, - CV_CAP_PROP_OPENNI2_MIRROR = 111, * Obsolete functions/synonyms * \****************************************************************************************/ diff --git a/modules/videoio/CMakeLists.txt b/modules/videoio/CMakeLists.txt index 2ac7811c75..bba3d33396 100644 --- a/modules/videoio/CMakeLists.txt +++ b/modules/videoio/CMakeLists.txt @@ -78,6 +78,12 @@ if(HAVE_OPENNI) list(APPEND VIDEOIO_LIBRARIES ${OPENNI_LIBRARY}) endif(HAVE_OPENNI) +if(HAVE_OPENNI2) + list(APPEND videoio_srcs src/cap_openni2.cpp) + ocv_include_directories(${OPENNI2_INCLUDE_DIR}) + list(APPEND VIDEOIO_LIBRARIES ${OPENNI2_LIBRARY}) +endif(HAVE_OPENNI2) + if(HAVE_opencv_androidcamera) list(APPEND videoio_srcs src/cap_android.cpp) add_definitions(-DHAVE_ANDROID_NATIVE_CAMERA)#TODO: remove this line diff --git a/modules/videoio/include/opencv2/videoio.hpp b/modules/videoio/include/opencv2/videoio.hpp index a144c65dc0..763c5bd435 100644 --- a/modules/videoio/include/opencv2/videoio.hpp +++ b/modules/videoio/include/opencv2/videoio.hpp @@ -75,7 +75,8 @@ enum { CAP_ANY = 0, // autodetect CAP_AVFOUNDATION = 1200, // AVFoundation framework for iOS (OS X Lion will have the same API) CAP_GIGANETIX = 1300, // Smartek Giganetix GigEVisionSDK CAP_MSMF = 1400, // Microsoft Media Foundation (via videoInput) - CAP_INTELPERC = 1500 // Intel Perceptual Computing SDK + CAP_INTELPERC = 1500, // Intel Perceptual Computing SDK + CAP_OPENNI2 = 1600 // OpenNI2 (for Kinect) }; // generic properties (based on DC1394 properties) @@ -149,7 +150,9 @@ enum { CAP_PROP_OPENNI_OUTPUT_MODE = 100, CAP_PROP_OPENNI_MAX_BUFFER_SIZE = 106, CAP_PROP_OPENNI_CIRCLE_BUFFER = 107, CAP_PROP_OPENNI_MAX_TIME_DURATION = 108, - CAP_PROP_OPENNI_GENERATOR_PRESENT = 109 + CAP_PROP_OPENNI_GENERATOR_PRESENT = 109, + CAP_PROP_OPENNI2_SYNC = 110, + CAP_PROP_OPENNI2_MIRROR = 111 }; // OpenNI shortcats diff --git a/modules/videoio/include/opencv2/videoio/videoio_c.h b/modules/videoio/include/opencv2/videoio/videoio_c.h index 85cb07c73a..0b08d03d9b 100644 --- a/modules/videoio/include/opencv2/videoio/videoio_c.h +++ b/modules/videoio/include/opencv2/videoio/videoio_c.h @@ -104,7 +104,9 @@ enum CV_CAP_GIGANETIX = 1300, // Smartek Giganetix GigEVisionSDK - CV_CAP_INTELPERC = 1500 // Intel Perceptual Computing SDK + CV_CAP_INTELPERC = 1500, // Intel Perceptual Computing + + CV_CAP_OPENNI2 = 1600 // OpenNI2 (for Kinect) }; /* start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*) */ @@ -200,6 +202,8 @@ enum CV_CAP_PROP_OPENNI_MAX_TIME_DURATION = 108, CV_CAP_PROP_OPENNI_GENERATOR_PRESENT = 109, + CV_CAP_PROP_OPENNI2_SYNC = 110, + CV_CAP_PROP_OPENNI2_MIRROR = 111, CV_CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_OUTPUT_MODE, diff --git a/modules/highgui/src/cap_openni2.cpp b/modules/videoio/src/cap_openni2.cpp similarity index 99% rename from modules/highgui/src/cap_openni2.cpp rename to modules/videoio/src/cap_openni2.cpp index 4d12e5eb14..62aacb2faa 100644 --- a/modules/highgui/src/cap_openni2.cpp +++ b/modules/videoio/src/cap_openni2.cpp @@ -481,7 +481,7 @@ bool CvCapture_OpenNI2::setCommonProperty( int propIdx, double propValue ) { case CV_CAP_PROP_OPENNI2_MIRROR: { - bool mirror = propValue > 0 ? true : false; + bool mirror = propValue > 0.0 ? true : false; isSet = color.setMirroringEnabled(mirror) == openni::STATUS_OK; isSet = depth.setMirroringEnabled(mirror) == openni::STATUS_OK; } @@ -492,7 +492,7 @@ bool CvCapture_OpenNI2::setCommonProperty( int propIdx, double propValue ) isSet = setDepthGeneratorProperty( propIdx, propValue ); break; case CV_CAP_PROP_OPENNI2_SYNC: - isSet = device.setDepthColorSyncEnabled(propValue) == openni::STATUS_OK; + isSet = device.setDepthColorSyncEnabled(propValue > 0.0) == openni::STATUS_OK; break; default: CV_Error( CV_StsBadArg, cv::format("Such parameter (propIdx=%d) isn't supported for setting.\n", propIdx) );