网络编程
位置:首页>> 网络编程>> Python编程>> Python OpenCV中的drawMatches()关键匹配绘制方法

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

作者:乔卿  发布时间:2022-10-31 22:36:57 

标签:Python,OpenCV,drawMatches,关键,匹配,绘制

作用说明

该方法被用于绘制关键点的匹配情况。我们看到的许多匹配结果都是使用这一方法绘制的——一左一右两张图像,匹配的关键点之间用线条链接。

函数原型

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()关键匹配绘制方法

来源:https://qiaoxs.blog.csdn.net/article/details/124651286

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com