- 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) и бэкендах OpenCVquery_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