iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python OpenCV中的drawMatches()关键匹配绘制方法
  • 781
分享到

Python OpenCV中的drawMatches()关键匹配绘制方法

2024-04-02 19:04:59 781人浏览 八月长安

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

参数详解

  • img1:第一张原始图像。
  • keypoints1:第一张原始图像的关键点。
  • img2:第二张原始图像。
  • keypoints2:第二张原始图像的关键点。
  • matches1to2:从第一个图像到第二个图像的匹配,这意味着keypoints1[i]在keypoints2[Matches[i]中有一个对应的点。
  • outImg:绘制结果图像。
  • matchColor:匹配连线与关键点点的颜色,当matchColor==Scalar::all(-1) 时,代表取随机颜色。
  • singlePointColor:没有匹配项的关键点的颜色,当singlePointColor==Scalar::all(-1) 时,代表取随机颜色。
  • matchesMask:确定绘制哪些匹配项的掩码。如果掩码为空,则绘制所有匹配项。
  • flags:绘图功能的一些标志。具体有:
    • 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 代码实例
def bf_match(img_path1, img_path2):
    # 读取两张图像
    img1 = cv2.imread(img_path1, cv2.IMREAD_GRAYSCALE)
    img2 = cv2.imread(img_path2, cv2.IMREAD_GRAYSCALE)

    # 计算两张图像的SIFT描述符
    kp1, des1, _ = sift_alGorithm(img_path1)
    kp2, des2, _ = sift_algorithm(img_path2)

    # 创建BFMatcher实例
    bf = cv2.BFMatcher()

    # 获得最佳匹配
    matches = bf.match(des1, des2)
    # 绘制匹配结果
    # matches = sorted(matches, key = lambda x:x.distance)
    match_result = cv2.drawMatches(img1, kp1, img2, kp2, matches, None, flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS)
    # 显示绘制结果
    plt.imshow(match_result)
    plt.show()
    return match_result

结果

到此这篇关于python OpenCV中的drawMatches()关键匹配绘制方法的文章就介绍到这了,更多相关Python OpenCV drawMatches() 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python OpenCV中的drawMatches()关键匹配绘制方法

本文链接: https://www.lsjlt.com/news/119393.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作