c ++以世界坐标获取相机位置(opencv)

时间:2012-02-23 10:21:59

标签: c++ opencv extrinsic-parameters pose-estimation

好的解决了。 首先,我将使用Matlab工具和chessboardthingie来获取内在参数。 我将使用cv :: solvePnP()

是的,我使用了搜索,但不幸的是它没有帮助我。

正如标题所说,我必须在现实世界中找到相机坐标。 但是我也遇到了一些关于opencv命令的问题。 直到现在我知道图像中的一些点和相应的世界坐标。 (最坏情况下6点已知)

为了得到相机 - 我想到了使用公式:

transp(x,y,z)= - transp(R)* t,其中R和t是外在参数

所以现在我的问题是:如何计算R和t? 我的意思是存在一个解决这个问题的opencv函数吗? 实际上有很多相机校准功能。 或者我必须先计算内在参数?

编辑:这是我的意思: http://opencv.willowgarage.com/documentation/python/calib3d_camera_calibration_and_3d_reconstruction.html#calibratecamera2

但我不知道参数应该是什么样子。 如何手动初始化例如3x6矩阵 像cv :: Mat([[x1] [y1] [z1]] .... [[x6] [y6] [z6]])

1 个答案:

答案 0 :(得分:0)

R和T矩阵是立体声系统中两个摄像机视图之间的旋转和平移

据推测,你可以找到相机相对于单个目标的位置 - 一旦你有一个校准过的相机和一个已知的目标 - 但该软件的描述是针对立体声对。

openCV book的第11章和第12章给出了很好的描述