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
\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
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
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
{\r
projector_.a = A;\r
projector_.b = B;\r
- projector_.scale = scale;\r
+ projector_.scale = scale;\r
}\r
};\r
\r
{\r
projector_.a = A;\r
projector_.b = B;\r
- projector_.scale = scale;\r
+ projector_.scale = scale;\r
}\r
};\r
\r
{\r
projector_.a = A;\r
projector_.b = B;\r
- projector_.scale = scale;\r
+ projector_.scale = scale;\r
}\r
\r
};\r
// 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; }
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() {}
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})