-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvideo_to_frames.py
49 lines (35 loc) · 1.39 KB
/
video_to_frames.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import cv2
import os, time, sys, shutil
import numpy as np
PATH_DATA_FOLDER = './data/'
PATH_TRAIN_LABEL = PATH_DATA_FOLDER + 'train.txt'
PATH_TRAIN_VIDEO = PATH_DATA_FOLDER + 'train.mp4'
PATH_TRAIN_IMAGES_FOLDER = PATH_DATA_FOLDER + 'train_images/'
PATH_TEST_LABEL = PATH_DATA_FOLDER + 'test.txt'
PATH_TEST_VIDEO = PATH_DATA_FOLDER + 'test.mp4'
PATH_TEST_IMAGES_FOLDER = PATH_DATA_FOLDER + 'test_images/'
def convert_data(video_input_path, image_folder_path):
if os.path.exists(image_folder_path):
shutil.rmtree(image_folder_path)
os.makedirs(image_folder_path)
print("Converting video to frames: ", video_input_path)
t1 = time.time()
video_reader = cv2.VideoCapture(video_input_path)
num_frames = video_reader.get(cv2.CAP_PROP_FRAME_COUNT)
count = 0
while True:
ret, next_frame = video_reader.read()
if ret is False:
break
image_path_out = os.path.join(image_folder_path, str(count) + '.jpg')
cv2.imwrite(image_path_out, next_frame)
count += 1
sys.stdout.write('\rprocessed frames: %d of %d' % (count, num_frames))
t2 = time.time()
video_reader.release()
print(' Conversion completed !')
print(' Time Taken:', (t2 - t1), 'seconds')
return
if __name__ == '__main__':
convert_data(PATH_TRAIN_VIDEO, PATH_TRAIN_IMAGES_FOLDER)
convert_data(PATH_TEST_VIDEO, PATH_TEST_IMAGES_FOLDER)