Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像が回転する動画

画像を回転させて動画(GIFアニメ)を作ります。
画像処理にはライブラリPillowのImageモジュールを用い、rotateメソッドにより画像を回転、cropメソッドで画像の中央の部分を切り抜きます。回転角度を変えながら画像を生成しGIFアニメにします。

関連記事

画像を描画しアニメーションGIFを作成する

環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • Pillow 5.2.0
準備

画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリにファイル名'cheergirl.jpg'で保存しました。

f:id:T_A_T:20201116140720j:plain
cheergirl.jpg

コード
from PIL import Image

img = Image.open('cheergirl.jpg')  # 元画像読み出し
width, height = img.size   # サイズの取得

img_list = []   # 画像保存用リスト

# 回転処理
for i in range(0,360,5):
    # 画像を5度ずつ回転し中心を300x300px切り抜いてgif画像リストに追加する    
    img_r = img.rotate(i)
    img_c = img_r.crop((int(width/2)-150, int(height/2)-150, int(width/2)+150, int(height/2)+150))
    img_list.append(img_c)

#アニメーションgifファイルを作成(1フレーム100ms,ループ)
img_list[0].save('rot.gif', save_all=True, append_images=img_list[1:],
                   optimize=True, duration=100, loop=0)  

実行結果

f:id:T_A_T:20201116140920g:plain

以下のサイトを参考にさせていただきました

Pythonの文法メモ > 【Pillow】画像の縮小拡大、切り抜き
Pythonの文法メモ > 【Pillow】画像の回転、反転

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村