如何在 OpenCV Python 中从立体图像创建深度图?

【翻译 Shahid Akhtar Khan 的《How to create a depth map from stereo images in OpenCV Python?》】
可以使用立体(stereo)图像创建深度图。为了从立体图像构建深度图,我们找到了两个图像之间的差异。为此,我们使用 **cv2.StereoBM_create()**创建一个 StereoBM 类的对象并使用 stereo.comput() 计算视差。其中立体(stereo)是创建的 Stereo BM 对象。
步骤
要从立体图像创建深度图,您可以按照以下步骤操作 -
导入所需的库 OpenCV、Matplotlib 和 NumPy。确保您已经安装了它们。
使用 cv2.imread() 方法读取两个输入图像作为灰度图像。指定映像的完整路径。
创建 StereoBM 对象 stereo = cv2.StereoBM_create() 传递所需的数字差异(numDisparities )和块大小(blockSize)。
使用 stereo.compute() 计算输入图像之间的视差图。为了获得更好的结果,您可以调整**数字差异(numDisparities )和块大小(blockSize)**的值。
可视化视差图(深度图)。
让我们看一些示例,以从立体图像创建深度图。
例
在这个 Python 代码中,我们使用立体图像创建一个深度图。
我们将使用以下图像作为上述程序中的输入文件


输出
当你运行上面的 Python 程序时,它将产生以下输出窗口

例
在此 Python 代码中,我们使用两个立体图像创建深度图。


输出
当你运行上面的 Python 程序时,它将产生以下输出窗口

版权声明: 本文为 InfoQ 作者【DisonTangor】的原创文章。
原文链接:【http://xie.infoq.cn/article/fb7478c42fa1c65d1a8022db6】。文章转载请联系作者。
评论