mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 22:44:02 +08:00
Expose maxIters in findFundamentalMat
Lets the user choose the maximum number of iterations the robust estimator runs for, similary to findHomography. This can significantly improve performance (at a computational cost).
This commit is contained in:
parent
d2cc30e2a5
commit
7e637c134f
@ -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
|
||||
of confidence (probability) that the estimated matrix is correct.
|
||||
@param mask
|
||||
@param maxIters The maximum number of robust method iterations.
|
||||
|
||||
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);
|
||||
@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,
|
||||
int method = FM_RANSAC,
|
||||
double ransacReprojThreshold = 3., double confidence = 0.99,
|
||||
|
@ -809,7 +809,7 @@ public:
|
||||
|
||||
cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
|
||||
int method, double ransacReprojThreshold, double confidence,
|
||||
OutputArray _mask )
|
||||
int maxIters, OutputArray _mask )
|
||||
{
|
||||
CV_INSTRUMENT_REGION();
|
||||
|
||||
@ -861,7 +861,7 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
|
||||
confidence = 0.99;
|
||||
|
||||
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
|
||||
result = createLMeDSPointSetRegistrator(cb, 7, confidence)->run(m1, m2, F, _mask);
|
||||
}
|
||||
@ -872,11 +872,17 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
|
||||
return F;
|
||||
}
|
||||
|
||||
cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
|
||||
OutputArray _mask, int method,
|
||||
double ransacReprojThreshold , double confidence)
|
||||
cv::Mat cv::findFundamentalMat( cv::InputArray points1, cv::InputArray points2,
|
||||
int method, 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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user