renamed parameter of drawMatches (mask to matchesMask)
This commit is contained in:
parent
c751e901ce
commit
008da75691
@ -1965,7 +1965,7 @@ Match is a line connecting two keypoints (circles).
|
|||||||
void drawMatches( const Mat\& img1, const vector<KeyPoint>\& keypoints1,
|
void drawMatches( const Mat\& img1, const vector<KeyPoint>\& keypoints1,
|
||||||
const Mat\& img2, const vector<KeyPoint>\& keypoints2,
|
const Mat\& img2, const vector<KeyPoint>\& keypoints2,
|
||||||
const vector<int>\& matches, Mat\& outImg,
|
const vector<int>\& matches, Mat\& outImg,
|
||||||
const vector<char>\& mask = vector<char>(),
|
const vector<char>\& matchesMask = vector<char>(),
|
||||||
const Scalar\& matchColor = Scalar::all(-1),
|
const Scalar\& matchColor = Scalar::all(-1),
|
||||||
const Scalar\& singlePointColor = Scalar::all(-1),
|
const Scalar\& singlePointColor = Scalar::all(-1),
|
||||||
int flags = DrawMatchesFlags::DEFAULT );
|
int flags = DrawMatchesFlags::DEFAULT );
|
||||||
@ -1996,7 +1996,7 @@ void drawMatches( const Mat\& img1, const vector<KeyPoint>\& keypoints1,
|
|||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\cvarg{mask}{Mask determining which matches will be drawn. If mask is empty all matches will be drawn. }
|
\cvarg{matchesMask}{Mask determining which matches will be drawn. If mask is empty all matches will be drawn. }
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
@ -2015,7 +2015,7 @@ void drawMatches( const Mat\& img1, const vector<KeyPoint>\& keypoints1,
|
|||||||
struct DrawMatchesFlags
|
struct DrawMatchesFlags
|
||||||
{
|
{
|
||||||
enum{ DEFAULT = 0, // Output image matrix will be created (Mat::create),
|
enum{ DEFAULT = 0, // Output image matrix will be created (Mat::create),
|
||||||
// i.e. existing memory of output image will be reused.
|
// i.e. existing memory of output image may be reused.
|
||||||
// Two source image, matches and single keypoints will be drawn.
|
// Two source image, matches and single keypoints will be drawn.
|
||||||
DRAW_OVER_OUTIMG = 1, // Output image matrix will not be created (Mat::create).
|
DRAW_OVER_OUTIMG = 1, // Output image matrix will not be created (Mat::create).
|
||||||
// Matches will be drawn on existing content
|
// Matches will be drawn on existing content
|
||||||
|
@ -2128,7 +2128,7 @@ protected:
|
|||||||
struct CV_EXPORTS DrawMatchesFlags
|
struct CV_EXPORTS DrawMatchesFlags
|
||||||
{
|
{
|
||||||
enum{ DEFAULT = 0, // Output image matrix will be created (Mat::create),
|
enum{ DEFAULT = 0, // Output image matrix will be created (Mat::create),
|
||||||
// i.e. existing memory of output image will be reused.
|
// i.e. existing memory of output image may be reused.
|
||||||
// Two source image, matches and single keypoints will be drawn.
|
// Two source image, matches and single keypoints will be drawn.
|
||||||
DRAW_OVER_OUTIMG = 1, // Output image matrix will not be created (Mat::create).
|
DRAW_OVER_OUTIMG = 1, // Output image matrix will not be created (Mat::create).
|
||||||
// Matches will be drawn on existing content of output image.
|
// Matches will be drawn on existing content of output image.
|
||||||
@ -2139,7 +2139,7 @@ struct CV_EXPORTS DrawMatchesFlags
|
|||||||
// Draws matches of keypints from two images on output image.
|
// Draws matches of keypints from two images on output image.
|
||||||
CV_EXPORTS void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1,
|
CV_EXPORTS void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1,
|
||||||
const Mat& img2, const vector<KeyPoint>& keypoints2,
|
const Mat& img2, const vector<KeyPoint>& keypoints2,
|
||||||
const vector<int>& matches, Mat& outImg, const vector<char>& mask = vector<char>(),
|
const vector<int>& matches, Mat& outImg, const vector<char>& matchesMask = vector<char>(),
|
||||||
const Scalar& matchColor = Scalar::all(-1), const Scalar& singlePointColor = Scalar::all(-1),
|
const Scalar& matchColor = Scalar::all(-1), const Scalar& singlePointColor = Scalar::all(-1),
|
||||||
int flags = DrawMatchesFlags::DEFAULT );
|
int flags = DrawMatchesFlags::DEFAULT );
|
||||||
|
|
||||||
|
@ -45,11 +45,11 @@ using namespace std;
|
|||||||
namespace cv
|
namespace cv
|
||||||
{
|
{
|
||||||
|
|
||||||
CV_EXPORTS void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1,
|
void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1,
|
||||||
const Mat& img2,const vector<KeyPoint>& keypoints2,
|
const Mat& img2,const vector<KeyPoint>& keypoints2,
|
||||||
const vector<int>& matches, Mat& outImg, const vector<char>& mask,
|
const vector<int>& matches, Mat& outImg, const vector<char>& matchesMask,
|
||||||
const Scalar& matchColor, const Scalar& singlePointColor,
|
const Scalar& matchColor, const Scalar& singlePointColor,
|
||||||
int flags )
|
int flags )
|
||||||
{
|
{
|
||||||
Size size( img1.cols + img2.cols, MAX(img1.rows, img2.rows) );
|
Size size( img1.cols + img2.cols, MAX(img1.rows, img2.rows) );
|
||||||
if( flags & DrawMatchesFlags::DRAW_OVER_OUTIMG )
|
if( flags & DrawMatchesFlags::DRAW_OVER_OUTIMG )
|
||||||
@ -88,12 +88,12 @@ CV_EXPORTS void drawMatches( const Mat& img1, const vector<KeyPoint>& keypoints1
|
|||||||
bool isRandMatchColor = matchColor == Scalar::all(-1);
|
bool isRandMatchColor = matchColor == Scalar::all(-1);
|
||||||
if( matches.size() != keypoints1.size() )
|
if( matches.size() != keypoints1.size() )
|
||||||
CV_Error( CV_StsBadSize, "matches must have the same size as keypoints1" );
|
CV_Error( CV_StsBadSize, "matches must have the same size as keypoints1" );
|
||||||
if( !mask.empty() && mask.size() != keypoints1.size() )
|
if( !matchesMask.empty() && matchesMask.size() != keypoints1.size() )
|
||||||
CV_Error( CV_StsBadSize, "mask must have the same size as keypoints1" );
|
CV_Error( CV_StsBadSize, "mask must have the same size as keypoints1" );
|
||||||
vector<int>::const_iterator mit = matches.begin();
|
vector<int>::const_iterator mit = matches.begin();
|
||||||
for( int i1 = 0; mit != matches.end(); ++mit, i1++ )
|
for( int i1 = 0; mit != matches.end(); ++mit, i1++ )
|
||||||
{
|
{
|
||||||
if( (mask.empty() || mask[i1] ) && *mit >= 0 )
|
if( (matchesMask.empty() || matchesMask[i1] ) && *mit >= 0 )
|
||||||
{
|
{
|
||||||
Point2f pt1 = keypoints1[i1].pt,
|
Point2f pt1 = keypoints1[i1].pt,
|
||||||
pt2 = keypoints2[*mit].pt,
|
pt2 = keypoints2[*mit].pt,
|
||||||
|
@ -88,21 +88,21 @@ void doIteration( const Mat& img1, Mat& img2, bool isWarpPerspective,
|
|||||||
Mat drawImg;
|
Mat drawImg;
|
||||||
if( !H12.empty() )
|
if( !H12.empty() )
|
||||||
{
|
{
|
||||||
vector<char> mask( matches.size(), 0 );
|
vector<char> matchesMask( matches.size(), 0 );
|
||||||
vector<int>::const_iterator mit = matches.begin();
|
vector<int>::const_iterator mit = matches.begin();
|
||||||
for( size_t i1 = 0; mit != matches.end(); ++mit, i1++ )
|
for( size_t i1 = 0; mit != matches.end(); ++mit, i1++ )
|
||||||
{
|
{
|
||||||
Point2f pt1 = keypoints1[i1].pt,
|
Point2f pt1 = keypoints1[i1].pt,
|
||||||
pt2 = keypoints2[*mit].pt;
|
pt2 = keypoints2[*mit].pt;
|
||||||
if( norm(pt2 - applyHomography(H12, pt1)) < 4 ) // inlier
|
if( norm(pt2 - applyHomography(H12, pt1)) < 4 ) // inlier
|
||||||
mask[i1] = 1;
|
matchesMask[i1] = 1;
|
||||||
}
|
}
|
||||||
// draw inliers
|
// draw inliers
|
||||||
drawMatches( img1, keypoints1, img2, keypoints2, matches, drawImg, mask, CV_RGB(0, 255, 0), CV_RGB(0, 0, 255) );
|
drawMatches( img1, keypoints1, img2, keypoints2, matches, drawImg, matchesMask, CV_RGB(0, 255, 0), CV_RGB(0, 0, 255) );
|
||||||
// draw outliers
|
// draw outliers
|
||||||
/*for( size_t i1 = 0; i1 < mask.size(); i1++ )
|
/*for( size_t i1 = 0; i1 < matchesMask.size(); i1++ )
|
||||||
mask[i1] = !mask[i1];
|
matchesMask[i1] = !matchesMask[i1];
|
||||||
drawMatches( img1, img2, keypoints1, keypoints2, matches, mask, drawImg, CV_RGB(0, 0, 255), CV_RGB(255, 0, 0),
|
drawMatches( img1, keypoints1, img2, keypoints2, matches, drawImg, matchesMask, CV_RGB(0, 0, 255), CV_RGB(255, 0, 0),
|
||||||
DrawMatchesFlags::DRAW_OVER_OUTIMG | DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS );*/
|
DrawMatchesFlags::DRAW_OVER_OUTIMG | DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS );*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user