From: vp153 Date: Wed, 31 Mar 2010 17:43:01 +0000 (+0000) Subject: fixed output mask in cvFindHomography (thanks to robozyt, ticket #236) X-Git-Url: https://rtime.felk.cvut.cz/gitweb/opencv.git/commitdiff_plain/32e9643772d78a0f62ec360cc055b1f73a5c62c4 fixed output mask in cvFindHomography (thanks to robozyt, ticket #236) git-svn-id: https://code.ros.org/svn/opencv/trunk@2960 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08 --- diff --git a/opencv/src/cv/cvfundam.cpp b/opencv/src/cv/cvfundam.cpp index a34426cd..0b6f11ff 100644 --- a/opencv/src/cv/cvfundam.cpp +++ b/opencv/src/cv/cvfundam.cpp @@ -270,6 +270,9 @@ cvFindHomography( const CvMat* objectPoints, const CvMat* imagePoints, if( result ) cvConvert( &matH, __H ); + + if( mask && tempMask ) + cvCopy( tempMask, mask ); return (int)result; } @@ -601,8 +604,7 @@ CV_IMPL int cvFindFundamentalMat( const CvMat* points1, const CvMat* points2, CV_Assert( CV_IS_MASK_ARR(mask) && CV_IS_MAT_CONT(mask->type) && (mask->rows == 1 || mask->cols == 1) && mask->rows*mask->cols == count ); - tempMask = cvCreateMatHeader(1, count, CV_8U); - cvSetData(tempMask, mask->data.ptr, 0); + tempMask = cvCloneMat(mask); } else if( count > 8 ) tempMask = cvCreateMat( 1, count, CV_8U ); @@ -636,6 +638,9 @@ CV_IMPL int cvFindFundamentalMat( const CvMat* points1, const CvMat* points2, if( result ) cvConvert( fmatrix->rows == 3 ? &_F3x3 : &_F9x3, fmatrix ); + + if( mask && tempMask ) + cvCopy( tempMask, mask ); return result; }