使用 OpenCV 显示带有连接匹配之间连线的图片
使用 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()
代码说明
- 使用
cv2.line()函数在图像im3上绘制连接线。 - 使用
cv2.imshow()函数显示图像im3。 - 使用
cv2.waitKey(0)函数等待用户按下任意键。 - 使用
cv2.destroyAllWindows()函数关闭所有窗口。
注意
appendimages()函数用于将两幅图像水平拼接成一幅图像。matchscores数组包含匹配结果,其中值为 -1 表示没有匹配。locs1和locs2数组分别包含第一幅图像和第二幅图像中特征点的坐标。cv2.line()函数的参数分别为:- 图像
- 起始点坐标
- 结束点坐标
- 颜色
- 线宽
通过以上方法,您可以使用 OpenCV 的 cv2.imshow() 函数显示带有连接匹配之间连线的图片。
原文地址: https://www.cveoy.top/t/topic/knrY 著作权归作者所有。请勿转载和采集!