This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
autolab:duckietown-city:cameras [2022/12/12 12:23] valentina_golubeva |
autolab:duckietown-city:cameras [2022/12/19 09:39] (current) valentina_golubeva |
||
---|---|---|---|
Line 25: | Line 25: | ||
=== Как записать видео с камеры === | === Как записать видео с камеры === | ||
- | Создаём файлик с кодом ниже, передаём в качестве аргумента номер камеры при запуске.(python3 filename.py --cam_num 4) | + | Создаём файлик с кодом ниже. |
+ | |||
+ | |||
+ | from datetime import datetime | ||
+ | import cv2 | ||
+ | import argparse | ||
+ | parser = argparse.ArgumentParser() | ||
+ | parser.add_argument('--cam_num', type=int, default=1) | ||
+ | args = parser.parse_args() | ||
+ | if args.cam_num not in range(1, 7): | ||
+ | print(f"Camera with number{args.cam_num} does not exist!") | ||
+ | exit(0) | ||
+ | video = cv2.VideoCapture(f"http://autolab.moevm.info/camera_{args.cam_num}/live.mjpg") | ||
+ | if (video.isOpened() == False): | ||
+ | print("Error reading video file") | ||
+ | exit(0) | ||
+ | frame_width = int(video.get(3)) | ||
+ | frame_height = int(video.get(4)) | ||
+ | size = (frame_width, frame_height) | ||
+ | video_name = f"{datetime.now().strftime('%d_%m_%Y_%H:%M:%S')}.avi" | ||
+ | result = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc(*'MJPG'), 20, size) | ||
+ | while True: | ||
+ | ret, frame = video.read() | ||
+ | if ret == True: | ||
+ | result.write(frame) | ||
+ | cv2.imshow('Frame', frame) | ||
+ | if cv2.waitKey(1) & 0xFF == ord('s'): | ||
+ | break | ||
+ | else: | ||
+ | break | ||
+ | video.release() | ||
+ | result.release() | ||
+ | cv2.destroyAllWindows() | ||
+ | print(f"The video {video_name} was successfully saved") | ||
+ | |||
+ | |||
+ | === Запуск === | ||
+ | |||
+ | Передаём в качестве аргумента номер камеры при запуске. Доступны номера камер от 1 до 6. | ||
+ | |||
+ | python3 filename.py --cam_num 4 | ||
- | from datetime import datetime | ||
- | import cv2 | ||
- | import argparse | ||
- | parser = argparse.ArgumentParser() | ||
- | parser.add_argument('--cam_num', type=int, default=1) | ||
- | args = parser.parse_args() | ||
- | if args.cam_num not in range(1, 7): | ||
- | print(f"Camera with number{args.cam_num} does not exist!") | ||
- | exit(0) | ||
- | video = cv2.VideoCapture(f"http://autolab.moevm.info/camera_{args.cam_num}/live.mjpg") | ||
- | if (video.isOpened() == False): | ||
- | print("Error reading video file") | ||
- | exit(0) | ||
- | frame_width = int(video.get(3)) | ||
- | frame_height = int(video.get(4)) | ||
- | size = (frame_width, frame_height) | ||
- | video_name = f"{datetime.now().strftime('%d_%m_%Y_%H:%M:%S')}.avi" | ||
- | result = cv2.VideoWriter(video_name, | ||
- | cv2.VideoWriter_fourcc(*'MJPG'), | ||
- | 20, size) | ||
- | while True: | ||
- | ret, frame = video.read() | ||
- | if ret == True: | ||
- | result.write(frame) | ||
- | cv2.imshow('Frame', frame) | ||
- | if cv2.waitKey(1) & 0xFF == ord('s'): | ||
- | break | ||
- | else: | ||
- | break | ||
- | video.release() | ||
- | result.release() | ||
- | cv2.destroyAllWindows() | ||
- | print(f"The video {video_name} was successfully saved") |