Записки и мысли: Делаем фотографию с камеры в псевдотекстовом формате
Создание фотографии с помощью камеры и её сохранение в виде файла — одна из самых распространённых задач для программистов. Это может пригодиться для создания приложений, связанных с фото- и видеоконтентом, для обработки изображений и многого другого.
В этой статье я расскажу, как сделать фотографию с камеры и сохранить её в виде файла на компьютере. Для этого мы будем использовать библиотеку OpenCV для Python.
Установка OpenCV¶
Для начала установим библиотеку OpenCV. Это можно сделать с помощью менеджера пакетов pip:
apt-get install python3-opencv -y
Теперь, когда у нас установлена библиотека OpenCV, мы можем приступить к написанию кода.
Создание окна для захвата изображения¶
Первым шагом мы создадим окно, которое будет использоваться для захвата изображения с камеры. В этом окне пользователь сможет видеть то, что видит камера, и делать снимки.
import cv2
# Создаем окно для захвата изображения
cap = cv2.VideoCapture(0)
# Проверяем, открылась ли камера
if not cap.isOpened():
print("Не удалось открыть камеру")
exit()
# Устанавливаем размер окна
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
while True:
# Захватываем кадр
ret, frame = cap.read()
# Отображаем кадр
cv2.imshow('Камера', frame)
# Ждем нажатия клавиши для сохранения кадра
if cv2.waitKey(1) & 0xFF == ord('s'):
break
# Сохраняем кадр
cv2.imwrite('captured_image.jpg', frame)
# Закрываем окно
cv2.destroyAllWindows()
cap.release()
В этом коде мы сначала импортируем библиотеку OpenCV. Затем создаём объект cap
, который представляет собой видеопоток с камеры. Мы проверяем, открылась ли камера, и если да, то устанавливаем размер окна.
Далее мы входим в бесконечный цикл, в котором захватываем кадр с камеры и отображаем его в окне. Пользователь может нажать клавишу 's' для сохранения кадра. Когда пользователь нажимает эту клавишу, мы выходим из цикла и сохраняем кадр в файл под названием 'captured_image.jpg'.
После сохранения кадра мы закрываем все окна и освобождаем ресурсы, связанные с камерой.