나는 깊이 맵을 계산하는 데 사용하고자하는 두 개의 스테레오 이미지를 가지고 있습니다. 불행하게도 C/C++에 대해서는 알지 못하지만, 나는 파이썬을 알고 있습니다. 그래서 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 버전 용입니다. 불행히도이를 개선하기 위해 사용할 수 없었습니다.
도움이 될 것입니다.
는 튜토리얼은 미래 (opencv3.0)에서하지만, 예, 그것은 오래된입니다. 현재 3.0의 경우 cv2.StereoBM_create() 또는 cv2.StereoSGBM_create()를 사용해야합니다. – berak
cv2.StereoBM이 존재하지만 cv2.StereoBM_create() 또는 cv2.StereoSGBM_create()를 사용하면 오류가 발생합니다 (속성 오류). – jwdink
다시, 당신은 분명히 3.0이 아닌 opencv2.4를 사용하고 있습니다. – berak