こんにちは、ヒガシです。
このページでは、以下のような動画ファイルから
こんな感じで各フレームにおける画像を切り出して保存する方法をご紹介していきます。
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)
実行結果です。
以下のように問題なく画像が出力されていました。
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)
実行結果です。
こちらも問題なさそうですね。
おわりに
というわけで今回はpython-openCVを使って、動画データからフレームごとの画像を切り出して出力する方法をご紹介しました。
何かの役にやっていれば幸いです。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント