【发布时间】:2020-11-07 02:14:43
【问题描述】:
我使用了这个 FLANN 特征匹配。我还尝试使用 ORB 和 BRISK 描述符。它显示了结果。现在我如何计算匹配的特征数量?我尝试了print(len(matches),但它给了我 1589。我不认为它是 1589 看图片。
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img1 = cv.imread('trainImage1.png', 0)
img2 = cv.imread('trainImage2.png', 0)
brisk = cv.BRISK_create(60, 2, 2)
kp1, des1 = brisk.detectAndCompute(img1, None)
kp2, des2 = brisk.detectAndCompute(img2, None)
FLANN_INDEX_LSH = 6
index_params = dict(algorithm=FLANN_INDEX_LSH, table_number=6, key_size=12, multi_probe_level=1)
search_params = dict(checks=50)
flann = cv.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(des1, des2, k=2)
matchesMask = [[0, 0] for i in range(len(matches))]
for i, (m, n) in enumerate(matches):
if m.distance < 0.7*n.distance:
matchesMask[i] = [1, 0]
draw_params = dict(matchColor=(0, 255, 0), singlePointColor=(255, 0, 0), matchesMask=matchesMask, flags=cv.DrawMatchesFlags_DEFAULT)
img3 = cv.drawMatchesKnn(img1, kp1, img2, kp2, matches, None, **draw_params)
print(len(matches))
plt.imshow(img3,), plt.show()
有人能帮帮我吗?
【问题讨论】:
标签: python opencv image-processing feature-extraction feature-detection