【Python-openCV】動画(gif,mp4)ファイルからフレームごとの画像を出力!

こんにちは、ヒガシです。

 

このページでは、以下のような動画ファイルから

 

こんな感じで各フレームにおける画像を切り出して保存する方法をご紹介していきます。

動画ファイルの各フレームを画像化した様子

 

gif, mp4形式のそれぞれの動画に対して処理を実演してみます。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

必要なライブラリを準備する

今回使うのは、私のブログではいつも同じみのopenCVのみです。

 

インストール方法~使い方については以下の記事で解説していますので、使ったことがない人はまずはこちらからご覧ください。

【Python-OpenCV】インストール方法、バージョン確認、使用時の注意点

Python-openCVの基本操作9つ!読み込み⇒加工⇒保存まで!

スポンサーリンク

プログラム実行フォルダ構成

今回は以下のようなフォルダ構成で実行してみようと思います。

サンプルコードの実行フォルダ構成

それでは実際のコーディングにはいっていきましょう!

 

スポンサーリンク

動画ファイルをフレームごとに画像化するサンプルコード

早速ですが、以下がそのサンプルコードです。

 

まずはgif動画を画像化してみましょう。

#ライブラリインポート
import cv2
#動画ファイルの読み込み
movie = cv2.VideoCapture('01_gif_test.gif')
#フレーム数の取得
nframe = int(movie.get(cv2.CAP_PROP_FRAME_COUNT))
#画像化処理
for i in range(nframe):
    ret, frame = movie.read()
    cv2.imwrite('gif_pic/pic_'+str(i).zfill(3)+'.jpg', frame)

 

実行結果です。

以下のように問題なく画像が出力されていました。

gif動画を画像化した結果

 

mp4もやってみましょう。

※動画ファイル名、出力場所を変更しただけです。

#ライブラリインポート
import cv2
#動画ファイルの読み込み
movie = cv2.VideoCapture('02_mp4_test.gif')
#フレーム数の取得
nframe = int(movie.get(cv2.CAP_PROP_FRAME_COUNT))
#画像化処理
for i in range(nframe):
    ret, frame = movie.read()
    cv2.imwrite('mp4_pic/pic_'+str(i).zfill(3)+'.jpg', frame)

 

実行結果です。

mp4動画を画像化した結果

こちらも問題なさそうですね。

 

スポンサーリンク

おわりに

というわけで今回はpython-openCVを使って、動画データからフレームごとの画像を切り出して出力する方法をご紹介しました。

何かの役にやっていれば幸いです。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました