From 4500c48349116f030e275f62d40d720f03adf50b Mon Sep 17 00:00:00 2001 From: Daniil Osokin Date: Fri, 12 Oct 2012 14:38:37 +0400 Subject: [PATCH] fixed 7 point mode in findFundamentalMat #1978 --- modules/calib3d/src/fundam.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/calib3d/src/fundam.cpp b/modules/calib3d/src/fundam.cpp index 1515433..c79046d 100644 --- a/modules/calib3d/src/fundam.cpp +++ b/modules/calib3d/src/fundam.cpp @@ -1102,7 +1102,7 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2, CV_Assert( npoints >= 0 && points2.checkVector(2) == npoints && points1.type() == points2.type()); - Mat F(3, 3, CV_64F); + Mat F(method == CV_FM_7POINT ? 9 : 3, 3, CV_64F); CvMat _pt1 = points1, _pt2 = points2; CvMat matF = F, c_mask, *p_mask = 0; if( _mask.needed() ) @@ -1113,6 +1113,8 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2, int n = cvFindFundamentalMat( &_pt1, &_pt2, &matF, method, param1, param2, p_mask ); if( n <= 0 ) F = Scalar(0); + if( n == 1 ) + F = F.rowRange(0, 3); return F; } -- 2.7.4