使用 OpenCV 显示带有连接匹配之间连线的图片

本文介绍了如何在不使用 matplotlib 的情况下,使用 OpenCV 的 cv2.imshow() 函数显示带有连接匹配之间连线的图片,并提供了代码示例。

代码示例

import cv2

def plot_matches(im1, im2, locs1, locs2, matchscores):
    im3 = appendimages(im1,im2)
    cols1 = im1.shape[1]
    for i, m in enumerate(matchscores):
        if m > 0:
            cv2.line(im3, (int(locs1[i][1]), int(locs1[i][0])), (int(locs2[m][1] + cols1), int(locs2[m][0])), (255, 0, 0), 1)
    cv2.imshow('Matches', im3)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

代码说明

  1. 使用 cv2.line() 函数在图像 im3 上绘制连接线。
  2. 使用 cv2.imshow() 函数显示图像 im3
  3. 使用 cv2.waitKey(0) 函数等待用户按下任意键。
  4. 使用 cv2.destroyAllWindows() 函数关闭所有窗口。

注意

  1. appendimages() 函数用于将两幅图像水平拼接成一幅图像。
  2. matchscores 数组包含匹配结果,其中值为 -1 表示没有匹配。
  3. locs1locs2 数组分别包含第一幅图像和第二幅图像中特征点的坐标。
  4. cv2.line() 函数的参数分别为:
    • 图像
    • 起始点坐标
    • 结束点坐标
    • 颜色
    • 线宽

通过以上方法,您可以使用 OpenCV 的 cv2.imshow() 函数显示带有连接匹配之间连线的图片。

使用 OpenCV 显示带有连接匹配之间连线的图片

原文地址: https://www.cveoy.top/t/topic/knrY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录