import os
import cv2 as cv
# --------------------------------------------------
# Настройки
# --------------------------------------------------
CAMERA_INDEX = 1
FRAME_WIDTH = 1280
FRAME_HEIGHT = 720
SAVE_FOLDER = "calibration_images"
os.makedirs(SAVE_FOLDER, exist_ok=True)
# --------------------------------------------------
# Открытие камеры
# --------------------------------------------------
camera = cv.VideoCapture(CAMERA_INDEX)
if not camera.isOpened():
print("Не удалось открыть камеру")
raise SystemExit
camera.set(cv.CAP_PROP_FRAME_WIDTH, FRAME_WIDTH)
camera.set(cv.CAP_PROP_FRAME_HEIGHT, FRAME_HEIGHT)
width = int(camera.get(cv.CAP_PROP_FRAME_WIDTH))
height = int(camera.get(cv.CAP_PROP_FRAME_HEIGHT))
fps = camera.get(cv.CAP_PROP_FPS)
print("Камера открыта")
print("Индекс камеры:", CAMERA_INDEX)
print("Разрешение:", width, "x", height)
print("FPS:", fps)
print()
print("ПРОБЕЛ — сделать фотографию")
print("Q или ESC — закончить работу")
# --------------------------------------------------
# Получение и сохранение кадров
# --------------------------------------------------
photo_number = 1
while True:
success, frame = camera.read()
if not success:
print("Не удалось получить кадр")
break
cv.imshow("Camera", frame)
key = cv.waitKey(1) & 0xFF
if key == ord(" "):
filename = f"{SAVE_FOLDER}/calib_{photo_number}.jpg"
cv.imwrite(filename, frame)
print(
f"Фотография {photo_number} сохранена: {filename}"
)
photo_number += 1
elif key == ord("q") or key == 27:
break
# --------------------------------------------------
# Завершение работы
# --------------------------------------------------
camera.release()
cv.destroyAllWindows()
print("Камера закрыта")
print("Всего сделано фотографий:", photo_number - 1)