三维重建整体流程如下:首先对左右图像进行畸变校正与立体校正,利用SGBM算法计算视差图,并通过WLS滤波优化结果。随后,结合视差图与标定参数中的Q矩阵(重投影矩阵)计算每个像素的三维坐标,生成深度图。最后,将校正后的左目彩色图像(BGR转RGB)与深度图(float32格式)构造成Open3D的RGBDImage对象,结合相机内参(焦距、光心)与外参(坐标系翻转矩阵)调用create_from_rgbd_image函数,将二维RGBD数据反投影为带真实色彩的三维点云。深度图通过归一化与伪彩色映射实现可视化,并支持鼠标点击交互式查询像素点的3D坐标,最终通过Open3D实时渲染显示点云模型。
程序提供两种模式:图片模式(imagemode)用于处理静态图像,相机模式(cameramode)用于实时获取双目相机的视频流,生成实时点云。代码仅仅依赖 numpy、opencv和open3d库,安装命令如下:
pip install numpy opencv-python open3d -i https://pypi.tuna.tsinghua.edu.cn/simple

编辑