OpenCV中的三维绘制
我正在做一个关于场景3D渲染的项目。我正在使用OpenCV。我所做的步骤如下:OpenCV中的三维绘制,opencv,Opencv,我正在做一个关于场景3D渲染的项目。我正在使用OpenCV。我所做的步骤如下: 拍摄一个场景的两张照片 使用SURF特征匹配计算对象对应关系 计算相机基本矩阵 计算视差图像 现在我有两个问题 在计算基本矩阵之后,如何计算Q矩阵?(我无法校准相机) 如何使用opencv或任何其他库进行3D渲染 对于3D部分,可以使用OpenGL或PCL渲染场景。您有两种解决方案: 对于每个像素,使用从相机图像中提取的正确颜色创建一个点。这将为您提供一个可以使用PCL处理的点云(例如,用于三维特征提取) 应用三角
对于3D部分,可以使用OpenGL或PCL渲染场景。您有两种解决方案:
- 对于每个像素,使用从相机图像中提取的正确颜色创建一个点。这将为您提供一个可以使用PCL处理的点云(例如,用于三维特征提取)
- 应用三角剖分算法,但要应用此算法,必须具有相机的外部矩阵
如果要使用OpenGL,必须打开有效的OpenGL上下文。我向您推荐library或Qt。这些库非常容易使用,并且有很好的文档。两者都有关于OpenGL三维渲染的教程。对于可视化,可以使用or(PCL的可视化基于vtk,但对我来说更易于实现) 如果你只是想看看输出,你可以使用一些软件,比如
干杯您可以通过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是焦距,基准是基线,d是视差,(X,Y,Z)是相机坐标系中的3D点