这"在比赛中为m,n"做什么?

What does this 'for m,n in matches'?

本文关键字:什么      更新时间:2023-10-16

我需要具体知道for m, n in matches行所做的事情以在C中实现它。matches是矩阵,但是mn采用什么值,它们如何移动?<<<<<<<</p>

这是Python代码...

for m, n in matches:
    if m.distance < 0.75*n.distance:
        good.append([m])

C matches中的注意是std::vector<DMatch>,是OPENCV程序。

谢谢!

我猜您正在使用knnmatcher,并在http://docs.opencv.org/3.0-beta/doc/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.matcher.html.html.html.html.html.html..html.html.htmll.3.0-beta/3.0-beta/3.0-beta/div class =

mnDMatch对象。返回两个对象,因为

k=2

matches = bf.knnMatch(des1,des2, k=2)

如果将k的值增加到3,则需要

for m,n,p in matches:

捕获结果。

knnmatch的cpp等效返回DMATCH的向量的向量,如下所示

实际上,如果您打印出m.queryIdx, m.trainIdx, n.queryIdx, n.trainIdx,则会看到类似264 323 264 490的模式,表明查询图像中相同的索引与训练图像中的其他索引匹配。

mn是通过 matches在每次迭代中存在的值。"它们如何移动"取决于matches的类型以及它提供的迭代类型。如果是元组的列表,那么他们每个人都会按元素直接向下移动列表。