我有两张立体图像,想要用它们来计算深度图。虽然我不会C/C++,但我会Python——所以当我找到这个教程时,我充满了希望。
不幸的是,这个教程似乎有点过时。它不仅需要进行一些调整才能运行(将“createStereoBM”重命名为“StereoBM”),而且即使在教程中使用的示例立体图像上运行时也不能得到好的结果。
下面是一个例子:
import numpy as np
import cv2
from matplotlib import pyplot as plt
imgL = cv2.imread('Yeuna9x.png',0)
imgR = cv2.imread('SuXT483.png',0)
stereo = cv2.StereoBM(1, 16, 15)
disparity = stereo.compute(imgL, imgR)
plt.imshow(disparity,'gray')
plt.show()
结果:
这与教程作者所实现的效果非常不同:
(来源:opencv.org)
调整参数并不能改善情况。我所找到的所有文档都是针对原始C版的openCV代码,而不是Python库的等效代码。不幸的是,我无法使用这些文档来改善事情。
如能提供帮助,将不胜感激!