【发布时间】:2012-06-01 14:28:26
【问题描述】:
我正在做一个关于场景 3D 渲染的项目。我正在使用 OpenCV。我正在做的步骤是这样的:
- 为一个场景拍摄两张图像。
- 使用 SURF 特征匹配计算对象对应关系。
- 计算相机基本矩阵。
- 计算视差图像。
现在我有两个问题
计算基本矩阵后如何计算 Q 矩阵? (我无法校准相机)
如何使用 opencv 或任何其他库进行 3D 渲染?
【问题讨论】:
标签: opencv
我正在做一个关于场景 3D 渲染的项目。我正在使用 OpenCV。我正在做的步骤是这样的:
现在我有两个问题
计算基本矩阵后如何计算 Q 矩阵? (我无法校准相机)
如何使用 opencv 或任何其他库进行 3D 渲染?
【问题讨论】:
标签: opencv
对于 3D 部分,您可以使用 OpenGL 或 PCL 渲染场景。您有两种解决方案:
您可以在此处找到有关这些技术的更多信息:
如果你想使用 OpenGL,你必须打开一个有效的 OpenGL 上下文。我向您推荐SFML 库或Qt。这些库非常易于使用并且有很好的文档。两者都有关于使用 OpenGL 进行 3D 渲染的教程。
【讨论】:
你可以通过openCV方法从立体整流中得到Q矩阵:
cv::stereoRectify
我认为您希望 Q 矩阵重建 3D。但是,您可以通过以下方式从内在参数重构:
X = (u-cu)*base/d
Y = (v-cv)*base/d
Z = f*base/d
其中 (u,v) 是图像坐标系中的一个 2D 点,(cu,cv) 是相机的主点,f 是焦距,base 是基线,d 是视差和 (X ,Y,Z) 是相机坐标系中的一个 3D 点。
【讨论】: