2014-12-31 5 views
11

나는 깊이 맵을 계산하는 데 사용하고자하는 두 개의 스테레오 이미지를 가지고 있습니다. 불행하게도 C/C++에 대해서는 알지 못하지만, 나는 파이썬을 알고 있습니다. 그래서 this tutorial을 발견했을 때 나는 낙관적이었습니다.Python/OpenCV : 스테레오 이미지에서 깊이 맵 계산

불행히도,이 튜토리얼은 다소 오래된 것 같습니다. ('createStereoBM'에서 'StereoBM'으로 이름 바꾸기)를 실행하기 위해 조정할 필요가있을뿐만 아니라 튜토리얼 자체에서 사용 된 예제 스테레오 이미지에서도 실행됩니다. .

image-left image-right

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() 

결과 : 여기

은 예입니다

the result

이 튜토리얼의 저자가 달성 것과는 매우 다른 모습 :

good result http://docs.opencv.org/trunk/_images/disparity_map.jpg

매개 변수를 조정해도 문제가 개선되지 않습니다. 필자가 찾은 모든 문서는 파이썬 라이브러리가 아닌 OpenCV 코드의 원래 C 버전 용입니다. 불행히도이를 개선하기 위해 사용할 수 없었습니다.

도움이 될 것입니다.

+0

는 튜토리얼은 미래 (opencv3.0)에서하지만, 예, 그것은 오래된입니다. 현재 3.0의 경우 cv2.StereoBM_create() 또는 cv2.StereoSGBM_create()를 사용해야합니다. – berak

+0

cv2.StereoBM이 존재하지만 cv2.StereoBM_create() 또는 cv2.StereoSGBM_create()를 사용하면 오류가 발생합니다 (속성 오류). – jwdink

+0

다시, 당신은 분명히 3.0이 아닌 opencv2.4를 사용하고 있습니다. – berak

답변

-1

카메라는 대신 가로 대신에 세로로로 번역됩니다. 이미지를 90도 회전시킨 다음 다시 시도하십시오. (화면을 회전하여 자신에게 증명하십시오. 방금 노트북을 들고 가장자리를 돌 렸습니다.)

다른 소프트웨어가 있습니다. 원래와 pyOpenCV 사이에 행 - 주요/열 - 주요한 종류의 것일 수 있습니다.

+0

당신의 제안을 정확하게 이해한다면 원본 이미지를 90도 회전시킨 다음 같은 코드를 실행해야합니까? 방금 시도한 결과보다 나은 결과를 얻지 못했습니다. 이거 작동 했니? 그렇다면 결과를 게시 할 수 있습니까? – jwdink

+0

이것은 질문의 형식화라고 생각합니다 ... 이미지는 수평으로 분리 된 두 가지 관점에서 나온 것입니다. – will

+0

또한 이러한 경우라면 중요하지 않을 수도 있습니다. 왼쪽 하단에 * bottom * 이미지를 놓으면됩니다 (참조 프레임 회전). 각각의 이미지를 개별적으로 회전 시키면 실제로 멈추게됩니다. – will

1

블록 일치 알고리즘의 매개 변수를 계속 조정해야 할 수도 있습니다. https://erget.wordpress.com/2014/03/13/building-an-interactive-gui-with-opencv/

기사의 저자는 OpenCV의 튜토리얼보다 간소화 된 카메라를 보정하는 과정을 만들기 위해 클래스 세트를 구성했습니다

이 블로그 기사를 보라. 당신은 이미지의 주위 잘못된 방법이이 도움이 https://github.com/erget/StereoVision

희망 :

15

:이 클래스는 pypi 패키지로 사용할 수 있습니다. 당신이 튜토리얼의 이미지를 보면

# v 
imgR = cv2.imread('Yeuna9x.png',0) 
imgL = cv2.imread('SuXT483.png',0) 
#^

: 이미지에서

이봐, 램프 뒤에 주석

그냥이 설정을 변경하면 두 이미지의 카메라 위치를 작업 할 수 있습니다 그들이 말하는 것은 left 프레임이며, 이는 right과 동일합니다.

다음은 변경 후의 결과입니다.단지 레코드에 대한

enter image description here

관련 문제