opencvpython中训练图像与多个查询图像的匹配

2024-04-16 18:19:50 发布

您现在位置: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()

Tags: 图像noneimgquerydatabasecvjpggood