Человек может различать около 10 миллионов цветов. Чтобы их воспринимать, вам требуется нечто, известное как цветовая палитра. Цветовая палитра содержит инструменты для отображения всего диапазона цветов, видимых человеческому глазу. В реальном мире вы используете их для создания эстетичных дизайнов на бумаге, а в цифровом виде вы используете их для добавления цвета к элементам экрана.
В конечном счете, ваш компьютер кодирует все различные оттенки, которые вы видите на экране, используя определенный формат. С помощью Python вы можете разработать цветовую палитру в кодировке RGB всего за несколько строк кода благодаря OpenCV и модулю NumPy.
Модуль OpenCV и NumPy
Вы можете анализировать изображения и видео с помощью OpenCV. Он бесплатный, с открытым исходным кодом, прост в использовании и содержит множество полезных библиотек. Они обеспечивают методы для классификации, обнаружения и отслеживания объектов как в двух, так и в трех измерениях. Чтобы установить OpenCV в вашей среде, откройте терминал и запустите:
pip установить opencv-python
Модуль NumPy — еще одна популярная библиотека, которую вы увидите во многих программах Python. NumPy — числовой Python — это модуль, который вы можете использовать для анализа данных и научных вычислений. Он предоставляет объекты n-мерного массива, а также математические операции которые помогают в манипулировании этими массивами.
Чтобы установить NumPy в вашей среде, выполните:
пип установить numpy
Как правило, вы будете использовать OpenCV для обработки изображений с использованием таких методов, как обнаружение краев. Затем вы можете использовать NumPy для анализа данных обработанного изображения. С помощью этой комбинации вы можете создать и расшифровать QR-код, классифицировать изображения, выполнять оптическое распознавание символов и создавать системы видеонаблюдения, которые могут обнаруживать движение и отслеживать людей в режиме реального времени.
Как построить цветовую палитру с помощью Python
Выполните следующие действия, чтобы создать цветовую палитру с использованием модуля OpenCV и NumPy в Python.
Вы можете найти исходный код цветовой палитры с использованием Python в этом Гитхаб репозиторий.
Начните с импорта модулей OpenCV и NumPy. Определите функцию с именем пустая функция() который содержит оператор pass. Оператор pass действует как заполнитель для кода, который вы можете написать в будущем. Это особенно полезно с такими функциями, как createTrackbar, которые вы будете использовать позже. Для этого требуется допустимая функция обратного вызова, и вы можете передать emptyFunction в качестве заполнителя на данный момент.
Импортировать cv2
Импортировать пустышка как нп
дефпустая функция():
проходить
Создайте трехмерный массив размером 512 * 512 * 3 с типом данных uint8, используя NumPy. нуль() функция. Каждый массив будет состоять из 512 столбцов и 512 строк. uint8 представляет целое число без знака, поэтому программа заполняет массив нулями.
изображение = np.zeros((512, 512, 3), np.uint8)
Установите имя окна, которое программа будет отображать, и передайте его именованное окно () функция для создания окна:
имя_окна = «Цветовая палитра OpenCV»
cv2.namedWindow (имя_окна)
Затем сгенерируйте три полосы дорожки для компонентов красного, зеленого и синего цветов. Вы можете сделать это с помощью OpenCV создать трекбар() функция. Во-первых, передайте метку как Red, Blue или Green. Во-вторых, вам нужно передать имя окна, в котором вы хотите разместить эти полосы, например, windowName.
Третий параметр — это минимальный предел трекбара, в данном случае 0. Четвертый параметр указывает максимальное значение, равное 255 для 24-битного значения цвета. Пятый и последний параметр — это функция обратного вызова, для которой createTrackbar требует действительной функции. Вот почему вы создали emptyFunction ранее, чтобы действовать как заполнитель.
cv2.createTrackbar('Синий', имя окна, 0, 255, пустая функция)
cv2.createTrackbar('Зеленый', имя окна, 0, 255, пустая функция)
cv2.createTrackbar('Красный', имя окна, 0, 255, пустая функция)
Объявите бесконечный цикл while и передайте имя окна вместе с изображением, которое вы хотите отобразить в OpenCV. показать() функция. Поскольку изображение содержит трехмерный массив нулей, программа изначально отображает черный экран.
Проверьте, нажал ли пользователь клавишу выхода, проверив значение из ключ ожидания () против 27 (код ASCII для клавиши Escape). Функция waitkey() отображает окно в течение заданного количества миллисекунд или до тех пор, пока вы не нажмете клавишу. Передавая единицу в качестве входных данных, он отображает окно в течение миллисекунды, но восстанавливает его из-за бесконечного цикла while.
Чтобы получить текущую позицию трекбара, передайте имя трекбара вместе с именем окна в получитьTrackbarPos(). Повторите этот шаг для трех отдельных компонентов цвета: синего, зеленого и красного. Используйте оператор среза, чтобы присвоить три значения массиву изображений. Это заменит предыдущий набор значений, первоначально все нули, текущими значениями в соответствии с позициями трек-бара.
пока (Истинный):
cv2.imshow(имя окна, изображение)если cv2.waitKey(1) == 27:
перерыв
синий = cv2.getTrackbarPos('Синий', имя_окна)
зеленый = cv2.getTrackbarPos('Зеленый', имя_окна)
красный = cv2.getTrackbarPos('Красный', имя_окна)
изображение[:] = [синий, зеленый, красный]
принт (синий, зеленый, красный)
Как только пользователь нажмет клавишу Escape, используйте уничтожить все окна () чтобы закрыть окна, которые открыла программа:
cv2.destroyAllWindows()
Наконец, соберите все это вместе и запустите, чтобы контролировать и просматривать свою цветовую палитру.
Вывод программы цветовой палитры Python
При запуске приведенной выше программы появляется окно, содержащее три полосы для цветов: синий, зеленый и красный. Ползунки перемещаются в диапазоне от 0 до 255. Когда вы меняете значения разных полос, вы должны увидеть разные оттенки цветов в разделе ниже.
В этом первом примере вы можете видеть настройку синей полосы как 0, зеленой как 69 и красной как 255. Результирующий выходной цвет имеет оттенок оранжевого/красного. Кроме того, в окне терминала значения цвета отображаются как 0 69 255.
Точно так же, если вы установите для синей полосы значение 130, для зеленого — 0, а для красного — 75, вы получите цвет индиго.
Различные приложения OpenCV
OpenCV предлагает ценные функции для таких задач, как обработка изображений, распознавание объектов, распознавание лиц и отслеживание. Используя OpenCV, вы можете создавать приложения компьютерного зрения в реальном времени, которые будут полезны в таких областях, как робототехника, промышленная автоматизация, медицинская визуализация и системы наблюдения.
Будущее компьютерного зрения многообещающе. Вы сможете использовать компьютерное зрение, чтобы помочь слабовидящим, ускорить рост сельского хозяйства, повысить безопасность дорожного движения с помощью самоуправляемых автомобилей и даже перемещаться по другим планетам, таким как Марс.