Class cv::detail::BundleAdjusterReproj#

Implementation of the camera parameters refinement algorithm which minimizes sum of the reprojection error squares. View details

Collaboration diagram for cv::detail::BundleAdjusterReproj:

cv::detail::BundleAdjusterReproj Node1 cv::detail::BundleAdjuster Reproj   + BundleAdjusterReproj() Node2 cv::detail::BundleAdjusterBase   + confThresh() + refinementMask() + setConfThresh() + setRefinementMask() + setTermCriteria() + termCriteria() # BundleAdjusterBase() # calcError() # calcJacobian() # estimate() # obtainRefinedCameraParams() # setUpInitialCameraParams() Node2->Node1 Node3 cv::detail::Estimator   + ~Estimator() + operator()() # estimate() Node3->Node2 Node4 cv::Mat   + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() and 152 more... + diag() + eye() + eye() + getDefaultAllocator() + getStdAllocator() + ones() + ones() + ones() + ones() + setDefaultAllocator() + zeros() + zeros() + zeros() + zeros() # forEach_impl() Node4->Node2 #cam_params_ #refinement_mask_ Node24 cv::detail::MatchesInfo   + MatchesInfo() + MatchesInfo() + getInliers() + getMatches() + operator=() Node4->Node24 +H Node5 int     Node5->Node2 #num_errs_per_measurement _ #num_images_ #num_params_per _cam_ #total_num_matches_ Node5->Node4 +cols +dims +dummy +flags +rows Node11 cv::detail::ImageFeatures   + getKeypoints() Node5->Node11 +img_idx Node15 cv::KeyPoint   + KeyPoint() + KeyPoint() + KeyPoint() + hash() + convert() + convert() + overlap() Node5->Node15 +class_id +octave Node21 cv::UMat   + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() and 67 more... + diag() + eye() + eye() + getStdAllocator() + ones() + ones() + ones() + ones() + zeros() + zeros() + zeros() + zeros() Node5->Node21 +cols +dims +flags +rows Node5->Node24 +dst_img_idx +num_inliers +src_img_idx Node26 cv::DMatch   + DMatch() + DMatch() + DMatch() + operator<() Node5->Node26 +imgIdx +queryIdx +trainIdx Node29 cv::TermCriteria   + TermCriteria() + TermCriteria() + TermCriteria() + isValid() Node5->Node29 +maxCount +type Node31 std::pair< int, int >     Node5->Node31 +first_type +second_type Node6 uint8_t     Node6->Node4 +data +dataend +datalimit +datastart Node27 std::vector< uchar >     Node6->Node27 +elements Node7 cv::MatAllocator   + MatAllocator() + ~MatAllocator() + allocate() + allocate() + copy() + deallocate() + download() + getBufferPoolController() + map() + unmap() + upload() Node7->Node4 +allocator Node7->Node21 +allocator Node8 UMatData *     Node8->Node4 +u Node8->Node21 +u Node9 MatSize     Node9->Node4 +size Node9->Node21 +size Node10 MatStep     Node10->Node4 +step Node10->Node21 +step Node11->Node2 #features_ Node12 cv::Size_< _Tp >   + Size_() + Size_() + Size_() + Size_() + Size_() + area() + aspectRatio() + empty() + operator Size_< _Tp2 >() + operator=() + operator=() Node12->Node11 +img_size Node13 _Tp     Node13->Node12 +height +width Node18 cv::Point_< _Tp >   + Point_() + Point_() + Point_() + Point_() + Point_() + Point_() + cross() + ddot() + dot() + inside() + operator Point_< _Tp2 >() + operator Vec< _Tp, 2 >() + operator=() + operator=() Node13->Node18 +x +y Node14 std::vector< cv::KeyPoint >     Node14->Node11 +keypoints Node15->Node14 +elements Node16 cv::Point_< float >   + Point_() + Point_() + Point_() + Point_() + Point_() + Point_() + cross() + ddot() + dot() + inside() + operator Point_< _Tp2 >() + operator Vec< float, 2 >() + operator=() + operator=() Node16->Node15 +pt Node17 float     Node17->Node15 +angle +response +size Node17->Node16 +x +y Node17->Node26 +distance Node18->Node16 < float > Node19 std::vector< T >     Node19->Node14 < cv::KeyPoint > Node25 std::vector< cv::DMatch >     Node19->Node25 < cv::DMatch > Node19->Node27 < uchar > Node30 std::vector< std::pair < int, int > >     Node19->Node30 < std::pair< int, int > > Node20 T     Node20->Node19 +elements Node21->Node11 +descriptors Node22 UMatUsageFlags     Node22->Node21 +usageFlags Node23 size_t     Node23->Node21 +offset Node24->Node2 #pairwise_matches_ Node25->Node24 +matches Node26->Node25 +elements Node27->Node24 +inliers_mask Node28 double     Node28->Node2 #conf_thresh_ Node28->Node24 +confidence Node28->Node29 +epsilon Node29->Node2 #term_criteria_ Node30->Node2 #edges_ Node31->Node30 +elements Node32 std::pair< T1, T2 >     Node32->Node31 < int, int > Node33 T1     Node33->Node32 +first_type Node34 T2     Node34->Node32 +second_type

cv::detail::BundleAdjusterReproj Node1 cv::detail::BundleAdjuster Reproj   + BundleAdjusterReproj() Node2 cv::detail::BundleAdjusterBase   + confThresh() + refinementMask() + setConfThresh() + setRefinementMask() + setTermCriteria() + termCriteria() # BundleAdjusterBase() # calcError() # calcJacobian() # estimate() # obtainRefinedCameraParams() # setUpInitialCameraParams() Node2->Node1 Node3 cv::detail::Estimator   + ~Estimator() + operator()() # estimate() Node3->Node2 Node4 cv::Mat   + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() + Mat() and 152 more... + diag() + eye() + eye() + getDefaultAllocator() + getStdAllocator() + ones() + ones() + ones() + ones() + setDefaultAllocator() + zeros() + zeros() + zeros() + zeros() # forEach_impl() Node4->Node2 #cam_params_ #refinement_mask_ Node24 cv::detail::MatchesInfo   + MatchesInfo() + MatchesInfo() + getInliers() + getMatches() + operator=() Node4->Node24 +H Node5 int     Node5->Node2 #num_errs_per_measurement _ #num_images_ #num_params_per _cam_ #total_num_matches_ Node5->Node4 +cols +dims +dummy +flags +rows Node11 cv::detail::ImageFeatures   + getKeypoints() Node5->Node11 +img_idx Node15 cv::KeyPoint   + KeyPoint() + KeyPoint() + KeyPoint() + hash() + convert() + convert() + overlap() Node5->Node15 +class_id +octave Node21 cv::UMat   + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() + UMat() and 67 more... + diag() + eye() + eye() + getStdAllocator() + ones() + ones() + ones() + ones() + zeros() + zeros() + zeros() + zeros() Node5->Node21 +cols +dims +flags +rows Node5->Node24 +dst_img_idx +num_inliers +src_img_idx Node26 cv::DMatch   + DMatch() + DMatch() + DMatch() + operator<() Node5->Node26 +imgIdx +queryIdx +trainIdx Node29 cv::TermCriteria   + TermCriteria() + TermCriteria() + TermCriteria() + isValid() Node5->Node29 +maxCount +type Node31 std::pair< int, int >     Node5->Node31 +first_type +second_type Node6 uint8_t     Node6->Node4 +data +dataend +datalimit +datastart Node27 std::vector< uchar >     Node6->Node27 +elements Node7 cv::MatAllocator   + MatAllocator() + ~MatAllocator() + allocate() + allocate() + copy() + deallocate() + download() + getBufferPoolController() + map() + unmap() + upload() Node7->Node4 +allocator Node7->Node21 +allocator Node8 UMatData *     Node8->Node4 +u Node8->Node21 +u Node9 MatSize     Node9->Node4 +size Node9->Node21 +size Node10 MatStep     Node10->Node4 +step Node10->Node21 +step Node11->Node2 #features_ Node12 cv::Size_< _Tp >   + Size_() + Size_() + Size_() + Size_() + Size_() + area() + aspectRatio() + empty() + operator Size_< _Tp2 >() + operator=() + operator=() Node12->Node11 +img_size Node13 _Tp     Node13->Node12 +height +width Node18 cv::Point_< _Tp >   + Point_() + Point_() + Point_() + Point_() + Point_() + Point_() + cross() + ddot() + dot() + inside() + operator Point_< _Tp2 >() + operator Vec< _Tp, 2 >() + operator=() + operator=() Node13->Node18 +x +y Node14 std::vector< cv::KeyPoint >     Node14->Node11 +keypoints Node15->Node14 +elements Node16 cv::Point_< float >   + Point_() + Point_() + Point_() + Point_() + Point_() + Point_() + cross() + ddot() + dot() + inside() + operator Point_< _Tp2 >() + operator Vec< float, 2 >() + operator=() + operator=() Node16->Node15 +pt Node17 float     Node17->Node15 +angle +response +size Node17->Node16 +x +y Node17->Node26 +distance Node18->Node16 < float > Node19 std::vector< T >     Node19->Node14 < cv::KeyPoint > Node25 std::vector< cv::DMatch >     Node19->Node25 < cv::DMatch > Node19->Node27 < uchar > Node30 std::vector< std::pair < int, int > >     Node19->Node30 < std::pair< int, int > > Node20 T     Node20->Node19 +elements Node21->Node11 +descriptors Node22 UMatUsageFlags     Node22->Node21 +usageFlags Node23 size_t     Node23->Node21 +offset Node24->Node2 #pairwise_matches_ Node25->Node24 +matches Node26->Node25 +elements Node27->Node24 +inliers_mask Node28 double     Node28->Node2 #conf_thresh_ Node28->Node24 +confidence Node28->Node29 +epsilon Node29->Node2 #term_criteria_ Node30->Node2 #edges_ Node31->Node30 +elements Node32 std::pair< T1, T2 >     Node32->Node31 < int, int > Node33 T1     Node33->Node32 +first_type Node34 T2     Node34->Node32 +second_type

Public Member Functions#

Public Member Functions inherited from cv::detail::BundleAdjusterBase
Public Member Functions inherited from cv::detail::Estimator

Additional Inherited Members#

Protected Member Functions inherited from cv::detail::BundleAdjusterBase

Return

Name

Description

BundleAdjusterBase(
    int num_params_per_cam,
    int num_errs_per_measurement )

Construct a bundle adjuster base instance.

void

calcError(Mat & err)

Calculates error vector.

void

calcJacobian(Mat & jac)

Calculates the cost function jacobian.

bool

estimate(
    const std::vector< ImageFeatures > & features,
    const std::vector< MatchesInfo > & pairwise_matches,
    std::vector< CameraParams > & cameras )

This method must implement camera parameters estimation logic in order to make the wrapper detail::Estimator::operator()_ work.

void

obtainRefinedCameraParams(std::vector< CameraParams > & cameras)

Gets the refined camera parameters.

void

setUpInitialCameraParams(const std::vector< CameraParams > & cameras)

Sets initial camera parameter to refine.

Protected Member Functions inherited from cv::detail::Estimator

Return

Name

Description

bool

estimate(
    const std::vector< ImageFeatures > & features,
    const std::vector< MatchesInfo > & pairwise_matches,
    std::vector< CameraParams > & cameras )

This method must implement camera parameters estimation logic in order to make the wrapper detail::Estimator::operator()_ work.

Protected Attributes inherited from cv::detail::BundleAdjusterBase

Return

Name

Description

Mat

cam_params_

double

conf_thresh_

std::vector< std::pair< int, int > >

edges_

const ImageFeatures *

features_

int

num_errs_per_measurement_

int

num_images_

int

num_params_per_cam_

const MatchesInfo *

pairwise_matches_

Mat

refinement_mask_

TermCriteria

term_criteria_

int

total_num_matches_

Detailed Description#

Implementation of the camera parameters refinement algorithm which minimizes sum of the reprojection error squares.

It can estimate focal length, aspect ratio, principal point. You can affect only on them via the refinement mask.

Examples
samples/cpp/stitching_detailed.cpp.

Constructor & Destructor Documentation#

BundleAdjusterReproj()#

cv::detail::BundleAdjusterReproj::BundleAdjusterReproj()

Python:

cv.detail.BundleAdjusterReproj() -> <detail_BundleAdjusterReproj object>

Member Function Documentation#

calcError()#

void cv::detail::BundleAdjusterReproj::calcError(Mat & err)

Calculates error vector.

Parameters

  • err — Error column-vector of length total_num_matches * num_errs_per_measurement

calcJacobian()#

void cv::detail::BundleAdjusterReproj::calcJacobian(Mat & jac)

Calculates the cost function jacobian.

Parameters

  • jac — Jacobian matrix of dimensions (total_num_matches * num_errs_per_measurement) x (num_images * num_params_per_cam)

obtainRefinedCameraParams()#

void cv::detail::BundleAdjusterReproj::obtainRefinedCameraParams(std::vector< CameraParams > & cameras)

Gets the refined camera parameters.

Parameters

  • cameras — Refined camera parameters

setUpInitialCameraParams()#

void cv::detail::BundleAdjusterReproj::setUpInitialCameraParams(const std::vector< CameraParams > & cameras)

Sets initial camera parameter to refine.

Parameters

  • cameras — Camera parameters

Member Data Documentation#

err1_#

Mat cv::detail::BundleAdjusterReproj::err1_

err2_#

Mat cv::detail::BundleAdjusterReproj::err2_

Source file#

The documentation for this class was generated from the following file: