Spec-Zone.ru › Pygame
pygame.camera
Модуль pygame для использования камеры

В настоящее время Pygame поддерживает камеры Linux (V4L2) и Windows (MSMF) напрямую, а более широкая поддержка платформ доступна через интегрированный бэкэнд OpenCV.

Новое в pygame 2.0.2: Поддержка камер Windows

Новое в pygame 2.0.3: Новые бэкэнды OpenCV

ЭКСПЕРИМЕНТАЛЬНО!: Этот API может быть изменён или удалён в будущих версиях pygame. Если вы используете его, ваш код, скорее всего, сломается с выходом следующей версии pygame.

Функция преобразования из Bayer в RGB основана на:

Sonix SN9C101 based webcam basic I/F routines
Copyright (C) 2004 Takafumi Mizuno <taka-qce@ls-a.jp>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

Новое в pygame 1.9.0.

pygame.camera.init()
Инициализация модуля
init(backend = None) -> None

Эта функция запускает модуль камеры, выбирая лучший бэкэнд веб-камеры для вашей системы. Это не гарантирует успех и может даже попытаться импортировать сторонние модули, такие как OpenCV. Если вы хотите переопределить выбор бэкэнда, вы можете передать имя нужного бэкэнда в эту функцию. Подробнее о бэкендах в get_backends().

Изменено в pygame 2.0.3: Возможность явного выбора бэкэнда

pygame.camera.get_backends()
Получение поддерживаемых бэкэндов в этой системе
get_backends() -> [str]

Эта функция возвращает все бэкэнды, которые, по её мнению, могут работать на вашей системе, в порядке приоритета.

Бэкэнды pygame.camera:

Backend           OS        Description
---------------------------------------------------------------------------------
_camera (MSMF)    Windows   Builtin, works on Windows 8+ Python3
_camera (V4L2)    Linux     Builtin
OpenCV            Any       Uses `opencv-python` module, can't enumerate cameras
OpenCV-Mac        Mac       Same as OpenCV, but has camera enumeration
VideoCapture      Windows   Uses abandoned `VideoCapture` module, can't enumerate
                            cameras, may be removed in the future

Существует два основных различия между бэкендами.

Бэкэнды "_camera" встроены в сам Pygame и не требуют сторонних импортов. Все остальные бэкэнды требуют. Для бэкэндов OpenCV и VideoCapture эти модули должны быть установлены на вашей системе.

Другое большое различие – "перечисление камер". Некоторые бэкэнды не имеют способа перечислить имена камер или даже количество камер в системе. В этих случаях list_cameras() вернёт что-то вроде [0]. Если вы знаете, что у вас есть несколько камер в системе, эти бэкэнды передадут "номер индекса камеры" в качестве параметра device.

Новое в pygame 2.0.3.

pygame.camera.colorspace()
Преобразование цветового пространства поверхности
colorspace(Surface, format, DestSurface = None) -> Surface

Позволяет преобразовывать "RGB" в целевое цветовое пространство "HSV" или "YUV". Источник и целевая поверхности должны иметь одинаковый размер и глубину пикселей. Это полезно для компьютерного зрения на устройствах с ограниченной вычислительной мощностью. Захватывайте как можно меньшее изображение, transform.scale() ещё меньшее, и затем преобразуйте цветовое пространство в YUV или HSV перед любыми вычислениями.

pygame.camera.list_cameras()
Возвращает список доступных камер
list_cameras() -> [cameras]

Проверяет компьютер на наличие доступных камер и возвращает список строк с именами камер, готовых для использования с pygame.camera.Camera.

Если бэкэнд камеры не поддерживает перечисление веб-камер, это вернёт что-то вроде [0]. Более подробная информация в get_backends().

pygame.camera.Camera
Загрузка камеры
Camera(device, (width, height), format) -> Camera

Загрузка камеры. В Linux, устройство обычно представляет собой что-то вроде "/dev/video0". По умолчанию ширина и высота составляют 640 на 480. Формат – желаемое цветовое пространство вывода. Это полезно для компьютерного зрения. По умолчанию – RGB. Поддерживаются:

  • RGB - Красный, Зелёный, Синий

  • YUV - Яркость, Синий хроматинизм, Красный хроматинизм

  • HSV - Оттенок, Насыщенность, Значение

start()
Открытие, инициализация и запуск захвата
start() -> None

Открывает устройство камеры, пытается инициализировать его и начинает запись изображений в буфер. Камера должна быть запущена перед использованием любых нижеперечисленных функций.

stop()
Остановка, деинициализация и закрытие камеры
stop() -> None

Останавливает запись, деинициализирует камеру и закрывает её. После остановки камеры нижеперечисленные функции нельзя использовать, пока она не будет запущена снова.

get_controls()
Получение текущих значений пользовательских настроек
get_controls() -> (hflip = bool, vflip = bool, brightness)

Если камера поддерживает, get_controls вернёт текущие настройки горизонтального и вертикального отражения изображения как булевые значения и яркость как целое число. Если не поддерживает, вернёт значения по умолчанию (0, 0, 0). Обратите внимание, что значения, возвращаемые здесь, могут отличаться от значений, возвращаемых set_controls, хотя эти значения, скорее всего, более точны.

set_controls()
Изменение настроек камеры, если это поддерживается камерой
set_controls(hflip = bool, vflip = bool, brightness) -> (hflip = bool, vflip = bool, brightness)

Позволяет изменить настройки камеры, если это поддерживается камерой. Значения возврата будут входными значениями, если камера утверждает, что операция прошла успешно, или предыдущими значениями, если нет. Каждый аргумент является необязательным, и желаемый аргумент можно выбрать, указав ключевое слово, например, hflip. Обратите внимание, что фактические настройки, используемые камерой, могут не совпадать с настройками, возвращаемыми set_controls. В Windows, hflip и vflip реализованы в Pygame, а не в Camera, поэтому они всегда должны работать, но brightness не поддерживается.

get_size()
Возвращает размеры записываемых изображений
get_size() -> (width, height)

Возвращает текущие размеры изображений, захватываемых камерой. Это вернёт фактический размер, который может отличаться от указанного при инициализации, если камера не поддерживала этот размер.

query_image()
Проверка готовности кадра
query_image() -> bool

Если изображение готово к получению, возвращает true. В противном случае возвращает false. Обратите внимание, что некоторые веб-камеры всегда будут возвращать False и будут добавлять кадр в очередь только при вызове с блокирующей функцией, такой как get_image(). В Windows (MSMF) и бэкендах OpenCV query_image() должна быть надёжной, хотя. Это полезно для разделения частоты кадров игры от частоты кадров камеры без использования потоков.

get_image()
Захват изображения как поверхности
get_image(Surface = None) -> Surface

Извлекает изображение из буфера как RGB поверхность. Можно выборочно использовать существующую поверхность для экономии времени. Глубина бита поверхности составляет 24 бита в Linux, 32 бита в Windows или такую же, как у предоставленной поверхности.

get_raw()
Возвращает необработанное изображение в виде байтов
get_raw() -> bytes

Получение изображения с камеры в виде строки в родном формате пикселей камеры. Полезно для интеграции с другими библиотеками. Возвращает объект bytes.




Изменить на GitHub

© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/camera.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API