我一直在尝试在OpenCV中为项目实现一个简单的SFM管道,我遇到了一些麻烦.
它适用于未经校准的相机,因此我没有相机矩阵(是的,我知道它会使事情变得更复杂和模糊).
我知道在尝试这样的事情之前我应该阅读更多内容但是我很难按时间而且我正试图在我遇到它们时阅读相关内容.
这是我从许多文章,代码示例和书籍中收集的当前管道.我已经发布了关于它之后的具体步骤的问题,并且还想知道我在这方面缺少什么或者我做错了什么?
这是我目前的管道.
问)我是否需要这样做?它是否太多或者我应该做一些像Homography这样的事情以避免8点的堕落情况?
接下来,我需要选择2个图像来开始重建.
问)这是对的吗?或者我应该对这些点进行三角测量,然后确定它们是否在摄像机前面,或者它是否能够完成相同的操作?
设置P = [I | 0]和P1 = [R | T],执行三角测量并将3d点存储在某些数据结构中.还存储P矩阵.
运行具有大量迭代次数的捆绑调整步骤以最小化错误.
它从这里变得有点朦胧,我很确定我搞砸了什么.
根据观察到的最多3d点数选择要添加的下一个图像.
使用所有这些新图像(我知道,我不需要对所有这些图像进行三角测量)三角形图像到目前为止使用它们的P矩阵进行三角测量,如P = PMatrices [ImageAlreadyTriangulated]和上面获得的P1.
问)它是否真的像使用我们使用的P的原始值一样简单?这会将所有东西都放到相同的坐标空间吗?如上所示,三角测量点是否与从P和P1的初始值获得的系统相同,或者我是否需要在此进行某种转换?
从我们从三角测量中获得的点,只添加我们尚未存储的那些3D点.
一般的问题:
我知道这一定是长篇大论.非常感谢您的宝贵时间 :)