made objdetect dependecy for gpunvidia optional
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Tue, 9 Apr 2013 08:50:22 +0000 (12:50 +0400)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 18 Apr 2013 07:33:31 +0000 (11:33 +0400)
modules/gpunvidia/CMakeLists.txt
modules/gpunvidia/src/NCV.cpp
modules/gpunvidia/src/cuda/NCVHaarObjectDetection.cu
modules/gpunvidia/src/precomp.hpp

index 7c15424..3f4e4f6 100644 (file)
@@ -6,4 +6,4 @@ set(the_description "GPU-accelerated Computer Vision (HAL module)")
 
 ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef -Wmissing-declarations)
 
-ocv_define_module(gpunvidia opencv_core opencv_objdetect)
+ocv_define_module(gpunvidia opencv_core OPTIONAL opencv_objdetect)
index c31f2a3..be82423 100644 (file)
@@ -737,6 +737,13 @@ struct RectConvert
 
 static void groupRectangles(std::vector<NcvRect32u> &hypotheses, int groupThreshold, double eps, std::vector<Ncv32u> *weights)
 {
+#ifndef HAVE_OPENCV_OBJDETECT
+    (void) hypotheses;
+    (void) groupThreshold;
+    (void) eps;
+    (void) weights;
+    CV_Error(cv::Error::StsNotImplemented, "This functionality requires objdetect module");
+#else
     std::vector<cv::Rect> rects(hypotheses.size());
     std::transform(hypotheses.begin(), hypotheses.end(), rects.begin(), RectConvert());
 
@@ -752,6 +759,7 @@ static void groupRectangles(std::vector<NcvRect32u> &hypotheses, int groupThresh
     }
     std::transform(rects.begin(), rects.end(), hypotheses.begin(), RectConvert());
     hypotheses.resize(rects.size());
+#endif
 }
 
 
index 9ab0194..5296f24 100644 (file)
 
 #include "opencv2/core/cuda/warp.hpp"
 #include "opencv2/core/cuda/warp_shuffle.hpp"
-#include "opencv2/objdetect.hpp"
+
+#include "opencv2/opencv_modules.hpp"
+
+#ifdef HAVE_OPENCV_OBJDETECT
+#  include "opencv2/objdetect.hpp"
+#endif
 
 #include "opencv2/gpunvidia/NCV.hpp"
 #include "opencv2/gpunvidia/NPP_staging.hpp"
@@ -2106,6 +2111,15 @@ static NCVStatus loadFromXML(const cv::String &filename,
                       std::vector<HaarClassifierNode128> &haarClassifierNodes,
                       std::vector<HaarFeature64> &haarFeatures)
 {
+#ifndef HAVE_OPENCV_OBJDETECT
+    (void) filename;
+    (void) haar;
+    (void) haarStages;
+    (void) haarClassifierNodes;
+    (void) haarFeatures;
+    CV_Error(cv::Error::StsNotImplemented, "This functionality requires objdetect module");
+    return NCV_HAAR_XML_LOADING_EXCEPTION;
+#else
     NCVStatus ncvStat;
 
     haar.NumStages = 0;
@@ -2294,6 +2308,7 @@ static NCVStatus loadFromXML(const cv::String &filename,
     }
 
     return NCV_SUCCESS;
+#endif
 }
 
 
index c4e067f..106d0a3 100644 (file)
 
 #include "opencv2/gpunvidia.hpp"
 #include "opencv2/core/utility.hpp"
-#include "opencv2/objdetect.hpp"
+
+#include "opencv2/opencv_modules.hpp"
+
+#ifdef HAVE_OPENCV_OBJDETECT
+#  include "opencv2/objdetect.hpp"
+#endif
 
 #include "opencv2/core/gpu_private.hpp"
 #include "opencv2/gpunvidia/private.hpp"