トップページ -> コンピュータ実習 -> ステレオ画像 -> ステレオマッチングによりステレオ画像から距離画像を求める(Python + OpenCV を使用)
[サイトマップへ], [サイト内検索へ],

ステレオマッチングによりステレオ画像から距離画像を求める(Python + OpenCV を使用)

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ設定 教材(公開) サポートページ

次で公開されているプログラムを参考に、ステレオ画像から距離画像を求める

https://github.com/opencv/opencv/blob/master/samples/python/stereo_match.py

サイト内の関連Webページ


前準備として,Pythonのインストールが終わっていること.

Python のインストール

※ Python のプログラム作成には、PyCharmなどが便利である.

以下,Windows に Python, git, cmake をインストール済みであるものとして説明を続ける.

OpenCV, spyder パッケージのインストール

Windows では次の手順で行う

  1. Window でコマンドプロンプトを実行

  2. OpenCV, spyder パッケージのインストール

    ※ 「conda install」は、パッケージをインストールするためのコマンド

    conda install -y opencv
    conda install -y -c spyder-ide spyder
    


このページで説明のために使用する画像

  1. まず、C:\image のような作業用のディレクトリ(フォルダ)を作る

  2. 次の Web ページを開く

    https://github.com/opencv/opencv/tree/master/samples/data

  3. aloeL.jpg, alorR.jpg の2つをダウンロードし、C:\image の下に保存


ステレオマッチングによりステレオ画像から距離画像を求める

Python プログラムを動かしたい。IPython シェルのコンソールを使う。

import cv2 
import numpy as np

imgL = cv2.imread("C:/image/aloeL.jpg")
imgR = cv2.imread("C:/image/aloeR.jpg")

# disparity range is tuned for 'aloe' image pair
window_size = 3
min_disp = 16
num_disp = 112-min_disp
stereo = cv2.StereoSGBM_create(minDisparity = min_disp,
    numDisparities = num_disp,
    blockSize = 16,
    P1 = 8*3*window_size**2,
    P2 = 32*3*window_size**2,
    disp12MaxDiff = 1,
    uniquenessRatio = 10,
    speckleWindowSize = 100,
    speckleRange = 32
)

print('computing disparity...')
disparity = stereo.compute(imgL, imgR).astype(np.float32) / 16.0

cv2.imshow('disparity', (disparity-min_disp)/num_disp)
cv2.waitKey(0)
cv2.destroyAllWindows()

画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる



本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ)