如何在 OpenCV Python 中更改深度图的 cv2.StereoBM_create 属性

Bha*_*der 5 python opencv computer-vision stereoscopy

我正在实施深度图构建,其代码(在 Python 中)可在此处获得OpenCv Docs - depthMap我成功地获得了深度图,正如他们在文档中显示的给定图像对(左右立体图像)tsukuba_l.pngtsukuba_2.png. 我考虑测试自己的图像对,所以我从我的手机中取出了一对图像,如下所示:

在此处输入图片说明

在此处输入图片说明

当我运行代码时,我得到了这样的深度图

在此处输入图片说明

我尝试使用numDisparitiesblocksize,但它无助于获得最佳地图。

我想cv2.StereoBM_create在 Github 的主文件夹中检查 的脚本,但无法在线获取。你能帮我实现一种为我拍摄的自定义图像实现深度图的方法吗?有没有办法让我们可以使用这些参数,或者至少让我获得包含所有 Stereo 相关模块的 GitHub 主模块的链接。谢谢你。

小智 4

我猜你没有纠正对于立体匹配至关重要的图像。您应该首先校准您的立体系统(如果您用手机拍摄它们,您拍摄的每个图像对都会有不同的变换,两个相机之间需要始终具有相同的变换),然后校正图像,这样它们就可以了投影到同一平面上,然后立体匹配算法在同一行的其他图像中查找对应关系。

查看StereoRectify()的文档,您将看到一些图像作为校正过程的示例。

顺便说一句,.net 中有另一个基于 SemiGlboal 块匹配算法的 python 示例opencv/samples/python/stereo_match.py