Merge pull request #16498 from etrulls:3.4.9-maxIters

This commit is contained in:
Alexander Alekhin 2020-03-11 12:35:33 +00:00
commit c1a8fb72b7
2 changed files with 18 additions and 6 deletions

View File

@ -1905,6 +1905,7 @@ point localization, image resolution, and the image noise.
@param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level @param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level
of confidence (probability) that the estimated matrix is correct. of confidence (probability) that the estimated matrix is correct.
@param mask @param mask
@param maxIters The maximum number of robust method iterations.
The epipolar geometry is described by the following equation: The epipolar geometry is described by the following equation:
@ -1938,6 +1939,11 @@ stereoRectifyUncalibrated to compute the rectification transformation. :
findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99); findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99);
@endcode @endcode
*/ */
CV_EXPORTS_W Mat findFundamentalMat( InputArray points1, InputArray points2,
int method, double ransacReprojThreshold, double confidence,
int maxIters, OutputArray mask = noArray() );
/** @overload */
CV_EXPORTS_W Mat findFundamentalMat( InputArray points1, InputArray points2, CV_EXPORTS_W Mat findFundamentalMat( InputArray points1, InputArray points2,
int method = FM_RANSAC, int method = FM_RANSAC,
double ransacReprojThreshold = 3., double confidence = 0.99, double ransacReprojThreshold = 3., double confidence = 0.99,

View File

@ -809,7 +809,7 @@ public:
cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2, cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
int method, double ransacReprojThreshold, double confidence, int method, double ransacReprojThreshold, double confidence,
OutputArray _mask ) int maxIters, OutputArray _mask )
{ {
CV_INSTRUMENT_REGION(); CV_INSTRUMENT_REGION();
@ -861,7 +861,7 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
confidence = 0.99; confidence = 0.99;
if( (method & ~3) == FM_RANSAC && npoints >= 15 ) if( (method & ~3) == FM_RANSAC && npoints >= 15 )
result = createRANSACPointSetRegistrator(cb, 7, ransacReprojThreshold, confidence)->run(m1, m2, F, _mask); result = createRANSACPointSetRegistrator(cb, 7, ransacReprojThreshold, confidence, maxIters)->run(m1, m2, F, _mask);
else else
result = createLMeDSPointSetRegistrator(cb, 7, confidence)->run(m1, m2, F, _mask); result = createLMeDSPointSetRegistrator(cb, 7, confidence)->run(m1, m2, F, _mask);
} }
@ -872,11 +872,17 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
return F; return F;
} }
cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2, cv::Mat cv::findFundamentalMat( cv::InputArray points1, cv::InputArray points2,
OutputArray _mask, int method, int method, double ransacReprojThreshold, double confidence,
double ransacReprojThreshold , double confidence) cv::OutputArray mask )
{ {
return cv::findFundamentalMat(_points1, _points2, method, ransacReprojThreshold, confidence, _mask); return cv::findFundamentalMat(points1, points2, method, ransacReprojThreshold, confidence, 1000, mask);
}
cv::Mat cv::findFundamentalMat( cv::InputArray points1, cv::InputArray points2, cv::OutputArray mask,
int method, double ransacReprojThreshold, double confidence )
{
return cv::findFundamentalMat(points1, points2, method, ransacReprojThreshold, confidence, 1000, mask);
} }