Traffic-Tracker / backend /extract_frames.py
cyberai-1
add file
624863d
Raw
History Blame
1.12 kB
"""
extract_frames.py — Extract frames from videos for dataset creation
Usage:
python extract_frames.py --video traffic.mp4 --out frames/ --every 15
"""
import cv2
import argparse
from pathlib import Path
def extract_frames(video_path: str, out_dir: str, every: int = 10, max_frames: int = 5000):
cap = cv2.VideoCapture(video_path)
out = Path(out_dir)
out.mkdir(parents=True, exist_ok=True)
n, saved = 0, 0
while True:
ret, frame = cap.read()
if not ret or saved >= max_frames:
break
if n % every == 0:
fp = out / f"frame_{saved:06d}.jpg"
cv2.imwrite(str(fp), frame)
saved += 1
n += 1
cap.release()
print(f"Saved {saved} frames to {out_dir}")
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--video", required=True)
p.add_argument("--out", default="frames")
p.add_argument("--every", type=int, default=10)
p.add_argument("--max", type=int, default=5000)
args = p.parse_args()
extract_frames(args.video, args.out, args.every, args.max)