Added getScale/setScale for image warpers (stitching module)
authorAlexey Spizhevoy <alexey.spizhevoy@itseez.com>
Mon, 13 Aug 2012 10:35:31 +0000 (14:35 +0400)
committerAlexey Spizhevoy <alexey.spizhevoy@itseez.com>
Mon, 13 Aug 2012 10:39:47 +0000 (14:39 +0400)
modules/stitching/include/opencv2/stitching/detail/warpers.hpp
modules/stitching/include/opencv2/stitching/stitcher.hpp
samples/cpp/CMakeLists.txt

index 645049c..7ba8e7d 100644 (file)
@@ -65,11 +65,13 @@ public:
     virtual Point warp(const Mat &src, const Mat &K, const Mat &R, int interp_mode, int border_mode,\r
                        Mat &dst) = 0;\r
 \r
-    // TODO add other backward functions for consistency or move this into a separated interface\r
     virtual void warpBackward(const Mat &src, const Mat &K, const Mat &R, int interp_mode, int border_mode,\r
                               Size dst_size, Mat &dst) = 0;\r
 \r
     virtual Rect warpRoi(Size src_size, const Mat &K, const Mat &R) = 0;\r
+\r
+    virtual float getScale() const { return 1.f; }\r
+    virtual void setScale(float) {}\r
 };\r
 \r
 \r
@@ -104,6 +106,9 @@ public:
 \r
     Rect warpRoi(Size src_size, const Mat &K, const Mat &R);\r
 \r
+    float getScale() const { return projector_.scale; }\r
+    void setScale(float val) { projector_.scale = val; }\r
+\r
 protected:\r
 \r
     // Detects ROI of the destination image. It's correct for any projection.\r
@@ -129,8 +134,6 @@ class CV_EXPORTS PlaneWarper : public RotationWarperBase<PlaneProjector>
 public:\r
     PlaneWarper(float scale = 1.f) { projector_.scale = scale; }\r
 \r
-    void setScale(float scale) { projector_.scale = scale; }\r
-\r
     Point2f warpPoint(const Point2f &pt, const Mat &K, const Mat &R, const Mat &T);\r
 \r
     Rect buildMaps(Size src_size, const Mat &K, const Mat &R, const Mat &T, Mat &xmap, Mat &ymap);\r
@@ -225,12 +228,12 @@ struct CV_EXPORTS CompressedRectilinearProjector : ProjectorBase
 class CV_EXPORTS CompressedRectilinearWarper : public RotationWarperBase<CompressedRectilinearProjector>\r
 {\r
 public:\r
-   CompressedRectilinearWarper(float scale, float A = 1, float B = 1)\r
-   {\r
-          projector_.a = A;\r
-          projector_.b = B;\r
-          projector_.scale = scale;\r
-   }\r
+    CompressedRectilinearWarper(float scale, float A = 1, float B = 1)\r
+    {\r
+        projector_.a = A;\r
+        projector_.b = B;\r
+        projector_.scale = scale;\r
+    }\r
 };\r
 \r
 \r
@@ -250,7 +253,7 @@ public:
    {\r
           projector_.a = A;\r
           projector_.b = B;\r
-          projector_.scale = scale;\r
+       projector_.scale = scale;\r
    }\r
 };\r
 \r
@@ -271,7 +274,7 @@ public:
    {\r
           projector_.a = A;\r
           projector_.b = B;\r
-          projector_.scale = scale;\r
+       projector_.scale = scale;\r
    }\r
 };\r
 \r
@@ -292,7 +295,7 @@ public:
    {\r
           projector_.a = A;\r
           projector_.b = B;\r
-          projector_.scale = scale;\r
+       projector_.scale = scale;\r
    }\r
 \r
 };\r
index c535c52..e274deb 100644 (file)
@@ -64,15 +64,6 @@ public:
     // Creates stitcher with default parameters
     static Stitcher createDefault(bool try_use_gpu = false);
 
-    Status estimateTransform(InputArray images);
-    Status estimateTransform(InputArray images, const std::vector<std::vector<Rect> > &rois);
-
-    Status composePanorama(OutputArray pano);
-    Status composePanorama(InputArray images, OutputArray pano);
-
-    Status stitch(InputArray images, OutputArray pano);
-    Status stitch(InputArray images, const std::vector<std::vector<Rect> > &rois, OutputArray pano);
-
     double registrationResol() const { return registr_resol_; }
     void setRegistrationResol(double resol_mpx) { registr_resol_ = resol_mpx; }
 
@@ -130,6 +121,19 @@ public:
     const Ptr<detail::Blender> blender() const { return blender_; }
     void setBlender(Ptr<detail::Blender> b) { blender_ = b; }
 
+    Status estimateTransform(InputArray images);
+    Status estimateTransform(InputArray images, const std::vector<std::vector<Rect> > &rois);
+
+    Status composePanorama(OutputArray pano);
+    Status composePanorama(InputArray images, OutputArray pano);
+
+    Status stitch(InputArray images, OutputArray pano);
+    Status stitch(InputArray images, const std::vector<std::vector<Rect> > &rois, OutputArray pano);
+
+    std::vector<int> component() const { return indices_; }
+    std::vector<detail::CameraParams> cameras() const { return cameras_; }
+    double workScale() const { return work_scale_; }
+
 private:
     Stitcher() {}
 
index c2b49a7..04f1220 100644 (file)
@@ -5,13 +5,15 @@
 
 SET(OPENCV_CPP_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc
     opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_photo opencv_nonfree
-    opencv_features2d opencv_calib3d opencv_legacy opencv_contrib opencv_stitching opencv_videostab)
+    opencv_features2d opencv_calib3d opencv_legacy opencv_contrib opencv_stitching opencv_videostab opencv_core_vision_api)
 
 ocv_check_dependencies(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS})
 
+add_definitions(-DENABLE_LOG)
+
 
 if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND)
-  project(cpp_samples)
+  project(core_vision_api_samples)
 
   ocv_include_directories("${OpenCV_SOURCE_DIR}/include")#for opencv.hpp
   ocv_include_modules(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS})