Note

This notebook can be downloaded here: video_to_image.ipynb

Video to imageΒΆ

import numpy as np
import cv2, PIL, os
from cv2 import aruco
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib as mpl
import pandas as pd
%matplotlib nbagg
workdir = "../Aruco/data/calib_tel_ludo2/"
name = "VID_20180406_104312.mp4"
rootname = name.split(".")[0]
cap = cv2.VideoCapture(workdir + name)
counter = 0
each = 10
length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
for i in range(length):
    ret, frame = cap.read()
    if i % each == 0: cv2.imwrite(workdir + rootname + "_{0}".format(i) + ".png", frame)

cap.release()
os.listdir("../Aruco/data/calib_tel_ludo/")
['VID_20180406_085421_210.png',
 'VID_20180406_085421_230.png',
 'VID_20180406_085421_150.png',
 'VID_20180406_085421_160.png',
 'VID_20180406_085421_65.png',
 'VID_20180406_085421_135.png',
 'VID_20180406_085421_0.png',
 'VID_20180406_085421_255.png',
 'VID_20180406_085421_280.png',
 'VID_20180406_085421_85.png',
 'VID_20180406_085421_165.png',
 'VID_20180406_085421_260.png',
 'VID_20180406_085421_100.png',
 'VID_20180406_085421_245.png',
 'VID_20180406_085421_155.png',
 'VID_20180406_085421_185.png',
 'VID_20180406_085421_250.png',
 'VID_20180406_085421_215.png',
 'VID_20180406_085421_5.png',
 'VID_20180406_085421_15.png',
 'VID_20180406_085421_145.png',
 'VID_20180406_085421_70.png',
 'VID_20180406_085421_270.png',
 'VID_20180406_085421_60.png',
 'VID_20180406_085421_235.png',
 'VID_20180406_085421_290.png',
 'VID_20180406_085421_120.png',
 'VID_20180406_085421_95.png',
 'VID_20180406_085421_170.png',
 'VID_20180406_085421_195.png',
 'VID_20180406_085421_50.png',
 'VID_20180406_085421_225.png',
 'VID_20180406_085421.mp4',
 'VID_20180406_085421_190.png',
 'VID_20180406_085421_275.png',
 'VID_20180406_085421_295.png',
 'VID_20180406_085421_30.png',
 'VID_20180406_085421_75.png',
 'VID_20180406_085421_175.png',
 'VID_20180406_085421_200.png',
 'VID_20180406_085421_140.png',
 'VID_20180406_085421_115.png',
 'VID_20180406_085421_10.png',
 'VID_20180406_085421_80.png',
 'VID_20180406_085421_25.png',
 'VID_20180406_085421_130.png',
 'VID_20180406_085421_110.png',
 'VID_20180406_085421_105.png',
 'VID_20180406_085421_40.png',
 'VID_20180406_085421_205.png',
 'VID_20180406_085421_125.png',
 'VID_20180406_085421_35.png',
 'VID_20180406_085421_90.png',
 'VID_20180406_085421_265.png',
 'VID_20180406_085421_240.png',
 'VID_20180406_085421_300.png',
 'VID_20180406_085421_285.png',
 'VID_20180406_085421_55.png',
 'VID_20180406_085421_220.png',
 'VID_20180406_085421_180.png',
 'VID_20180406_085421_45.png',
 'VID_20180406_085421_20.png']
int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
0