我目前正在做一个项目,该项目要求我使用opencv库找到相机的姿势。我正在做一个iPod,目前正在使用ORB从两个帧中准实时地获取视频输入并使用ORB查找关键点和描述符,使用BruteForceMatcher查找匹配点(目前它是高度不可见的)。我不确定这是否有必要,但我也过滤了匹配项,以便只绘制双向映射的匹配项,即k->k1和k1->k
我有我正在使用的相机的内部参数以及2D关键点。由此,我希望找到相机的位置(我假设这些是旋转和平移的外部参数)。
尽管我已经阅读了大量的教程,但其中的许多内容对我来说有些费解,我需要一些指导来说明什么方法可以工作以及如何解释。大多数教程使用了一个设置参考点的正方形,但是除了从帧中拉出的关键点之外,我没有其他标记可用。
据我所知,这些步骤如下:
a)找到对应的关键点
b)识别基本矩阵
c)估计本质矩阵
d)将基本矩阵分解为旋转和平移向量
然而,除了步骤a)之外,我被卡住了。
发布于 2012-11-26 20:12:15
从您的陈述中,我了解到您已经获得了一组2D对应关系,您可以将它们输入到cvFindFundamentalMat.This中,找到联系这两个视角的基本矩阵。即,对于camera-1中的每个点p和camera- 2中的对应点p‘,p’‘Fp= 0。计算的基本矩阵可以进一步传递到opencv中的ComputeCorrespondEpilines函数,该函数找到对应于指定点的极线。也可以将其传递给StereoRectifyUncalibrated函数以计算校正变换。在这里,您可以获得两个摄像机坐标系之间的旋转和平移(最大比例)。
基本矩阵是与校准相机有关的度量对象,而基本矩阵以更一般和基本的投射几何术语描述对应关系,因此我认为您不需要case.All信息中的基本矩阵。基本matrix.Also校正变换中包含的基本矩阵是在不知道相机的内部参数及其在空间中的相对位置的情况下计算的。
如果您没有使用棋盘校准模式,而是使用通用对象或图像,那么您需要手动或使用强大的特征提取器和匹配器ORB、MSER、SURF、SIFT、FAST来查找对应关系
此外,我建议参考opencv文档here,我希望这会有所帮助。
https://stackoverflow.com/questions/13557972
复制相似问题