niobures's picture
mmaction2
d3dbf03 verified
# Copyright (c) OpenMMLab. All rights reserved.
import os
import os.path as osp
import cv2
src_dir = 'data/multisports/trainval'
target_dir = 'data/multisports/rawframes'
sport_list = ['aerobic_gymnastics']
for sport in sport_list:
video_root = osp.join(src_dir, sport)
if not osp.exists(video_root):
print('No {} video dir to generate rgb images.'.format(video_root))
continue
print('Will generate {} rgb dir for {}.'.format(
len(os.listdir(video_root)), osp.basename(sport)))
for clip_name in os.listdir(video_root):
mp4_path = osp.join(video_root, clip_name)
save_dir = osp.join(target_dir, sport, clip_name[:-4])
if not osp.exists(save_dir):
os.makedirs(save_dir)
cap = cv2.VideoCapture(mp4_path)
fps = cap.get(cv2.CAP_PROP_FPS)
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
fourcc = cv2.VideoWriter_fourcc(*'I420')
ii = 1
while (cap.isOpened()):
ret, frame = cap.read()
aa = str(ii)
s = aa.zfill(5)
image_name = osp.join(save_dir + '/' + s + '.jpg')
if ret is True:
cv2.imwrite(image_name, frame)
else:
break
ii = ii + 1
cap.release()
print('Generate {} rgb dir successfully.'.format(clip_name[:-4]))