トップページ -> データベース研究スタート -> 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. Anaconda プロンプト (Anaconda Prompt)管理者として実行

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

    conda install -y conda-build
    

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

  7. conda が更新されたので,Anaconda プロンプトをいったん閉じる
  8. 再び,Anaconda プロンプト (Anaconda Prompt)管理者として実行
  9. Anaconda プロンプトで,次のコマンドを実行

    conda upgrade -y pip
    conda upgrade -y setuptools
    conda upgrade -y conda
    conda upgrade -y conda-build
    

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

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

  1. Anaconda プロンプト (Anaconda Prompt)」を管理者として実行

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

    ※ 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()