2020年8月30日日曜日

MoviePyとscikit-imageで動画画面にノイズをつける

MoviePyとscikit-imageで動画画面にノイズをつけるには、fl_imageメソッドとrandom_noise関数を使用します。

サンプルコード

以下のサンプルコードでは、scikit-imageのsobel/roberts輪郭抽出し、動画を出力しています。
from moviepy.editor import *
from skimage.util import *
import numpy as np

def process_random_noise(image, *, mode='gaussian', seed=None, clip=True, **kwargs):
    rn = random_noise(img_as_float(image), mode, seed, clip, **kwargs)
    return img_as_ubyte(rn)

clip1 = VideoFileClip("hydrangea.mp4")

clip1t = clip1.fl_image(lambda clip1: process_random_noise(clip1, var=0.03))
clip1t.write_videofile("random_noise_gaussian.mp4")

clip1t = clip1.fl_image(lambda clip1: process_random_noise(clip1, mode='pepper', amount=0.3))
clip1t.write_videofile("random_noise_pepper.mp4")

〇元動画の画面

〇出力動画の画面(gaussian)

〇出力動画の画面(pepper)

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

関連情報

MoviePyのまとめ

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

0 件のコメント:

コメントを投稿