|
|
@ -55,7 +55,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
namespace cv { |
|
|
|
namespace cv { |
|
|
|
|
|
|
|
|
|
|
|
class CV_EXPORTS Stitcher |
|
|
|
class CV_EXPORTS_W Stitcher |
|
|
|
{ |
|
|
|
{ |
|
|
|
public: |
|
|
|
public: |
|
|
|
enum { ORIG_RESOL = -1 }; |
|
|
|
enum { ORIG_RESOL = -1 }; |
|
|
@ -67,23 +67,24 @@ public: |
|
|
|
ERR_CAMERA_PARAMS_ADJUST_FAIL = 3 |
|
|
|
ERR_CAMERA_PARAMS_ADJUST_FAIL = 3 |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Stitcher() {}
|
|
|
|
// Creates stitcher with default parameters
|
|
|
|
// Creates stitcher with default parameters
|
|
|
|
static Stitcher createDefault(bool try_use_gpu = false); |
|
|
|
static Stitcher createDefault(bool try_use_gpu = false); |
|
|
|
|
|
|
|
|
|
|
|
double registrationResol() const { return registr_resol_; } |
|
|
|
CV_WRAP double registrationResol() const { return registr_resol_; } |
|
|
|
void setRegistrationResol(double resol_mpx) { registr_resol_ = resol_mpx; } |
|
|
|
CV_WRAP void setRegistrationResol(double resol_mpx) { registr_resol_ = resol_mpx; } |
|
|
|
|
|
|
|
|
|
|
|
double seamEstimationResol() const { return seam_est_resol_; } |
|
|
|
CV_WRAP double seamEstimationResol() const { return seam_est_resol_; } |
|
|
|
void setSeamEstimationResol(double resol_mpx) { seam_est_resol_ = resol_mpx; } |
|
|
|
CV_WRAP void setSeamEstimationResol(double resol_mpx) { seam_est_resol_ = resol_mpx; } |
|
|
|
|
|
|
|
|
|
|
|
double compositingResol() const { return compose_resol_; } |
|
|
|
CV_WRAP double compositingResol() const { return compose_resol_; } |
|
|
|
void setCompositingResol(double resol_mpx) { compose_resol_ = resol_mpx; } |
|
|
|
CV_WRAP void setCompositingResol(double resol_mpx) { compose_resol_ = resol_mpx; } |
|
|
|
|
|
|
|
|
|
|
|
double panoConfidenceThresh() const { return conf_thresh_; } |
|
|
|
CV_WRAP double panoConfidenceThresh() const { return conf_thresh_; } |
|
|
|
void setPanoConfidenceThresh(double conf_thresh) { conf_thresh_ = conf_thresh; } |
|
|
|
CV_WRAP void setPanoConfidenceThresh(double conf_thresh) { conf_thresh_ = conf_thresh; } |
|
|
|
|
|
|
|
|
|
|
|
bool waveCorrection() const { return do_wave_correct_; } |
|
|
|
CV_WRAP bool waveCorrection() const { return do_wave_correct_; } |
|
|
|
void setWaveCorrection(bool flag) { do_wave_correct_ = flag; } |
|
|
|
CV_WRAP void setWaveCorrection(bool flag) { do_wave_correct_ = flag; } |
|
|
|
|
|
|
|
|
|
|
|
detail::WaveCorrectKind waveCorrectKind() const { return wave_correct_kind_; } |
|
|
|
detail::WaveCorrectKind waveCorrectKind() const { return wave_correct_kind_; } |
|
|
|
void setWaveCorrectKind(detail::WaveCorrectKind kind) { wave_correct_kind_ = kind; } |
|
|
|
void setWaveCorrectKind(detail::WaveCorrectKind kind) { wave_correct_kind_ = kind; } |
|
|
@ -127,21 +128,21 @@ public: |
|
|
|
const Ptr<detail::Blender> blender() const { return blender_; } |
|
|
|
const Ptr<detail::Blender> blender() const { return blender_; } |
|
|
|
void setBlender(Ptr<detail::Blender> b) { blender_ = b; } |
|
|
|
void setBlender(Ptr<detail::Blender> b) { blender_ = b; } |
|
|
|
|
|
|
|
|
|
|
|
Status estimateTransform(InputArrayOfArrays images); |
|
|
|
CV_WRAP Status estimateTransform(InputArrayOfArrays images); |
|
|
|
Status estimateTransform(InputArrayOfArrays images, const std::vector<std::vector<Rect> > &rois); |
|
|
|
Status estimateTransform(InputArrayOfArrays images, const std::vector<std::vector<Rect> > &rois); |
|
|
|
|
|
|
|
|
|
|
|
Status composePanorama(OutputArray pano); |
|
|
|
CV_WRAP Status composePanorama(OutputArray pano); |
|
|
|
Status composePanorama(InputArrayOfArrays images, OutputArray pano); |
|
|
|
Status composePanorama(InputArrayOfArrays images, OutputArray pano); |
|
|
|
|
|
|
|
|
|
|
|
Status stitch(InputArrayOfArrays images, OutputArray pano); |
|
|
|
CV_WRAP Status stitch(InputArrayOfArrays images, OutputArray pano); |
|
|
|
Status stitch(InputArrayOfArrays images, const std::vector<std::vector<Rect> > &rois, OutputArray pano); |
|
|
|
Status stitch(InputArrayOfArrays images, const std::vector<std::vector<Rect> > &rois, OutputArray pano); |
|
|
|
|
|
|
|
|
|
|
|
std::vector<int> component() const { return indices_; } |
|
|
|
std::vector<int> component() const { return indices_; } |
|
|
|
std::vector<detail::CameraParams> cameras() const { return cameras_; } |
|
|
|
std::vector<detail::CameraParams> cameras() const { return cameras_; } |
|
|
|
double workScale() const { return work_scale_; } |
|
|
|
CV_WRAP double workScale() const { return work_scale_; } |
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
|
private: |
|
|
|
Stitcher() {} |
|
|
|
//Stitcher() {}
|
|
|
|
|
|
|
|
|
|
|
|
Status matchImages(); |
|
|
|
Status matchImages(); |
|
|
|
Status estimateCameraParams(); |
|
|
|
Status estimateCameraParams(); |
|
|
@ -175,6 +176,8 @@ private: |
|
|
|
double warped_image_scale_; |
|
|
|
double warped_image_scale_; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CV_EXPORTS_W Ptr<Stitcher> createStitcher(bool try_use_gpu = false); |
|
|
|
|
|
|
|
|
|
|
|
} // namespace cv
|
|
|
|
} // namespace cv
|
|
|
|
|
|
|
|
|
|
|
|
#endif // __OPENCV_STITCHING_STITCHER_HPP__
|
|
|
|
#endif // __OPENCV_STITCHING_STITCHER_HPP__
|
|
|
|