如何访问DMatch(OpenCV)对象的每个成员

时间:2019-01-22 16:42:18

标签: python opencv flann

我正在使用OpenCV开发基于FLANN的Matcher,并且由于特定原因,我需要访问match对象(DMatch)的每对坐标。良好匹配过滤条件的结果存储在嵌套列表中:即good_matches = []。

尝试访问第一个对象(print good_matches [0])后,我得到了一个内存指针:即。

有什么线索可以发现该对象在python中的结构以及如何访问它?

ratio_thresh = 0.70
    good_matches = []
    for m,n in knn_matches:
        if m.distance < ratio_thresh * n.distance:
            good_matches.append(m)
 print good_matches[0]    

让我们说每个图像的关键点的坐标是:(u_1,v_1)和(u_2,v_2)。因此,我可以访问每个匹配的对坐标,并在以后以某种方式进行计算。

1 个答案:

答案 0 :(得分:0)

请参阅我对这个问题的回答:How to get the positions of the matched points with Brute-Force Matching / SIFT Descriptors

长话短说,关键点并不存储在DMatch中,而是存储在另一个列表中。 DMatch对象仅存储匹配的关键点的索引,它们的距离和图像的索引。您可以获取此索引,以从其他列表中获取关键点。