Skip to content

Commit e5f3676

Browse files
author
Guillem Braso Andilla
committed
Add to_frames script
1 parent 19fb8e9 commit e5f3676

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

tools/anns/to_frames.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import argparse
2+
import os
3+
import os.path as osp
4+
import cv2
5+
import glob
6+
7+
import sys
8+
9+
sys.path.append(osp.dirname(osp.dirname(__file__)))
10+
from configs.path_cfg import MOTSYNTH_ROOT
11+
import tqdm
12+
13+
14+
def main():
15+
parser = argparse.ArgumentParser(description='Get frames from a video')
16+
parser.add_argument('--motsynth-root', help='Directory hosting MOTSYnth part directories', default=MOTSYNTH_ROOT)
17+
args = parser.parse_args()
18+
19+
video_paths = glob.glob(osp.join(args.motsynth_root, 'MOTSynth_[0-9]/[0-9][0-9][0-9].mp4'))
20+
21+
frames_dir = os.path.join(args.motsynth_root, "frames")
22+
os.makedirs(frames_dir, exist_ok=True)
23+
24+
print("Start extracting frames...")
25+
26+
for video_path in tqdm.tqdm(video_paths):
27+
vidcap = cv2.VideoCapture(video_path)
28+
29+
seq_name = osp.basename(video_path).split(".")[0].zfill(3)
30+
out_dir = os.path.join(frames_dir, seq_name, 'rgb')
31+
os.makedirs(out_dir, exist_ok=True)
32+
33+
count = 1
34+
success = True
35+
36+
#print("Unpacking video...")
37+
38+
while success:
39+
success, image = vidcap.read()
40+
if count < 3:
41+
count += 1
42+
continue
43+
if not success or count == 1803:
44+
break
45+
if count%200 == 0:
46+
print("Extract frames until: " + str(count - 3).zfill(4) + ".jpg")
47+
filename = os.path.join(out_dir, str(count - 3).zfill(4) + ".jpg")
48+
cv2.imwrite(filename, image) # save frame as JPEG file
49+
count += 1
50+
51+
print("Done!")
52+
53+
if __name__ == '__main__':
54+
main()

0 commit comments

Comments
 (0)