【opencv-python】ステレオ画像からの距離計測
1. 記事の目的
参考文献[2]のステレオ画像からの距離計測において、opencv-python 4.4.0に対応していなかったので、対応するコードを提供する。具体的には、createStereoBM()と言う関数をStereoBM_create()に変更すれば良い。
2. 実行確認済み環境
Mac OS Catalina 10.15.7
Python 3.8.5
opencv-python 4.4.0.46
numpy 1.19.1
matplotlib 3.3.1
3. 実装コード
まず、図1を"tsukuba_l.jpg"、図2を"tsukuba_r.jpg"と言う名前で、以下のコードを書いたpythonファイルと同じ場所に保存する(参考文献[2]からも入手できる)。
実装コードを記す。
import numpy as np import cv2 from matplotlib import pyplot as plt imgL = cv2.imread('./sukuba_l.png',0) imgR = cv2.imread('./tsukuba_r.png',0) stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15) disparity = stereo.compute(imgL,imgR) plt.imshow(disparity, 'gray') plt.show()
pythonファイルを"stereo.py"と言う名前にした場合、次のコマンドで実行が可能である。
python3 stereo.py
4. 実行結果
次の画像が出力される。
5. 参考文献
[1] OpenCV-Pythonチュートリアル/カメラキャリブレーションと3次元復元/ステレオ画像からの距離計測
ステレオ画像から距離計測 — OpenCV-Python Tutorials 1 documentation
[2] OpenCV github
File Finder · GitHub