Pythonでいろいろやってみる

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

写真をズームイン動画にする

写真からズームインする動画を作ります。写真の四方をカットし任意の動画サイズにリサイズします。このカットの大きさを徐々に増やすことでズームインしているように見せます。

関連記事

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

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

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

f:id:T_A_T:20210711204847j:plain
ikari.jpg(幅6720px高さ4480px)

コード

pillowのcropにより元画像をクロップします。左右のクロップ幅を0~元画像の幅の1/3、上下のクロップ幅を0~元画像の高さの1/3と徐々に増やすことでズームインに見せます。クロップした画像は元画像の1/10サイズにリサイズし、画像保存用リストに追加、そのリストからgifアニメを生成します。

from PIL import Image

im = Image.open('ikari.jpg')  # 画像読み出し
(width, height) = (im.width, im.height)

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

# 画像をクロップして四方を等間隔に削り、
# 元画像の1/10にリサイズ、画像リストに追加
for i in range(50):
    im_crop = im.crop((width/150*i, height/150*i, width*(1-i/150), height*(1-i/150))) 
    im_resize = im_crop.resize((width//10, height//10))
    img_list.append(im_resize)

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

実行結果

f:id:T_A_T:20210711204651g:plain

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

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

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

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