【问题标题】:How do I count the number of features matched?如何计算匹配的特征数量?
【发布时间】: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()

Feature Matching Result

有人能帮帮我吗?

【问题讨论】:

    标签: python opencv image-processing feature-extraction feature-detection


    【解决方案1】:

    我认为匹配的数量确实是1589。你图片中的结果,只画了几个匹配。

    尝试将您的第一张火车图像与实际上彼此不相关的随机图像进行比较。如果数量减少,则匹配项真正显示匹配对象的数量。

    【讨论】:

      【解决方案2】:

      这些算法有错误。这就是为什么你必须过滤结果。一种通用过滤器是尺寸过滤器。这意味着您省略了小于或大于大小的匹配项。这些最大值和最小值取决于您的情况。大小比例和匹配的位置是另一个过滤器。

      【讨论】:

        【解决方案3】:

        当你想绘制匹配点时,你需要给一个空数组作为matchesMask。

        draw_params = dict(matchColor=(0, 255, 0), singlePointColor=(255, 0, 0), matchesMask=[], flags=cv.DrawMatchesFlags_DEFAULT)
        

        【讨论】:

        • 我照你说的做了。但是现在有很多匹配,我认为其中大多数是错误匹配。我似乎也无法计算匹配的功能数量。我的数据集中每两个图像仍然显示 1589 个(我有 6 个从不同视点拍摄的平面图像)。
        猜你喜欢
        • 1970-01-01
        • 2015-03-03
        • 2013-07-29
        • 2021-12-01
        • 2021-01-22
        • 1970-01-01
        • 2016-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多