Fixed Android build of new videostab module
authorAndrey Kamaev <no@email>
Mon, 19 Mar 2012 14:21:15 +0000 (14:21 +0000)
committerAndrey Kamaev <no@email>
Mon, 19 Mar 2012 14:21:15 +0000 (14:21 +0000)
modules/videostab/CMakeLists.txt
modules/videostab/include/opencv2/videostab/fast_marching.hpp
modules/videostab/include/opencv2/videostab/optical_flow.hpp
modules/videostab/src/inpainting.cpp
modules/videostab/src/optical_flow.cpp

index 912c00d..56dbae2 100644 (file)
@@ -1,3 +1,3 @@
 set(the_description "Video stabilization")
-ocv_define_module(videostab opencv_imgproc opencv_features2d opencv_video OPTIONAL opencv_gpu)
+ocv_define_module(videostab opencv_imgproc opencv_features2d opencv_video opencv_highgui OPTIONAL opencv_gpu)
 
index c1b841f..b8c1222 100644 (file)
@@ -72,7 +72,7 @@ private:
         float dist;
         int x, y;
 
-        DXY() {}
+        DXY() : dist(0), x(0), y(0) {}
         DXY(float dist, int x, int y) : dist(dist), x(x), y(y) {}
         bool operator <(const DXY &dxy) const { return dist < dxy.dist; }
     };
index 2e55719..4da2fe7 100644 (file)
 #define __OPENCV_VIDEOSTAB_OPTICAL_FLOW_HPP__
 
 #include "opencv2/core/core.hpp"
-#include "opencv2/gpu/gpu.hpp"
+#include "opencv2/opencv_modules.hpp"
+
+#if HAVE_OPENCV_GPU
+#  include "opencv2/gpu/gpu.hpp"
+#endif
 
 namespace cv
 {
@@ -94,6 +98,7 @@ public:
             OutputArray status, OutputArray errors);
 };
 
+#if HAVE_OPENCV_GPU
 class DensePyrLkOptFlowEstimatorGpu
         : public PyrLkOptFlowEstimatorBase, public IDenseOptFlowEstimator
 {
@@ -107,6 +112,7 @@ private:
     gpu::PyrLKOpticalFlow optFlowEstimator_;
     gpu::GpuMat frame0_, frame1_, flowX_, flowY_, errors_;
 };
+#endif
 
 } // namespace videostab
 } // namespace cv
index 8486cf4..9b6a500 100644 (file)
@@ -246,7 +246,11 @@ public:
 
 MotionInpainter::MotionInpainter()
 {
+#if HAVE_OPENCV_GPU
     setOptFlowEstimator(new DensePyrLkOptFlowEstimatorGpu());
+#else
+    CV_Error( CV_StsNotImplemented, "Current implementation of MotionInpainter requires GPU" );
+#endif
     setFlowErrorThreshold(1e-4f);
     setBorderMode(BORDER_REPLICATE);
 }
index ef360cc..083c0e0 100644 (file)
@@ -41,7 +41,6 @@
 //M*/
 
 #include "precomp.hpp"
-#include "opencv2/gpu/gpu.hpp"
 #include "opencv2/video/video.hpp"
 #include "opencv2/videostab/optical_flow.hpp"
 
@@ -60,6 +59,7 @@ void SparsePyrLkOptFlowEstimator::run(
 }
 
 
+#if HAVE_OPENCV_GPU
 DensePyrLkOptFlowEstimatorGpu::DensePyrLkOptFlowEstimatorGpu()
 {
     CV_Assert(gpu::getCudaEnabledDeviceCount() > 0);
@@ -86,6 +86,7 @@ void DensePyrLkOptFlowEstimatorGpu::run(
     flowX_.download(flowX.getMatRef());
     flowY_.download(flowY.getMatRef());
 }
+#endif
 
 
 } // namespace videostab