OpenCV 4.10.0
开放源码计算机视觉
加载中...
搜索中...
没有匹配
枚举 | 函数
关键点和匹配的绘制函数

详细说明

枚举

枚举结构 cv::DrawMatchesFlags {
  cv::DrawMatchesFlags::DEFAULT = 0 ,
  cv::DrawMatchesFlags::DRAW_OVER_OUTIMG = 1 ,
  cv::DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS = 2 ,
  cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS = 4
}
 

函数

无效 cv::drawKeypoints (InputArray image, const std::vector< KeyPoint > &keypoints, InputOutputArray outImage, const Scalar &color=Scalar::all(-1), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT)
 绘制关键点。
 
无效 cv::drawMatches (InputArray img1, const std::vector< KeyPoint > &keypoints1, InputArray img2, const std::vector< KeyPoint > &keypoints2, const std::vector< DMatch > &matches1to2, InputOutputArray outImg, const int matchesThickness, const Scalar &matchColor=Scalar::all(-1), const Scalar &singlePointColor=Scalar::all(-1), const std::vector< char > &matchesMask=std::vector< char >(), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT)
 
无效 cv::drawMatches (InputArray img1, const std::vector< KeyPoint > &keypoints1, InputArray img2, const std::vector< KeyPoint > &keypoints2, const std::vector< DMatch > &matches1to2, InputOutputArray outImg, const Scalar &matchColor=Scalar::all(-1), const Scalar &singlePointColor=Scalar::all(-1), const std::vector< char > &matchesMask=std::vector< char >(), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT)
 绘制两幅图像中关键点的找到匹配对。
 
无效 cv::drawMatches (InputArray img1, const std::vector< KeyPoint > &keypoints1, InputArray img2, const std::vector< KeyPoint > &keypoints2, const std::vector< std::vector< DMatch > > &matches1to2, InputOutputArray outImg, const Scalar &matchColor=Scalar::all(-1), const Scalar &singlePointColor=Scalar::all(-1), const std::vector< std::vector< char > > &matchesMask=std::vector< std::vector< char > >(), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT)
 

枚举类型文档

◆ DrawMatchesFlags

枚举结构 cv::DrawMatchesFlags
strong

#include <opencv2/features2d.hpp>

枚举器
DEFAULT 

将创建输出图像矩阵(Mat::create),即可以重新使用输出图像的现有内存。将绘制两个源图像、匹配和单个关键点。对于每个关键点,仅绘制中心点(不绘制关键点周围带有关键点大小和方向的圆圈)。

DRAW_OVER_OUTIMG 

不会创建输出图像矩阵(Mat::create)。将在输出图像的现有内容上绘制匹配。

NOT_DRAW_SINGLE_POINTS 

不会绘制单个关键点。

DRAW_RICH_KEYPOINTS 

对于每个关键点,将绘制关键点周围带有关键点大小和方向的圆圈。

函数文档

◆ drawKeypoints()

void cv::drawKeypoints ( InputArray  image,
const std::vector< KeyPoint > &  keypoints,
InputOutputArray  outImage,
const Scalar color = Scalar::all(-1),
DrawMatchesFlags  flags = DrawMatchesFlags::DEFAULT 
)
Python
cv.drawKeypoints(image, keypoints, outImage[, color[, flags]]) -> outImage

#include <opencv2/features2d.hpp>

绘制关键点。

参数
image源图像。
keypoints源图像中的关键点。
outImage输出图像。其内容取决于 flags 值,该值定义在输出图像中绘制的内容。请参见下面可能的标记位值。
color关键点的颜色。
flags设置绘制功能的标记。可能的标记位值由 DrawMatchesFlags 定义。请参见上面 drawMatches 中的详细信息。
注意
对于 Python API,标记修改为 cv.DRAW_MATCHES_FLAGS_DEFAULT、cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS、cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG、cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS

◆ drawMatches() [1/3]

void cv::drawMatches ( InputArray  img1,
const std::vector< KeyPoint > &  keypoints1,
InputArray  img2,
const std::vector< KeyPoint > &  keypoints2,
const std::vector< DMatch > &  matches1to2,
InputOutputArray  outImg,
const int  matchesThickness,
const Scalar matchColor = Scalar::all(-1),
const Scalar singlePointColor = Scalar::all(-1),
const std::vector< char > &  matchesMask = std::vector< char >(),
DrawMatchesFlags  flags = DrawMatchesFlags::DEFAULT 
)
Python
cv.drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg
cv.drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchesThickness[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg
cv.drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg

#include <opencv2/features2d.hpp>

这是一个重载成员函数,为方便提供。它仅在接受的参数方面与上述函数不同。

◆ drawMatches() [2/3]

void cv::drawMatches ( InputArray  img1,
const std::vector< KeyPoint > &  keypoints1,
InputArray  img2,
const std::vector< KeyPoint > &  keypoints2,
const std::vector< DMatch > &  matches1to2,
InputOutputArray  outImg,
const Scalar matchColor = Scalar::all(-1),
const Scalar singlePointColor = Scalar::all(-1),
const std::vector< char > &  matchesMask = std::vector< char >(),
DrawMatchesFlags  flags = DrawMatchesFlags::DEFAULT 
)
Python
cv.drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg
cv.drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchesThickness[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg
cv.drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg

#include <opencv2/features2d.hpp>

绘制两幅图像中关键点的找到匹配对。

参数
img1第一个源图像。
keypoints1第一个源图像中的关键点。
img2第二个源图像。
keypoints2第二个源图像中的关键点。
matches1to2从第一个图像到第二个图像的匹配,这意味着 keypoints1[i] 在 keypoints2[matches[i]] 中有一个相应点。
outImg输出图像。其内容取决于 flags 值,该值定义在输出图像中绘制的内容。请参见下面可能的标记位值。
matchColor匹配的颜色(线和连接的关键点)。如果 matchColor==Scalar::all(-1) ,则会随机生成颜色。
singlePointColor单个关键点(圆)的颜色,这意味着关键点没有匹配。如果 singlePointColor==Scalar::all(-1) ,则会随机生成颜色。
matchesMask确定要绘制哪些匹配的掩码。如果掩码为空,则绘制所有匹配。
flags设置绘图功能的标志。 DrawMatchesFlags 定义可能的标志位值。

此函数在输出图像中绘制来自两幅图像的关键点的匹配。匹配是连接两个关键点(圆)的线。请参见 cv::DrawMatchesFlags

◆ drawMatches() [3/3]

void cv::drawMatches ( InputArray  img1,
const std::vector< KeyPoint > &  keypoints1,
InputArray  img2,
const std::vector< KeyPoint > &  keypoints2,
const std::vector< std::vector< DMatch > > &  matches1to2,
InputOutputArray  outImg,
const Scalar matchColor = Scalar::all(-1),
const Scalar singlePointColor = Scalar::all(-1),
const std::vector< std::vector< char > > &  matchesMask = std::vector< std::vector< char > >(),
DrawMatchesFlags  flags = DrawMatchesFlags::DEFAULT 
)
Python
cv.drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg
cv.drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchesThickness[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg
cv.drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg