OpenCV - C ++ - DMatch - 描述符索引是否与其对应的关键点索引相同?

时间:2016-05-29 21:00:45

标签: c++ opencv

我正在尝试计算两个极线立体图像中相应关键点的差异。 我知道如何获取关键点,描述符然后计算DMatch,但后来我使用这个简单的操作来获得差异,我不确定它是否正常:

float disparity = keypointsLeft[matches[i].queryIdx].pt.x - keypointsRight[matches[i].trainIdx].pt.x;

(匹配定义为:vector <DMatch> matches然后计算)

为什么我不确定? OpenCV文档2.4.12说:

1) DescriptorExtractor :: compute

void DescriptorExtractor::compute(const Mat& image, vector<KeyPoint>& keypoints, Mat& descriptors) const

关键点 - 输入关键点的集合。无法计算描述符的关键点将被删除,其余的可以重新排序。有时可以添加新的关键点,例如:SIFT复制具有多个主导方向的关键点(对于每个方向)。

2) DMatch

匹配关键点描述符的类:查询描述符索引,列车描述符索引,列车图像索引和描述符之间的距离。

问题是:描述符索引是否与其对应的关键点索引相同,当我们读取描述符时,向量不包含每个检测到的关键点的数据

我会亲自检查一下,但我不知道怎么做...也许有人也对这个问题感到疑惑。 我的应用程序正在运行,看起来很好,但这并不意味着它没问题......

0 个答案:

没有答案