2020年9月4日金曜日

MoviePyとscikit-imageで2つの動画の片方をぼかした円形に切り取って重ね合わせる

MoviePyとscikit-imageで2つの動画の片方をぼかした円形に切り取って重ね合わせるには、円形のマスクを作成してぼかしてから、2つの動画を重ね合わせます。

〇サンプルコード
以下のサンプルコードでは、マスクを作成してdisk関数で円を描画してgaussianフィルターでぼかしてから、CompositeVideoClipを使用して2つの動画を重ね合わせます。
from moviepy.editor import *
from skimage.draw import *
import numpy as np
from skimage.filters import *

def process_gaussian(image, sigma=1):
    return gaussian(image, sigma=sigma)*255

clip1 = VideoFileClip("hydrangea.mp4")
clip2 = VideoFileClip("riceplant.mp4")

img = np.zeros((clip1.h, clip1.w), dtype=np.uint8)
rr, cc = disk((clip1.h/2, clip1.w/2), clip1.h/2)
img[rr, cc] = 1
clip2mask = ImageClip(img, ismask=True)
blurred_mask = clip2mask.fl_image(lambda clip2mask: process_gaussian(clip2mask, sigma=100))

clip3 = CompositeVideoClip([clip1, clip2.set_mask(blurred_mask)])

clip3.write_videofile("blurred_circle_mask.mp4")


〇元動画の画面

 

〇出力動画の画面

 

〇scikit-imageインストール MoviePyの他、仮想環境のフォルダに移動して以下のコマンドを実行します。

pipenv install scikit-image

関連情報

MoviePyのまとめ

・moviepyのホームページ
https://zulko.github.io/moviepy/

0 件のコメント:

コメントを投稿