
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04

Привет! Сегодня я собираюсь показать простой метод определения цвета из живого видео с использованием OpenCV и python.
В основном я просто проверяю, присутствует ли требуемый цвет в фоновом кадре или нет, и с помощью модулей OpenCV я замаскирую эту область и одновременно отображу кадр.
Шаг 1. Заголовочные файлы

Здесь я использовал два файла заголовков, а именно cv2 и NumPy. По сути, cv2 - это библиотека OpenCV, которая загружает все файлы c ++, которые важны при использовании команд в кодах (она содержит все определения).
А Numpy - это библиотека Python, которая необходима для хранения многомерного массива. Мы будем использовать для хранения наших координат цветового диапазона.
И numpy as np в основном помогает нашему коду немного сократить, используя np каждый раз вместо numpy.
Шаг 2: Захват видео

Это довольно просто при использовании Python. Здесь нам просто нужно включить видеорегистратор, чтобы он начал записывать кадры.
Теперь значение внутри VideoCapture указывает камеру, в моем случае камера подключена к моему ноутбуку, поэтому 0.
Вы можете пойти аналогично 1 для дополнительной камеры и так далее. VideoCapture создает для него объект.
Шаг 3: захват кадра и определение цвета

Теперь здесь нам нужно что-то сделать, чтобы мы могли захватить мгновенный кадр видео, который поможет нам извлечь изображение, и мы можем работать над этим в соответствии с требованиями.
Цикл while поможет нам выполнить цикл до требуемого времени. Теперь «_, frame = cap.read ()» используется для проверки действительности захваченного кадра и сохраняет его. cap.read () - это логическая переменная, которая возвращает истину, если фрейм прочитан правильно, и если вы не получите фреймов, он не покажет никакой ошибки, вы просто получите None.
Теперь строки 11 и 12 в основном определяют диапазон цвета, который нам нужно обнаружить. Для этого я использовал синий цвет.
Вы можете продолжить с любым цветом, для чего вам нужно просто ввести значения BGR для этого конкретного цвета. Лучше определить два массива, используя массивы numpy, поскольку обнаружение определенного цвета в реальном мире не будет служить нашей цели, скорее мы определим диапазон синего цвета, чтобы он обнаруживал в пределах диапазона.
Для этого я определил две переменные, хранящие нижние значения BGR и верхние значения BGR.
Шаг 4: Маскирование и извлечение

Теперь наступает основная задача - замаскировать рамку и выделить цвет рамки. Я использовал предопределенные команды, присутствующие в библиотеке OpenCV, для маскировки. По сути, маскирование - это процесс удаления некоторой части кадра, то есть мы удаляем пиксели, значения цвета BGR которых не лежат в заданном цветовом диапазоне, и это выполняется cv2.inRange. После этого мы применяем цветовой диапазон к замаскированному изображению в зависимости от значений пикселей, и для этого мы будем использовать cv2.bitwise_and, он просто назначит цвета замаскированной области в зависимости от значений маски и цветового диапазона.
Ссылка на cv2. bitwise_and:
Шаг 5: Наконец-то отображается

Здесь я использовал базовый cv2.imshow () для отображения каждого кадра в виде изображения. Поскольку у меня есть данные кадра, хранящиеся в переменных, я могу получить их в imshow (). Здесь я отобразил все три кадра: исходный, замаскированный и цветной.
Теперь нам нужно выйти из цикла while. Для этого мы можем просто реализовать cv2.wait. Key (). В основном он сообщает время ожидания перед ответом. Поэтому, если вы передадите 0, он будет ждать бесконечно, а 0xFF сообщает, что архитектура 64-битная. "ord ()" указывает символ, который при нажатии будет выполнять команду break в блоке if и выйдет из цикла.
Затем cap.release () закрывает видеомагнитофон, а cv2.destroyAllWindows () закрывает все открытые окна.
Если у вас возникнут проблемы, дайте мне знать.
Ссылка на исходный код:
Рекомендуемые:
Как создать свое первое простое программное обеспечение с использованием Python: 6 шагов

Как создать свое первое простое программное обеспечение с использованием Python: Привет, добро пожаловать в эти инструкции. Здесь я расскажу, как создать собственное программное обеспечение. Да, если у вас есть идея … но вы знаете, как ее реализовать или заинтересованы в создании новых вещей, тогда она для вас … Предпосылка: должны иметь базовые знания P
Postshirt: определение позы в реальном времени: 9 шагов

Postshirt: Обнаружение носимой осанки в реальном времени: Postshirt - это беспроводная система обнаружения осанки в реальном времени, которая передает и классифицирует данные акселерометра от Adafruit Feather в приложение Android через Bluetooth. Полная система может обнаруживать в реальном времени, если у пользователя плохая осанка и
Обнаружение цвета в Python с использованием OpenCV: 8 шагов

Обнаружение цвета в Python с использованием OpenCV: Здравствуйте! Это руководство используется в качестве руководства по извлечению определенного цвета из изображения в Python с использованием библиотеки openCV. Если вы новичок в этой технике, не волнуйтесь, в конце этого руководства вы сможете запрограммировать свой собственный цвет
Робот для отслеживания цвета на основе всенаправленного колеса и OpenCV: 6 шагов

Робот с отслеживанием цвета на основе всенаправленного колеса и OpenCV: я использую шасси с всенаправленным колесом для реализации своего отслеживания цвета, и я использую мобильное программное обеспечение под названием OpenCVBot. Спасибо разработчикам программного обеспечения здесь, спасибо. OpenCV Bot на самом деле обнаруживает или отслеживает любой объект в реальном времени с помощью обработки изображений в
Простое приложение для супермаркетов с использованием RFID RC-522 и Arduino Mega: 6 шагов

Простое приложение для супермаркета с использованием RFID RC-522 и Arduino Mega: приятно снова видеть вас, ребята, здесь, в моем другом руководстве, здесь я собираюсь помочь вам создать простое приложение для супермаркета с использованием RFID RC-522 и Arduino с обработкой для создания простой графический интерфейс. Примечание: не запускайте последовательный монитор Arduino во время работы