set(the_description "Super Resolution")
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 -Wundef)
-ocv_define_module(superres opencv_imgproc opencv_video OPTIONAL opencv_highgui opencv_gpu opencv_gpuarithm opencv_gpufilters opencv_gpucodec)
+ocv_define_module(superres opencv_imgproc opencv_video
+ OPTIONAL opencv_highgui
+ opencv_gpuarithm opencv_gpufilters opencv_gpuwarping opencv_gpuimgproc opencv_gpuoptflow opencv_gpucodec)
using namespace cv::superres;
using namespace cv::superres::detail;
-#if !defined(HAVE_CUDA) || !defined(HAVE_OPENCV_GPU)
+#if !defined(HAVE_CUDA) || !defined(HAVE_OPENCV_GPUARITHM) || !defined(HAVE_OPENCV_GPUWARPING) || !defined(HAVE_OPENCV_GPUFILTERS)
Ptr<SuperResolution> cv::superres::createSuperResolution_BTVL1_GPU()
{
btvKernelSize_ = 7;
blurKernelSize_ = 5;
blurSigma_ = 0.0;
+
+#ifdef HAVE_OPENCV_GPUOPTFLOW
opticalFlow_ = createOptFlow_Farneback_GPU();
+#else
+ opticalFlow_ = createOptFlow_Farneback();
+#endif
curBlurKernelSize_ = -1;
curBlurSigma_ = -1.0;
//
//M*/
+#include "opencv2/opencv_modules.hpp"
+
+#if defined(HAVE_OPENCV_GPUARITHM) && defined(HAVE_OPENCV_GPUWARPING) && defined(HAVE_OPENCV_GPUFILTERS)
+
#include "opencv2/core/cuda/common.hpp"
#include "opencv2/core/cuda/transform.hpp"
#include "opencv2/core/cuda/vec_traits.hpp"
template void calcBtvRegularization<3>(PtrStepSzb src, PtrStepSzb dst, int ksize);
template void calcBtvRegularization<4>(PtrStepSzb src, PtrStepSzb dst, int ksize);
}
+
+#endif
switch (src.kind())
{
case _InputArray::GPU_MAT:
- #ifdef HAVE_OPENCV_GPU
+ #ifdef HAVE_OPENCV_GPUIMGPROC
gpu::cvtColor(src.getGpuMat(), dst.getGpuMatRef(), code, cn);
#else
CV_Error(cv::Error::StsNotImplemented, "The called functionality is disabled for current build or platform");
///////////////////////////////////////////////////////////////////
// GpuOpticalFlow
-#ifndef HAVE_OPENCV_GPU
+#ifndef HAVE_OPENCV_GPUOPTFLOW
Ptr<DenseOpticalFlowExt> cv::superres::createOptFlow_Farneback_GPU()
{
return Ptr<DenseOpticalFlowExt>();
}
-#else // HAVE_OPENCV_GPU
+#else // HAVE_OPENCV_GPUOPTFLOW
namespace
{
return new DualTVL1_GPU;
}
-#endif // HAVE_OPENCV_GPU
+#endif // HAVE_OPENCV_GPUOPTFLOW
#include "opencv2/video/tracking.hpp"
#include "opencv2/core/private.hpp"
-#ifdef HAVE_OPENCV_GPU
-# include "opencv2/gpu.hpp"
-# include "opencv2/core/gpu_private.hpp"
+#include "opencv2/core/gpu_private.hpp"
+
+#ifdef HAVE_OPENCV_GPUARITHM
+# include "opencv2/gpuarithm.hpp"
+#endif
+
+#ifdef HAVE_OPENCV_GPUWARPING
+# include "opencv2/gpuwarping.hpp"
+#endif
+
+#ifdef HAVE_OPENCV_GPUFILTERS
+# include "opencv2/gpufilters.hpp"
+#endif
+
+#ifdef HAVE_OPENCV_GPUIMGPROC
+# include "opencv2/gpuimgproc.hpp"
+#endif
+
+#ifdef HAVE_OPENCV_GPUOPTFLOW
+# include "opencv2/gpuoptflow.hpp"
#endif
#ifdef HAVE_OPENCV_GPUCODEC
RunTest(cv::superres::createSuperResolution_BTVL1());
}
-#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA)
+#if defined(HAVE_CUDA) && defined(HAVE_OPENCV_GPUARITHM) && defined(HAVE_OPENCV_GPUWARPING) && defined(HAVE_OPENCV_GPUFILTERS)
TEST_F(SuperResolution, BTVL1_GPU)
{