繁体   English   中英

如何在OpenCV Python中将经过训练的图像与多个查询图像进行匹配

[英]How to match trained image with multiple query images in OpenCV Python

我想设计一个图像处理程序,在其中可以检测并匹配手势。 我基本上需要做的是将查询图像与多个训练有素的图像进行匹配,并返回最佳匹配。 下面的代码是两个单一手势的实现。

import cv2 as cv

sift = cv.xfeatures2d.SIFT_create()
bf = cv.BFMatcher()

original_img = cv.imread('./database/bb.jpg', cv.IMREAD_GRAYSCALE)
query_img = cv.imread('./database/b.jpg', cv.IMREAD_GRAYSCALE)

kp1,des1 = sift.detectAndCompute(original_img , None)
kp2, des2 = sift.detectAndCompute(query_img ,None)

matches = bf.knnMatch( des1, des2, k=2 )
good = []

for m,n in matches:
    if m.distance < 0.75 * n.distance:
        good.append ( [m] )

new_img = cv.drawMatchesKnn(original_img, kp1, query_img, kp2, good, None, flags=2)
cv.imshow('matches' , new_img)

k = cv.waitKey(0)
cv.destroyAllWindows()

您安装了OpenCV3,并且代码需要为每个匹配项评分。 这是使用opencv3匹配每对图像的链接 使用上述功能,您可以获取每对图像特征的匹配项。 当然,您需要评估比赛并给每个比赛打分,然后对它们进行排序。 我认为每次比赛的链接得分都可以为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM