OpenCVで簡単に動画に任意の処理ができます。
1、ビデオを読み込んで書き込む
import cv2
cap = cv2.VideoCapture('./video.mp4') #読み込む動画のパス
fps = cap.get(cv2.CAP_PROP_FPS)
fourcc = cv2.VideoWriter_fourcc('m','p','4', 'v') #mp4フォーマット
video = cv2.VideoWriter('./edited_video.mp4', fourcc, fps, (1920,1080)) #書き込み先のパス、フォーマット、fps、サイズ
avg = None
while True:
# 1フレームずつ取得する。
ret, frame = cap.read()
if not ret:
break
#🐥 任意の処理をここに書く 🐥
video.write(frame)
key = cv2.waitKey(30)
if key == 27:
break
cap.release()
video.release()
2、処理を書く
例えば、動画をスケッチ風にするには、
1、の任意の処理のところに以下を入れます。
#🐥 任意の処理をここに書く 🐥
# 白黒画像に
grayImage = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 白黒反転
grayImageInv = 255 - grayImage
# ぼかしをかける
grayImageInv = cv2.GaussianBlur(grayImageInv, (21, 21), 0)
#blend using color dodge
output = cv2.divide(grayImage, 255-grayImageInv, scale=256.0)
output = cv2.cvtColor(output, cv2.COLOR_GRAY2BGR)
video.write(output)
🐣
フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com
Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。