トップページ -> 最新情報技術の実習と研究ツール -> OpenCV と Python によるコンピュータビジョン、画像処理 -> Python + OpenCV でステレオマッチング,点や線の描画
[サイトマップへ]

Python + OpenCV でステレオマッチング,点や線の描画

目次

サイト内の関連Webページ


前準備

Anaconda のインストール

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

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

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

Windows では次の手順で行う

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

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

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

    conda install -y spyder opencv 
    

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

https://github.com/opencv/opencv/tree/master/samples/data で公開されている home.jpg を使うことにします (感謝)

  1. まず、C:\image のような作業用のディレクトリ(フォルダ)を作る
  2. 次の Web ページを開く

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

  3. home.jpg を選ぶ

  4. クリックしたら、ダウンロード画面に変わるので「Download」をクリック.

  5. 画像ファイルを、C:\image の下に保存

  6. 上と同じ手順で aloeL.jpg, alorR.jpg の2つもダウンロードし、C:\image の下に保存

ステレオマッチングによる距離画像の生成

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

import cv2 
import numpy as np

mono0 = cv2.cvtColor( cv2.imread("C:/image/aloeL.jpg"), cv2.COLOR_BGR2GRAY )
mono1 = cv2.cvtColor( cv2.imread("C:/image/aloeR.jpg"), cv2.COLOR_BGR2GRAY )
stereo = cv2.StereoBM_create(blockSize= 15, numDisparities=64)
disparity = stereo.compute(mono0, mono1)
map = ( disparity - np.min(disparity) ) / ( np.max(disparity) - np.min(disparity) )
blur = cv2.GaussianBlur(map, (15, 15), 5)
cv2.imshow("", blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

カラー画像と丸や線の重ね合わせ表示

丸の重ねあわせ

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

import cv2
bgr = cv2.imread("C:/image/home.jpg")
cv2.circle(bgr, (100, 100), 10, 255, -1)
cv2.imshow("", bgr)
cv2.waitKey(0)
cv2.destroyAllWindows()

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

線の重ねあわせ

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

import cv2
bgr = cv2.imread("C:/image/home.jpg")
cv2.line(bgr, (100, 100), (200, 300), 10, 5, -1)
cv2.imshow("", bgr)
cv2.waitKey(0)
cv2.destroyAllWindows()

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