我正在使用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)。因此,我可以访问每个匹配的对坐标,并在以后以某种方式进行计算。
答案 0 :(得分:0)
请参阅我对这个问题的回答:How to get the positions of the matched points with Brute-Force Matching / SIFT Descriptors
长话短说,关键点并不存储在DMatch中,而是存储在另一个列表中。 DMatch对象仅存储匹配的关键点的索引,它们的距离和图像的索引。您可以获取此索引,以从其他列表中获取关键点。