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 = "./data/"
name = "VID_20180314_141424.mp4"
rootname = name.split(".")[0]
cap = cv2.VideoCapture(workdir + name)
counter = 0
each = 5
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("data/")
['IMG_20180307_091159.jpg',
 'VID_20180314_141424_290.png',
 'VID_20180314_141424_335.png',
 'VID_20180314_141424_175.png',
 'VID_20180314_141424_260.png',
 'VID_20180314_141424_370.png',
 'VID_20180314_141424_30.png',
 'VID_20180314_141424_5.png',
 'markers.pdf',
 'VID_20180314_141424_320.png',
 'VID_20180314_141424_150.png',
 'VID_20180314_141424_265.png',
 'VID_20180314_141424_210.png',
 'VID_20180314_141424_85.png',
 'VID_20180314_141424_250.png',
 'VID_20180314_141424_165.png',
 'VID_20180314_141424_255.png',
 'VID_20180314_141424_55.png',
 'VID_20180314_141424_195.png',
 'VID_20180314_141424_200.png',
 'VID_20180314_141424_60.png',
 'IMG_20180307_091235.jpg',
 'VID_20180314_141424_80.png',
 'VID_20180314_141424_215.png',
 'VID_20180314_141424_205.png',
 'VID_20180314_141424_305.png',
 'VID_20180314_141424_70.png',
 'VID_20180314_141424_315.png',
 'VID_20180314_141424_65.png',
 'VID_20180314_141424_380.png',
 'VID_20180314_141424_15.png',
 'IMG_20180307_091210.jpg',
 'VID_20180314_141424_45.png',
 'VID_20180314_141424_240.png',
 'VID_20180314_141424_35.png',
 'VID_20180314_141424_330.png',
 'IMG_20180307_091226.jpg',
 'VID_20180314_141424_180.png',
 'VID_20180314_141424_130.png',
 'IMG_20180307_091203.jpg',
 'VID_20180314_141424_390.png',
 'VID_20180314_141424_120.png',
 'VID_20180314_141424_400.png',
 'VID_20180314_141424_155.png',
 'VID_20180314_141424_220.png',
 'VID_20180314_141424_360.png',
 'chessboard.pdf',
 'VID_20180314_141424_300.png',
 'VID_20180314_141424_235.png',
 'VID_20180314_141424_365.png',
 'VID_20180314_141424_345.png',
 'VID_20180314_141424_340.png',
 'VID_20180314_141424_355.png',
 'VID_20180314_141424_20.png',
 'IMG_20180307_091217.jpg',
 'VID_20180314_141424_115.png',
 'VID_20180314_141424_185.png',
 'VID_20180314_141424_245.png',
 'VID_20180314_141424_105.png',
 'VID_20180314_141424_310.png',
 'IMG_20180307_091220.jpg',
 'VID_20180314_141424.mp4',
 'VID_20180314_141424_10.png',
 'VID_20180314_141424_25.png',
 'VID_20180314_141424_140.png',
 'VID_20180314_141424_40.png',
 'VID_20180314_141424_270.png',
 'VID_20180314_141424_100.png',
 'VID_20180314_141424_110.png',
 'VID_20180314_141424_295.png',
 'VID_20180314_141424_375.png',
 'IMG_20180307_091229.jpg',
 'VID_20180314_141424_160.png',
 'VID_20180314_141424_405.png',
 'VID_20180314_141424_135.png',
 'VID_20180314_141424_395.png',
 'VID_20180314_141424_50.png',
 'VID_20180314_141424_125.png',
 'VID_20180314_141424_275.png',
 'VID_20180314_141424_0.png',
 'VID_20180314_141424_285.png',
 'VID_20180314_141424_280.png',
 'VID_20180314_141424_95.png',
 'VID_20180314_141424_75.png',
 'VID_20180314_141424_90.png',
 'IMG_20180307_091213.jpg',
 'VID_20180314_141424_145.png',
 'VID_20180314_141424_350.png',
 'VID_20180314_141424_190.png',
 'VID_20180314_141424_230.png',
 'VID_20180314_141424_225.png',
 'VID_20180314_141424_385.png',
 'VID_20180314_141424_170.png',
 'VID_20180314_141424_325.png']
int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
408