首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV标定参数和立体摄像机的三维点变换

OpenCV标定参数和立体摄像机的三维点变换
EN

Stack Overflow用户
提问于 2012-01-14 05:12:44
回答 1查看 2.7K关注 0票数 4

我有4个ps3eye摄像头。我已经使用OpenCV库的cvStereoCalibrate()函数校准了camera1和camera2,通过查找角点并将它们的3d坐标传递给该函数,使用了棋盘模式。

此外,我还使用camera2和camera3查看的另一组棋盘图像校准了camera2和camera3。

使用相同的方法,我校准了camera3和camera4。

现在我有了camera1和camera2的外部参数和内部参数,camera2和camera3的外部参数和内部参数,以及camera3和camera4的外部参数和内部参数。

其中,外部参数是旋转和平移的矩阵,内部参数是焦距和主点的矩阵。

现在假设有一个3d点(世界坐标)(我知道如何从立体摄像机中找到3d坐标),该点由camera3和camera4查看,而不是由camera1和camera2查看。

我的问题是:如何使用camera3和camera4查看的3d世界坐标点,并使用旋转、平移、焦点和主点参数将其相对于camera1和Camera2的世界坐标系进行转换?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-14 20:03:13

OpenCV的立体校准只给出两个相机之间的相对外部矩阵。

根据它的文档,你不会得到世界坐标中的变换(即与校准模式相关的变换)。不过,它建议在其中一张图像上运行常规的相机校准,并至少知道其转换。cv::stereoCalibrate

如果校准是完美的,您可以使用菊花链设置来导出任何相机的世界变换。

据我所知,这并不是很稳定,因为在运行校准时应该考虑到您有多个摄像头的事实。

多摄像机校准不是最微不足道的问题。看一看:

  • Multi-Camera Self-Calibration
  • GML C++ Camera Calibration Toolbox

我也在寻找一个解决方案,所以如果你找到更多关于这个和OpenCV的信息,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8857290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档