首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从stereo - KITTI数据集中获取深度图

如何从stereo - KITTI数据集中获取深度图
EN

Stack Overflow用户
提问于 2018-10-08 20:56:10
回答 2查看 1.2K关注 0票数 2

在尝试了opencv documentation中所述的示例后。

当我在KITTI图像对上尝试相同的代码时,我得到的结果是:

我现在使用的代码如下所示,更改StereoBM_create中的参数没有太大帮助:

代码语言:javascript
运行
复制
import numpy as np
import cv2
from matplotlib import pyplot as plt

imgL = cv2.imread('000002_left.png',0)
imgR = cv2.imread('000002_right.png',0)

stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)
#stereo = cv2.StereoBM_create(numDisparities=64, blockSize=17)

disparity = stereo.compute(imgL,imgR)
cv2.imwrite('depth_map.png', disparity)

disp_v2 = cv2.imread('depth_map.png')
disp_v2 = cv2.applyColorMap(disp_v2, cv2.COLORMAP_JET)

plt.imshow(disp_v2)

cv2.imwrite('depth_map_coloured.png', disp_v2)
plt.show()

问题是:如何才能使深度图更好?

EN

回答 2

Stack Overflow用户

发布于 2019-11-04 23:56:15

根据我的经验,StereoBM (OpenCV)不能处理KITTI图像。也许是因为KITTI图像要复杂得多。

但我使用下面的代码获得了不错的结果:

https://github.com/ialhashim/DenseDepth

票数 -1
EN

Stack Overflow用户

发布于 2021-06-15 22:52:45

应在opencv中调整立体匹配器的参数。

这是我创建的类中的一个函数。可以看出,我调整了一些参数,如视差数量、最小视差等:

代码语言:javascript
运行
复制
    def get_stereo_map(self, image_idx):
        left_RGB = self.get_left_RGB(image_idx) # left RGB image
        right_RGB = self.get_right_RGB(image_idx) # right RGB image
        # compute depth map from stereo
        stereo = cv2.StereoBM_create()
        stereo.setMinDisparity(0)
        num_disparities = 16*5
        stereo.setNumDisparities(num_disparities)
        stereo.setBlockSize(15)
        stereo.setSpeckleRange(16)
        # stereo.setSpeckleWindowSize(45)
        stereo_depth_map = stereo.compute(
            cv2.cvtColor(np.array(left_RGB), cv2.COLOR_RGB2GRAY),
            cv2.cvtColor(np.array(right_RGB), cv2.COLOR_RGB2GRAY))
        # by equation + divide by 16 to get true disperities
        stereo_depth_map = (self.storage.focal_pix_RGB * self.storage.baseline_m_RGB) \
                            / (stereo_depth_map/16)
        stereo_depth_map = DataParser.crop_redundant(stereo_depth_map)
        return stereo_depth_map

完整的代码请参考我的repo:https://github.com/janezlapajne/kitty-stereo-dataset-parser,来自激光雷达的地面实况和立体距离图也包括在内。希望这对任何人都有帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52702847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档