我有两个立体图像,我想用它来计算深度图。虽然我不知道C/C++,但我知道python--所以当我发现this tutorial时,我很乐观。Python/OpenCV:从立体图像计算深度图
不幸的是,本教程看起来有些过时。它不仅需要进行调整才能运行(将“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代码的原始C版本,而不是python-library-equivalent。不幸的是,我无法使用它来改善事情。
任何帮助,将不胜感激!
2014-12-31
jwdink
+0
只是备案,该教程是从未来(opencv3.0),但没错,这是过时的。对于当前的3.0,你必须使用cv2.StereoBM_create()或cv2.StereoSGBM_create()。 –
+0
cv2.StereoBM似乎存在,但使用cv2.StereoBM_create()或cv2.StereoSGBM_create()给出错误(属性错误)。 –
+0
再次,你显然使用opencv2.4,而不是3.0 –