サンプルコード
import glob
import cv2
img_array = []
fps = 0.5 #1秒の間に何枚画像を表示させるか
for filename in sorted(glob.glob("images/*.png")):
img = cv2.imread(filename)
height, width, layers = img.shape
size = (width, height)
img_array.append(img)
name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), fps, size)
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
cv2.VideoWriterの引数で1秒間に表示させる画像の枚数(fps)を調整できる。
例えば1秒間に2枚の画像を表示させたい場合、fps=2とする。
回数を指定して画像を繰り返し表示させる動画
for i in range(3):
これを入れてカッコ内に繰り返したい数値を入れると実現できる。
import glob
import cv2
img_array = []
fps = 1 #1秒の間に何枚画像を表示させるか
for i in range(3):
for filename in sorted(glob.glob("images/*.png")):
img = cv2.imread(filename)
height, width, layers = img.shape
size = (width, height)
img_array.append(img)
name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), fps, size)
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
windowsなら無料の動画作成ソフトが標準で入ってる
Windows11なら「clipchamp」で簡単に動画が作れる。しかも無料。
字幕も音声も簡単につけることができる。
このソフトを使ったほうが断然簡単。

引用元

OpenCVで複数の画像から動画ファイルを作る
OpenCVで複数の画像から動画ファイルを作る 定点撮影などで連番になっている複数の画像をまとめてgifアニメーションに変換する方法です。群馬県でPython / Djangoを中心にウェブアプリケーションを開発している、株式会社ファントム...
コメント