PythonとPillowで画像処理を自動化|動画フレームの生成と編集方法
PythonとPillowを使って画像を編集する
Python標準のライブラリに加えて、画像処理のためのPillowを使うと色々な画像編集が可能です。
画像のリサイズ、回転、フィルターの適用、文字や図形の追加といった基本的な画像編集が簡単にできます。
Pillowのインストールと基本的な使い方
Pillowを使うためには、まずPython環境に導入する必要があります。
確認やインストールは以下のように行います。
pip install Pillow
インストールが完了したら、次は基本的な画像処理を試してみましょう。
たとえば、画像のサイズをリサイズするコードです。
from PIL import Image
# 画像を開く
img = Image.open("sample.jpg")
# 画像をリサイズする
resized_img = img.resize((800, 600))
# リサイズした画像を保存する
resized_img.save("resized_sample.jpg")
このコードでは、Pillowライブラリを使って画像を開き、そのサイズを800×600に変更して保存しています。
Pillowを使った画像の基本編集操作
さらに、Pillowを使えば画像にテキストやフィルターを追加することも簡単です。
以下は画像にテキストを追加する例です。
from PIL import Image, ImageDraw, ImageFont
# 画像を開く
img = Image.open("sample.jpg")
draw = ImageDraw.Draw(img)
# フォントの設定
font = ImageFont.truetype("arial.ttf", 40)
# 画像にテキストを追加
draw.text((50, 50), "Hello, Python!", fill="white", font=font)
# テキストを追加した画像を保存
img.save("text_sample.jpg")
このコードでは、ImageDraw.Drawを使って画像に書き込みを行っています。また、フォントや位置、色を指定してテキストを追加する様子を示しています。
PythonとPillowで動画のフレームを作成する
画像処理に慣れたら、その成果を動画フレームとして使う方法もあります。
ここでは、複数の編集済み画像を連続して動画に変換する基本例を示します。
複数の画像から動画を生成する
たとえば、指定されたフォルダ内の画像をすべて読み込んで1つのMP4動画にするには、ffmpegと組み合わせます。
以下にその例を示します。
import subprocess
# Imageフォルダに画像が保存されていると仮定
input_folder = "images/"
output_video = "output_video.mp4"
input_pattern = f"{input_folder}%03d.png"
command = [
"ffmpeg",
"-framerate", "24",
"-i", input_pattern,
"-r", "30",
"-pix_fmt", "yuv420p",
output_video
]
subprocess.run(command)
このコードでは、連番形式の画像ファイルを指定して、それらを指定のフレームレートで繋げることで動画を作成します。
画像の編集から動画生成までの流れ
1. Pillowを使って画像を編集
2. 連番形式で画像を保存
3. ffmpegを使用して連番画像から動画を生成
この一連の流れで、画像処理から動画作成の自動化を実現できます。
まとめ
PythonとPillowを組み合わせることで、様々な画像処理を行えます。
たった1つのスクリプトで、画像編集から動画フレーム生成までを自動化可能です。
- 画像サイズの編集やテキスト追加などができる
- 連番形式の画像を動画化することで、簡易動画作成が可能
- Pillowだけでなく、ffmpegと組み合わせることで、プロフェッショナルな動画編集が実現
これでPythonを使った画像と動画の処理がぐっと身近になります。