На прошлой неделе Raspberry Pi Trading выпустила новую версию ОС Raspberry Pi, основным моментом которой стала библиотека Python Picamera2 для камер Raspberry Pi, а также небольшие изменения, такие как возможность поиска пунктов меню, новый элемент управления аудиовходом.
Новая библиотека Picamera2 была впервые анонсирована в середине февраля 2022 года в виде предварительного выпуска, и впервые библиотека Python включена по умолчанию в ОС Raspberry Pi. Теперь она основана на платформе с открытым исходным кодом libcamera вместо проприетарных и закрытых API-интерфейсов камеры от Broadcom, которые можно найти в исходной библиотеке Picamera.
Некоторые из ключевых функций библиотеки Picamera2 включают в себя:
- В окнах предварительного просмотра используется ускорение OpenGL для аппаратного рендеринга или DRM/KMS для эффективного рендеринга, когда X Windows не работает.
- Команды Picamera2 можно вводить в интерпретатор Python или скрипты.
- Поддержка встраивания виджетов Picamera2 в приложения Qt.
- Интеграция NumPy упрощает использование OpenCV, TensorFlow и других библиотек Python для «научных вычислений».
- Кодирование и запись видео
- Записывайте аудио и видео вместе
- Отображение рисунков накладывается поверх изображений с камеры.
- Поддерживаются все официальные камеры Raspberry Pi, а также некоторые сторонние камеры от Arducam и других.
Исходный код и документацию (65-страничный PDF-файл) можно найти на GitHub. Библиотека должна быть установлена в последнем образе Raspberry Pi OS, но если ее там нет или вы хотите установить ее на более старый образ Bullseye, ее можно установить следующим образом:
1 |
sudo apt install -y python3-picamera2 |
Захват изображения — это всего лишь строки кода:
1 2 3 |
from picamera2 import Picamera2 picam2 = Picamera2() picam2.start_and_capture_file("test.jpg") |
Если вы хотите показать окно предварительного просмотра перед захватом, это тоже не слишком сложно.
1 2 3 4 5 6 7 8 9 10 |
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.jpg") |
Приведенный выше пример кода действителен для X-Windows, но если вы не используете X-Windows, используйте Preview.QTGL с помощью Preview.DRM:
1 2 3 4 5 6 7 8 9 10 |
from picamera2 import Picamera2, Preview import time picam2 = Picamera2() camera_config = picam2.create_preview_configuration() picam2.configure(camera_config) picam2.start_preview(Preview.DRM) picam2.start() time.sleep(2) picam2.capture_file("test.jpg") |
Вы также можете записывать видео, настраивать параметры камеры (экспозицию, усиление и т. д.), отображать наложения, передавать видео в сеть и многое другое.
В планах на будущее — исправление ошибок, которые могут появиться в бета-версии, работа над улучшением документации, улучшение покадрового управления экспозицией и усилением и т. д.
Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.