当前位置:首页 > 站长资讯 > 正文内容

【说站】Python OpenCV中的drawMatches()关键匹配绘制方法

yc8882年前 (2022-07-23)站长资讯183

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

函数原型

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

结果


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/zhanzhang/7411.html

标签: Python
分享给朋友:

“【说站】Python OpenCV中的drawMatches()关键匹配绘制方法” 的相关文章

【说站】宝塔站点日志文件过大怎么办?网站日志切割教程

【说站】宝塔站点日志文件过大怎么办?网站日志切割教程

宝塔面板日志文件过大的原因?宝塔面板的网站日志文件默认是生成一个日志文件,然后系统每天不断的对这个文件进行写入操作,这样日子长了,这个日志文件就会越来越大,几百兆、几个G都是蛮正常的,这样对于我们分析...

【说站】Win10专业版如何激活?Win10激活工具

【说站】Win10专业版如何激活?Win10激活工具

本人用的Win10专业版一直用的好好地,今天桌面右下方就提示“激活Windows 转到设置以激活Windows”,因为一直用的是盗版Windows 10,出现这样的提示也蛮正常,没得办法,见招拆招,在...

【说站】宝塔如何按日期每天生成一个网站日志文件

【说站】宝塔如何按日期每天生成一个网站日志文件

宝塔面板默认的会按照nginx.conf的配置生成在/www/wwwlogs目录下面生成一个网站访问日志和一个网站错误日志,每当有新的记录时系统会不断的对这两个文件进行写入操作,但随着访问量的增长,日...

【说站】判断服务器IP否被墙 是否被TCP阻断

【说站】判断服务器IP否被墙 是否被TCP阻断

现在国内很多购买国外主机服务器的,但往往很多主机商的机子用的人多了,国内使用者用这些服务器做啥的都有,正儿八经的做外贸其实没多大事情,但往往有些人就是不遵守法律法规,长此以往用的人多了,这些国外的主机...

【说站】WordPress网站文章ID不连续如何解决?

【说站】WordPress网站文章ID不连续如何解决?

对于WordPress网站文章ID不连续的问题困扰了我很久,今天将WordPress文章ID不连续的原因和具体解决办法做详细的说明。WordPress文章ID不连续的原因:用WordPress做网站的...

【说站】删除WordPress页脚的 由WordPress强力驱动

【说站】删除WordPress页脚的 由WordPress强力驱动

所周知目前最新版的WordPress搭建的个人博客的2020主题(Twenty_Twenty)在网页的末端会有“由WordPress强力驱动”链接跳转字样,即WordPress的商业推广。作为网站搭建...