【发布时间】:2019-03-13 03:48:48
【问题描述】:
在尝试了 opencv documentation 中所述的示例之后。
当我在 KITTI 图像对上尝试相同的代码时,我得到了这个:
我现在使用的代码是这样的,改变 StereoBM_create 中的参数并没有多大帮助:
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()
问题是:如何使深度图更好?
【问题讨论】:
-
您可能需要使用更多的视差级别 (
numDisparities) 或缩小图像直到最大视差在您想要的范围内。 StereoSGBM 也可能比 StereoBM 获得更好的结果。 -
您确定左右图像吗?当左右颠倒时,我得到类似的结果。
标签: python opencv computer-vision stereo-3d