我正在做一个关于场景 3D 渲染的项目。我正在使用 OpenCV。我正在做的步骤是这样的:
- 拍摄两个场景的图像。
- 使用 SURF 特征匹配计算对象对应关系。
- 计算相机基本矩阵。
- 计算视差图像。
现在我有两个问题
计算基本矩阵后,如何计算 Q 矩阵?(我无法校准相机)
如何使用 opencv 或任何其他库进行 3D 渲染?
我正在做一个关于场景 3D 渲染的项目。我正在使用 OpenCV。我正在做的步骤是这样的:
现在我有两个问题
计算基本矩阵后,如何计算 Q 矩阵?(我无法校准相机)
如何使用 opencv 或任何其他库进行 3D 渲染?
对于 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) 是图像坐标系中的二维点,(cu,cv) 是相机的主点,f 是焦距,base 是基线,d 是视差,(X,Y, Z) 是相机坐标系中的一个 3D 点。