LoginSignup
0
0

More than 3 years have passed since last update.

動画をリサイズして画像に直すpythonプログラム

Last updated at Posted at 2019-11-06

探しても見当たらなかったので作りました。
OpenCVで開ける動画ファイルを適当なフレーム毎に間引きながらリサイズして画像ファイルとして保存します。

コード

何も難しいことはしてないので特に説明は不要かと思います。

video2jpg.py
import cv2
import os
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--video_path", type=str)
parser.add_argument("--save_dir", type=str, default="save/")
parser.add_argument("--interval", type=int, default=10)
parser.add_argument("--resize", type=int, default=None, nargs="+")
opt = parser.parse_args()

def video2jpg():
    if not os.path.exists(opt.save_dir):
        os.makedirs(opt.save_dir)
    cap = cv2.VideoCapture(opt.video_path)
    l_cap = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) 

    for i in range(l_cap):
        flag, frame = cap.read()
        if flag == True and i % opt.interval == 0: 
            save_path = os.path.join(opt.save_dir, "{}_{}.jpg".format(os.path.basename(opt.video_path).split(".")[0], i))
            if opt.resize != None: 
                frame = cv2.resize(frame, (opt.resize[0], opt.resize[1]))  
            cv2.imwrite(save_path, frame)
            print("{} has been saved".format(save_path))

if __name__ == "__main__":
    video2jpg()

実行

例えばvideo2jpg.pyと同ディレクトリに存在するdouga.aviを10フレーム毎に480×480にリサイズして画像ファイルとして保存したい場合は次のようにターミナルに入力します。

python3 video2jpg.py --video_path douga.avi --interval 10 --resize 480 480
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0