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

How to access to each member of a DMatch(OpenCV) object?

我正在使用 OpenCV 开发基于 FLANN 的匹配器,出于特定原因,我需要访问匹配对象 (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)。所以我可以访问每个匹配的对坐标并稍后以某种方式计算它们。

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

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