Найти в Дзене
Заходи в Ай-Ти

Учу камеру определять цвета различных предметов с помощью Python и библиотеки OpenCV

Сегодня расскажу о том, как я научил компьютер находить четыре разных цвета с помощью библиотеки OpenCV 🔵🟢🟡🔴 Добро пожаловать в статью о том, как определять разные цвета в OpenCV 📚 Подготовьте предметы разных цветов. В моем случае это 4 красочных маленьких круглых объекта. Это может быть игрушка вашего детства, воздушный шар или даже маркер ✍️. Найдите нижнюю и верхнюю границы каждого цветового объекта. Встроенная камера моего ноутбука совершенно не похожа на веб-камеру, которую я одолжил в университете. Нижний и верхний диапазоны маски в Интернете не одинаковы для многих камер. Обычно нижний и верхний диапазоны маскирования цветов различаются в зависимости от качества камеры и условий окружающей среды. Наиболее распространенный алгоритм определения цвета: Большая проблема | Как найти нижнюю и верхнюю границы? Вот удобное решение с графическим интерфейсом, позволяющее найти конкретную границу для определенного цвета за несколько попыток. Например, вот границы синего цвета: Код пр
Оглавление

Сегодня расскажу о том, как я научил компьютер находить четыре разных цвета с помощью библиотеки OpenCV 🔵🟢🟡🔴

Результаты работы
Результаты работы

Добро пожаловать в статью о том, как определять разные цвета в OpenCV 📚

Подготовьте предметы разных цветов.

В моем случае это 4 красочных маленьких круглых объекта. Это может быть игрушка вашего детства, воздушный шар или даже маркер ✍️.

Найдите нижнюю и верхнюю границы каждого цветового объекта.

Встроенная камера моего ноутбука совершенно не похожа на веб-камеру, которую я одолжил в университете. Нижний и верхний диапазоны маски в Интернете не одинаковы для многих камер. Обычно нижний и верхний диапазоны маскирования цветов различаются в зависимости от качества камеры и условий окружающей среды.

Наиболее распространенный алгоритм определения цвета:

  1. Изменение формата COLOR с BGR на HSV
  2. Наложение макси на изображение HSV с нижней и верхней границей.
  3. Использование `cv2.bitwise_and()` для визуализации только этого конкретного цвета.

Большая проблема | Как найти нижнюю и верхнюю границы?

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

Например, вот границы синего цвета:

-2

Код программы для определения границ цветов (в комментариях оставлю ссылку на код):

-3

Эта программа с графическим интерфейсом очень удобна и экономит массу вашего времени!

Не стесняйтесь писать комментарии и делиться своими мыслями.

Я нашел нижнее и верхнее значения четырех цветов для моей камеры и ОС. Это проще простого! Просто помните, что для этих цветов не существует стандартных значений, подходящих для каждой среды ПК.

Границы 4-х цветов
Границы 4-х цветов

Реализуем наш код с помощью методов cv.inRange() и cv.findContours()

cv.inRange() => Чтобы определить, лежат ли элементы данного массива между элементами двух массивов, представляющих верхнюю и нижнюю границы цветов;

cv2.findContours() => находит точки, в которых наблюдается значительная разница в интенсивности окраски. В нашем случае он ищет разницу в изображении после применения функции cv.inRange().

Как работает весь алгоритм?

Вот пошаговая процедура всего алгоритма. Это довольно просто🤓

Схема работы алгоритма
Схема работы алгоритма

Весь код (ссылку на код оставлю в комментариях): ✅

-6

В комментариях прикреплю ссылку на код.

❤️ Если вам понравилась статья, ставьте лайк и подписывайтесь на мой канал "Заходи в Ай-Ти".

👍 Если у вас остались вопросы или есть интересные темы, которые вы хотите, чтобы я разобрал, то пишите в комментариях. Ваше мнение очень важно для меня!