今回の白黒動画のカラー化も『検索力』の賜物です
まず、動画を画像ファイルに変換します
それらのファイルをカラー化します
更にそれらを見栄え良くするために『より解像度を上げる努力』をします
そして再び画像を動画に戻します
一つにまとめることも出来ますが
応用範囲が広いと感じて別々にコードを公表します
動画から静止画に変換
move_to_jpg.py
# coding: utf-8
import os
import cv2
#入力映像ファイルの指定
inname = './rome2.mp4' # 白黒動画ファイル名
#画像生成時にファイル名する名前の指定
outname = 'rome01'
#動画読み込み
captureimg = cv2.VideoCapture(inname)
#1フレームずつ書く
# ./dataフォルダーの中に保存される
cnt = 0
while True:
ret, frame = captureimg.read()
if ret == True:
# dataフォルダーの中に指定した名前を頭に
# 7桁(重要)のフレーム番号を入れて,PNG形式で保存
cv2.imwrite('./data/'+outname+'_'+str("{0:07d}".format(cnt)) +'.png', frame)
cnt += 1
else:
break
静止画から動画に変換
jpg_to_mov.py
import os
import cv2
import glob
import numpy as np
# SQLなどのデータベースを扱ったことがある方はご存じだと思いますが
# 0桁数が小さいとソートが滅茶苦茶になり動画がとんでもないことに
# 例えば1,2,3・・・,10・・nの場合は 2 よりも10の方が前にソートされます
jpg_files = sorted(glob.glob('data/result/*.jpg'))
fourcc = cv2.VideoWriter_fourcc('m','p','4', 'v')
video = cv2.VideoWriter('ImgVideo.mp4', fourcc, 20.0,(640, 360))
for jpg_file in jpg_files:
img = cv2.imread(jpg_file)
video.write(img)
video.release()