Настройка Python Picamera2 на Raspberry Pi (фото и видеозапись)
Это руководство является введением в библиотеку Picamera2 на Python для платы Raspberry Pi. В нём описано, как установить Picamera2, сделать фотографию и записать видео в файл формата .mp4. Данное руководство совместимо с Raspberry Pi Camera V2 и V3.
В этом руководстве рассматриваются следующие темы:
Предварительные требования
Прежде чем продолжить, убедитесь, что выполнены следующие предварительные требования:
Вам нужна плата Raspberry Pi и камера Raspberry Pi.
У вас должна быть установлена Raspberry Pi OS на Raspberry Pi (32-битная или 64-битная).
Вы должны уметь устанавливать SSH-соединение с Raspberry Pi.
Библиотека Picamera2 для Python
Picamera2 — это библиотека Python для взаимодействия с камерой Raspberry Pi. Она основана на стеке камер libcamera и поддерживается организацией Raspberry Pi Foundation. Использование старой библиотеки PiCamera с последними версиями Raspberry Pi OS больше не рекомендуется.
Библиотека Picamera2 поддерживается на всех моделях Raspberry Pi — от Pi Zero до RPi 5.
Установка библиотеки Picamera2
Установив SSH-соединение с Raspberry Pi, обновите систему Raspberry Pi, если доступны обновления. Выполните следующую команду:
sudo apt update && sudo apt upgrade -y
Выполните следующую команду, чтобы установить библиотеку Picamera2 на Raspberry Pi:
sudo apt install -y python3-picamera2
Настоятельно рекомендуется устанавливать и обновлять Picamera2 с помощью команды apt, описанной выше, — это позволит избежать проблем совместимости. Автор столкнулся со множеством ошибок компиляции при попытке установить библиотеку Picamera2 с помощью команды pip в виртуальном окружении.
Подготовка камеры Raspberry Pi
Камера Raspberry Pi — это небольшой и недорогой модуль камеры, совместимый с платами Raspberry Pi. Хотя для большинства проектов её возможностей достаточно, :doc:`некоторые USB-камеры обеспечивают лучшее качество изображения </raspberry/rnt/set-up-usb-camera-opencv-raspberry-pi/index>`_. В этом руководстве мы будем использовать модуль камеры Raspberry Pi Camera V2, показанный на следующем изображении:
Это руководство также работает с Raspberry Pi Camera V3, и камера совместима со всеми моделями Raspberry Pi.
Включение модуля камеры Raspberry Pi
Если вы используете последнюю версию Raspberry Pi OS, официальные камеры Raspberry Pi будут обнаружены и включены автоматически.
Подключение камеры
Подключение модуля камеры Raspberry Pi очень простое. При выключенном Pi подключите камеру к порту CSI на Pi, как показано на следующем рисунке.
Picamera2: пример съёмки фото — Python-скрипт
Съёмка фото с камерой Raspberry Pi очень проста благодаря библиотеке Picamera2 на Python. Создайте новый файл с именем take_photo.py:
nano take_photo.py
Скопируйте следующий код в созданный файл:
from picamera2 import Picamera2, Preview
import time
picam2 = Picamera2()
camera_config = picam2.create_preview_configuration()
picam2.configure(camera_config)
picam2.start_preview(Preview.QTGL)
picam2.start()
time.sleep(2)
picam2.capture_file("test_photo.jpg")
Нажмите Ctrl + X, чтобы сохранить файл, затем нажмите Y и Enter.
Разбор скрипта для съёмки фото
Давайте кратко рассмотрим, как работает код.
Начнём с импорта необходимых библиотек.
from picamera2 import Picamera2, Preview
import time
Создайте объект Picamera2() с именем picam2.
picam2 = Picamera2()
Затем сгенерируйте конфигурацию камеры, подходящую для предпросмотра, и настройте систему камеры с этой конфигурацией предпросмотра.
camera_config = picam2.create_preview_configuration()
picam2.configure(camera_config)
Запустите окно предпросмотра.
picam2.start_preview(Preview.QTGL)
Наконец, запустите камеру, подождите две секунды и сделайте снимок. Он будет сохранён с именем файла test_photo.jpg.
picam2.start()
time.sleep(2)
picam2.capture_file("test_photo.jpg")
Запуск скрипта
Запустите скрипт для съёмки фото, выполнив следующую команду в каталоге вашего проекта:
python take_photo.py
Скрипт делает фотографию с камеры Raspberry Pi и сохраняет её с именем test_photo.jpg. Файл изображения будет сохранён в той же папке, что и Python-скрипт.
Вы можете :doc:`получить удалённый доступ к рабочему столу Raspberry Pi </raspberry/rnt/raspberry-pi-remote-desktop-connection-rdp-windows/index>`_ и открыть файл изображения, чтобы просмотреть фотографию.
Picamera2: пример записи видео — Python-скрипт
Следующий Python-скрипт также использует пакет PiCamera для захвата видео в файл формата .mp4. Создайте новый файл с именем record_video.py:
nano capture_video.py
Скопируйте следующий код в созданный файл:
from picamera2 import Picamera2
picam2 = Picamera2()
picam2.start_and_record_video("test_video.mp4", duration=5)
Нажмите Ctrl + X, чтобы сохранить файл, затем нажмите Y и Enter.
Разбор скрипта для записи видео
Давайте кратко рассмотрим скрипт.
Начнём с импорта необходимых библиотек.
from picamera2 import Picamera2
Создайте объект Picamera2().
picam2 = Picamera2()
Следующая команда записывает видео длительностью 5 секунд с камеры Raspberry Pi и сохраняет его с именем test_video.mp4. Вы можете изменить скрипт, чтобы поменять имя файла и увеличить продолжительность записи видео.
picam2.start_and_record_video("test_video.mp4", duration=5)
Запуск скрипта
Запустите скрипт для записи видео. Вы можете использовать следующую команду:
python3 capture_video.py
Скрипт запишет 5-секундное видео с камеры Raspberry Pi и сохранит его с именем test_video.mp4.
Вы можете получить :doc:`удалённый доступ к рабочему столу Raspberry Pi </raspberry/rnt/raspberry-pi-remote-desktop-connection-rdp-windows/index>`_ и открыть видеофайл с помощью проигрывателя VLC, чтобы просмотреть его.
Устранение неполадок
Если вы используете Raspberry Pi 3 или более раннюю модель, для работы этого примера скрипта вам необходимо включить Glamor. Для этого выполните команду
sudo raspi-configв окне терминала, выберите Advanced Options, а затем включите Glamor graphic acceleration. После этого перезагрузите устройство.Если вы используете подключение через удалённый рабочий стол, иногда предпросмотр изображения и запись видео будут отображаться размытыми, как на скриншотах ниже. Однако если вы :doc:`скачаете файлы на обычный ПК с Windows или Mac OS </raspberry/rnt/transfer-files-raspberry-pi-filezilla-ftp-mac-os/index>`_, файлы будут в порядке.
Связанный материал: :doc:`Передача файлов на Raspberry Pi и обратно с помощью FileZilla FTP (Windows PC) </raspberry/rnt/transfer-files-raspberry-pi-filezilla-ftp-windows/index>`_
Заключение
В этой статье мы провели краткое введение в работу с камерой Raspberry Pi с помощью библиотеки Picamera2 на Python. Вы узнали, как делать фотографии и записывать видео в файл.
У нас есть другие проекты для Raspberry Pi, которые могут быть вам полезны: