OpenCV投影矩阵选择

时间:2016-07-29 12:50:58

标签: c++ opencv matrix computer-vision vision

我目前正面临一个问题,要描述我的程序应该做什么和应该做什么,这里是我上一篇文章开头的复制/粘贴。

这个程序取决于经典的“运动结构”方法。

基本思想是拍摄一对图像,检测其关键点并计算这些关键点的描述符。然后,完成关键点匹配,进行一定数量的测试以确保结果良好。那部分完美无缺。

一旦完成,将执行以下计算:基本矩阵,基本矩阵,基本矩阵的SVD分解,相机投影矩阵计算以及最后的三角测量。

一对图像的结果是一组3D坐标,为我们提供了在3D查看器中绘制的点。这对于一对来说非常有效。

但是,我必须手动执行一个步骤,如果我希望我的程序能够有效地处理两个以上的图像,这是不可接受的。

实际上,我根据经典方法计算我的投影矩阵,如下所示,在“从E确定R和t”段落中:https://en.wikipedia.org/wiki/Essential_matrix

我的投影矩阵有4种可能的解决方案。

我想我已经理解了这个问题的几何观点,在哈特利和齐瑟曼的论文摘要(第9.6.3和9.7.1章)中描述:http://www.robots.ox.ac.uk/~vgg/hzbook/hzbook2/HZepipolar.pdf

尽管如此,我的问题是:给定计算的四个可能的投影矩阵和OpenCV函数triangulatePoints()计算的3D点(对于每个投影矩阵),如何自动选择“真实”投影矩阵?(无需在我的3D查看器中绘制4倍于我的点,以查看它们是否一致)

感谢阅读。

0 个答案:

没有答案