From ed6ca0d7fab5381c6aa6062c49c3c99ee828fadb Mon Sep 17 00:00:00 2001 From: Tsukasa Sugiura Date: Wed, 19 Jan 2022 00:47:36 +0900 Subject: [PATCH] Merge pull request #21369 from UnaNancyOwen:fix_uwp Fix support objdetect module for UWP * Fix support objdetect module for UWP * Fix define module for objdetect * Remove conditional compilation from public headers * Add StsNotImplemented for FaceDetectorYN/FaceRecognizerSF * Fix typo error message * Fix error message * coding style, eliminate warnings --- modules/objdetect/CMakeLists.txt | 13 ++++++++++++- modules/objdetect/src/face_detect.cpp | 9 +++++++++ modules/objdetect/src/face_recognize.cpp | 10 ++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/modules/objdetect/CMakeLists.txt b/modules/objdetect/CMakeLists.txt index f4d5b22b74..305211ca0a 100644 --- a/modules/objdetect/CMakeLists.txt +++ b/modules/objdetect/CMakeLists.txt @@ -1,5 +1,16 @@ set(the_description "Object Detection") -ocv_define_module(objdetect opencv_core opencv_imgproc opencv_calib3d opencv_dnn WRAP java objc python js) +ocv_define_module(objdetect + opencv_core + opencv_imgproc + opencv_calib3d + OPTIONAL + opencv_dnn + WRAP + python + java + objc + js +) if(HAVE_QUIRC) get_property(QUIRC_INCLUDE GLOBAL PROPERTY QUIRC_INCLUDE_DIR) diff --git a/modules/objdetect/src/face_detect.cpp b/modules/objdetect/src/face_detect.cpp index a9ca2d8957..10259a32e6 100644 --- a/modules/objdetect/src/face_detect.cpp +++ b/modules/objdetect/src/face_detect.cpp @@ -6,13 +6,16 @@ #include "opencv2/imgproc.hpp" #include "opencv2/core.hpp" +#ifdef HAVE_OPENCV_DNN #include "opencv2/dnn.hpp" +#endif #include namespace cv { +#ifdef HAVE_OPENCV_DNN class FaceDetectorYNImpl : public FaceDetectorYN { public: @@ -273,6 +276,7 @@ private: std::vector priors; }; +#endif Ptr FaceDetectorYN::create(const String& model, const String& config, @@ -283,7 +287,12 @@ Ptr FaceDetectorYN::create(const String& model, const int backend_id, const int target_id) { +#ifdef HAVE_OPENCV_DNN return makePtr(model, config, input_size, score_threshold, nms_threshold, top_k, backend_id, target_id); +#else + CV_UNUSED(model); CV_UNUSED(config); CV_UNUSED(input_size); CV_UNUSED(score_threshold); CV_UNUSED(nms_threshold); CV_UNUSED(top_k); CV_UNUSED(backend_id); CV_UNUSED(target_id); + CV_Error(cv::Error::StsNotImplemented, "cv::FaceDetectorYN requires enabled 'dnn' module."); +#endif } } // namespace cv diff --git a/modules/objdetect/src/face_recognize.cpp b/modules/objdetect/src/face_recognize.cpp index 66271068b2..497303e42b 100644 --- a/modules/objdetect/src/face_recognize.cpp +++ b/modules/objdetect/src/face_recognize.cpp @@ -4,13 +4,17 @@ #include "precomp.hpp" +#include "opencv2/core.hpp" +#ifdef HAVE_OPENCV_DNN #include "opencv2/dnn.hpp" +#endif #include namespace cv { +#ifdef HAVE_OPENCV_DNN class FaceRecognizerSFImpl : public FaceRecognizerSF { public: @@ -173,10 +177,16 @@ private: private: dnn::Net net; }; +#endif Ptr FaceRecognizerSF::create(const String& model, const String& config, int backend_id, int target_id) { +#ifdef HAVE_OPENCV_DNN return makePtr(model, config, backend_id, target_id); +#else + CV_UNUSED(model); CV_UNUSED(config); CV_UNUSED(backend_id); CV_UNUSED(target_id); + CV_Error(cv::Error::StsNotImplemented, "cv::FaceRecognizerSF requires enabled 'dnn' module"); +#endif } } // namespace cv