正文字数:4509 阅读时长:2分钟
欢迎来到本教程的第三部分,也是最后一部分关于立体重建的教程。
Posted by Omar Padierna
url : https://medium.com/@omar.ps16/stereo-3d-reconstruction-with-opencv-using-an-iphone-camera-part-iii-95460d3eddf0
快速回顾:
在第一部分中,我们简要介绍了立体三维重建所需的步骤以及立体重建工作的原理和要点。
在第二部分中,我们分析了一个脚本来计算摄像机矩阵和失真系数。这些都是三维重建过程中相机的固有参数。
一旦我们的相机被校准,我们就可以利用来自同一个物体的一对照片完成重建。在大多数立体声应用程序中,你会发现每张照片都是从两个单独的摄像头拍摄的,如下图所示
用于三维重建的典型双摄像头系统
人们这样做的原因是因为两个摄像头在同一高度(比如我们的眼睛)是非常重要的。我们在这个教程中,我们只是使用了手机的摄像头,没有使用这种相机,因此我们不需要进行类似的设置。如果你想制作自己的双摄像头系统以获得更好的效果,那么就你可以去尝试阅读Daniel Lee的博客。
我们仍然需要一对图片来生成视差图。在这种情况下,我让别人给我拍了两张照片,同时小心地水平移动相机,确保没有垂直移动(说起来容易做起来难)。如果用手或是自己动手太困难,你可以用三脚架。
我胖乎乎的样子
一旦我们有了照片,我们就要花一些时间开始写一些代码。我们将从加载摄像机矩阵和现实上面得到的图片开始。作为一个友好的提醒,请记住完整的脚本可以在这里(https://github.com/OmarPadierna/3DReconstruction)找到。
#=========================================================
# Stereo 3D reconstruction
#=========================================================
#Load camera parameters
ret = np.load('./camera_params/ret.npy')
K = np.load('