🐍
Python: OpenCVで動画を重ねて再生する
下準備
pixabayを利用して重ねて再生するための動画を取ってきます。
今回は2つの動画を取ってきました。
Elster - 35908.mp4
Maple Leaf - 36419.mp4
ソースコード
import cv2
import sys
# 動画のパスを指定
video1_path = "Elster - 35908.mp4"
video2_path = "Maple Leaf - 36419.mp4"
# ファイルを読み込み
cap1 = cv2.VideoCapture(video1_path)
cap2 = cv2.VideoCapture(video2_path)
# 動画ファイルが開けたかを確認
if not cap1.isOpened():
print("1つ目の動画ファイルの読み込みに失敗しました。")
sys.exit()
if not cap2.isOpened():
print("2つ目の動画ファイルの読み込みに失敗しました。")
sys.exit()
# 出力する動画のサイズを指定
width = 800
height = 600
# 動画を再生する
while True:
# 1つ目の動画から1フレーム取得する
ret1, frame1 = cap1.read()
if not ret1:
break
# 2つ目の動画から1フレーム取得する
ret2, frame2 = cap2.read()
if not ret2:
break
# フレームのサイズを合わせる
frame1 = cv2.resize(frame1, (800, 600))
frame2 = cv2.resize(frame2, (800, 600))
# 画像を重ね合わせる
frame3 = cv2.addWeighted(
src1=frame1, alpha=0.5,
src2=frame2, beta=0.5,
gamma=0
)
# 画像を表示する
cv2.imshow("Frame", frame3)
key = cv2.waitKey(30)
if key == 27:
break
# 終了時処理
cap1.release()
cap2.release()
cv2.destroyAllWindows()
実行結果
重ねて再生されます
Discussion