我试图创建一个脚本,给出2张钞票图像告诉我第一张图像是否出现在第二张图像上。如果第一张图像出现在第二张图片上,它可以正常工作,但如果没有,它会给我这样的东西:
许多点与第二张图像中的相同点(或非常接近)有关。你知道一种过滤方法吗?
这就是我的所作所为:
img1 = cv2.imread(trainImage , 0) # trainImage
mask = cv2.imread(maskTrainImage, 0) # trainMask
kp1, des1 = surf.detectAndCompute(img1,mask)
kp2, des2 = surf.detectAndCompute(img2, None)
index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 4)
search_params = dict(checks = 50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(des1,des2,k=2)
# store all the good matches as per Lowe's ratio test.
good = []
for m,n in matches:
if (m.distance < 0.70*n.distance):
good.append(m)
如果第二张图片中的所有匹配项完全相同或更接近,我可以删除所有匹配项,比如5 px或类似的东西?