Python cv2で動画を保存・再生する方法|自動化で効率アップする手順
Python cv2で動画を保存・再生する方法
Pythonのcv2(OpenCV)は、画像や動画の処理に強力なツールです。これを使うと、カメラからの映像をキャプチャして動画ファイルに保存したり、その動画を再生したりできます。
cv2とは
cv2は、OpenCVのPythonバインディングです。OpenCVは、画像処理やコンピュータビジョンに特化したライブラリです。
Pythonでの動画の保存や再生、画像処理に役立ちます。
Pythonで動画を保存する方法
まずはPythonを使ってカメラ映像を保存してみましょう。
必要なライブラリのインストール
Pythonで動画を扱うには、まずcv2をインストールする必要があります。
次のコマンドを実行して、ライブラリをインストールします。
pip install opencv-python
カメラ映像を動画として保存するコード
カメラから映像をキャプチャし、動画ファイルとして保存するには次のコードを使います。
import cv2
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
このコードを実行すると、output.aviというファイル名で動画を保存します。
コードの意味
| コード | 説明 |
|---|---|
cv2.VideoCapture(0) |
デフォルトカメラから映像をキャプチャします。 |
cv2.VideoWriter_fourcc(*'XVID') |
動画のエンコード方式を設定します。 |
cv2.VideoWriter() |
動画ファイルの出力先を指定し、保存に使用します。 |
cap.isOpened() |
カメラが正しくオープンされているか確認します。 |
cap.read() |
フレームをキャプチャして、retには成功フラグ、frameには画像データが取得されます。 |
out.write(frame) |
フレームを書き込み、動画に保存します。 |
cv2.imshow() |
キャプチャした映像をウィンドウに表示します。 |
cv2.waitKey(1) & 0xFF == ord('q') |
‘q’キーが押された時に、ループを終了します。 |
Pythonで動画を再生する方法
次に、保存した動画を再生する方法を紹介します。
動画ファイルを再生するコード
import cv2
cap = cv2.VideoCapture('output.avi')
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
cv2.imshow('Video', frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
このコードは、指定したoutput.aviという動画ファイルを再生します。
コードの意味
基本的な流れは前述の動画保存とほぼ同じです。cv2.VideoCapture()を使って、ここではファイルを開きフレームを読み込み、それをウィンドウに表示します。再生速度はcv2.waitKey(25)で調整可能です。この場合、25ミリ秒ごとに新しいフレームが表示されます。
まとめ
この方法で、Pythonを使って簡単に動画を保存したり再生したりできるようになります。
- cv2モジュールを使うことで画像処理や動画編集が可能です。
- VideoCaptureでカメラや動画ファイルからフレームを取得できます。
- VideoWriterを使用して映像を動画ファイルとして保存できます。
- 映像の再生は
cv2.imshow()でウィンドウへ出力します。
Pythonを利用して自動化を進めることで、プロジェクトの作業効率が劇的に向上します。動画保存や再生を始め、様々な機能を習得していくのが良いでしょう。