mirror of
https://github.com/opencv/opencv.git
synced 2025-01-19 06:53:50 +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
|
@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,
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user