デプスマップを計算するために使用したいステレオ画像が2つあります。私は残念ながらC/C++を知らないのですが、私はPythonを知っています - だからthis tutorialを見つけたとき、私は楽観的でした。Python/OpenCV:ステレオ画像からデプスマップを計算する
残念ながら、このチュートリアルは多少古くなっているようです。チュートリアル自体で使用されたそれは、すべての(「StereoBM」にリネーム「createStereoBM」)で実行するように微調整する必要がないだけでなく、それが実行しない場合には、それが良い結果を与えるものではありません、でも例のステレオ画像に。
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
パラメータを調整しても問題は改善されません。私が見つけたすべてのドキュメントは、オリジナルのC言語版のopenCVコードであり、python-library-equivalentではありません。残念ながら、これを使って物事を改善することはできませんでした。
助けていただけたら幸いです!
は、チュートリアルでは、将来(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