我有兩個立體圖像,我想用它來計算深度圖。雖然我不知道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()
結果:
這看起來從什麼教程的作者實現了非常不同:
good result http://docs.opencv.org/trunk/_images/disparity_map.jpg
調整參數並不能改善問題。我所能找到的所有文檔都是針對openCV代碼的原始C版本,而不是python-library-equivalent。不幸的是,我無法使用它來改善事情。
任何幫助,將不勝感激!
只是備案,該教程是從未來(opencv3.0),但沒錯,這是過時的。對於當前的3.0,你必須使用cv2.StereoBM_create()或cv2.StereoSGBM_create()。 – berak
cv2.StereoBM似乎存在,但使用cv2.StereoBM_create()或cv2.StereoSGBM_create()給出錯誤(屬性錯誤)。 – jwdink
再次,你顯然使用opencv2.4,而不是3.0 – berak