トップページ -> データベース研究スタート -> OpenCV を使ってみる -> Python + OpenCV でビデオを表示してみる
[サイトマップへ]  

Python + OpenCV でビデオを表示してみる

Python + OpenCV でビデオを表示してみる

キーワード: OpenCV, cv2.VideoCapture, Python


前準備

前準備として,Anaconda のインストール, OpenCV のインストールが終わっていること. 手順を下に説明しています.

Anaconda のインストール

Python 3 の開発環境である Anacondaをおすすめ.Window でのインストール手順は次の通りです(Linuxでも同様の手順です).

  1. https://www.continuum.io/downloads#windowsを開く

  2. Download」をクリックする.

  3. ダウンロードが始まるので確認する.

  4. ダウンロードした .exe ファイルを実行して,Anacondaをインストール.

    Python処理系にはいくつかの種類がある. この Web ページでは Anaconda をおすすめしている. 以下,Windows に Anacondaをインストールしたものとして説明を続ける.

  5. Windows で,コマンドプロンプトを管理者として実行

    ※ Linux の場合には,端末を開く(pyenvを使っているときは pip の実行に管理者権限を必要としない)

  6. まずは,最新の conda-build パッケージが欲しい.今のコマンドプロンプトで,次のコマンドを実行

    conda install -y conda-build
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.

  7. conda が更新されたので,コマンドプロンプトをいったん閉じる

  8. 再び,コマンドプロンプトを管理者として実行

  9. コマンドプロンプトで,次のコマンドを実行

    conda update -y pip
    conda update -y setuptools
    conda update -y conda
    conda update -y conda-build
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.

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

  1. Windows で,コマンドプロンプトを管理者として実行

    ※ Linux の場合には,端末を開く(pyenvを使っているときは pip の実行に管理者権限を必要としない)

  2. 今のコマンドプロンプトで,次のコマンドを実行

    ※ Anaconda や Miniconda を使っていないときは conda コマンドがないので pip コマンドを使ってください

    conda install -y opencv 
    

    ※ 「Proceed ([y]/n)?」のように表示されたときは y, Enter キー


プログラム例

ここで使用する avi 形式ビデオファイル: 1-2.AVI. 必要であればダウンロードして使ってください.

※ ダウンロードするとき「日本語を含むディレクトリ」,「空白文字を含むディレクトリ」の下に保存するのは避けた方が良いです. 下のプログラムでは E:\ の直下にダウンロードしたとして説明しています.

ビデオファイルの表示例

Python 処理系」で次を実行.(Anacondaに入っている開発環境 spyder を実行し,右下の ipython コンソールを使うのが簡単.)

import cv2
import numpy as np

v = cv2.VideoCapture("e:/1-2.avi")
while(v.isOpened()):
	r, f = v.read()
	f = f[0:400, 0:300, 0:3]
	cv2.imshow("", f)
	if cv2.waitKey(1) & 0xFF == ord('q'):
		break
v.release()
cv2.destroyAllWindows()

実行結果の例

USB 接続ビデオカメラの表示例

USB接続できるビデオカメラを準備し,パソコンに接続しておく.

Python 処理系」で次を実行.(Anacondaに入っている開発環境 spyder を実行し,右下の ipython コンソールを使うのが簡単.)

import cv2
import numpy as np

v = cv2.VideoCapture(0)
while(v.isOpened()):
	r, f = v.read()
	cv2.imshow("", f)
	if cv2.waitKey(1) & 0xFF == ord('q'):
		break
v.release()
cv2.destroyAllWindows()

実行結果の例

では,試しに、以上のの手順により USB カメラを使って、顔写真を撮影してみる.

連続フレームの差分表示例

USB接続できるビデオカメラを準備し,パソコンに接続しておく.

Python 処理系」で次を実行.(Anacondaに入っている開発環境 spyder を実行し,右下の ipython コンソールを使うのが簡単.)

次の Python プログラムを実行

import cv2
import numpy as np
cv2.namedWindow("video", cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)
v = cv2.VideoCapture(0)
r, f = v.read()
while(v.isOpened()):
	f2 = f
	r, f = v.read()
	cv2.imshow("video", f - f2 + 128)
	if cv2.waitKey(1) & 0xFF == ord('q'):
		break
v.release()
cv2.destroyAllWindows()