Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Хората могат да различат около 10 милиона цвята. За да ги възприемете, имате нужда от нещо, известно като цветова палитра. Цветовата палитра съдържа инструментите за показване на пълната гама от цветове, видими за човешкото око. В реалния свят ги използвате, за да създавате естетически дизайни на хартия, докато цифрово ги използвате, за да добавите цвят към елементите на екрана.

В крайна сметка компютърът ви кодира всички различни нюанси, които виждате на екрана си, като използва определен формат. С Python можете да разработите RGB-кодирана цветова палитра само с няколко реда код благодарение на модула OpenCV и NumPy.

Модулът OpenCV и NumPy

Можете да анализирате изображения и видеоклипове с помощта на OpenCV. Той е безплатен, с отворен код, лесен за използване и пълен с полезни библиотеки. Те предоставят техники за класифициране, локализиране и проследяване на обекти както в две, така и в три измерения. За да инсталирате OpenCV във вашата среда, отворете терминал и стартирайте:

instagram viewer

pip инсталирайте opencv-python

Модулът NumPy е друга популярна библиотека, която ще видите да използват много програми на Python. NumPy—numerical Python—е модул, който можете да използвате за анализ на данни и научни изчисления. Той предоставя n-измерни масиви, както и обекти математически операции които помагат при манипулирането на тези масиви.

За да инсталирате NumPy във вашата среда, изпълнете:

pip инсталирайте numpy

Като цяло ще използвате OpenCV за обработка на изображения с помощта на техники като откриване на ръбове. След това можете да използвате NumPy, за да извършите анализ на данни върху обработеното изображение. С помощта на тази комбинация можете създайте и декодирайте QR код, класифицират изображения, извършват оптично разпознаване на символи и изграждат системи за видеонаблюдение, които могат да откриват движение и да проследяват лица в реално време.

Как да създадете цветова палитра с помощта на Python

Следвайте тези стъпки, за да създадете цветова палитра с помощта на модул OpenCV и NumPy в Python.

Можете да намерите източника на Color Palette Using Python в това GitHub хранилище.

Започнете с импортиране на модулите OpenCV и NumPy. Дефинирайте функция с име празна функция () който съдържа израза за пропуск. Изявлението за пропуск действа като контейнер за код, който можете да напишете в бъдеще. Това е особено полезно с функции като createTrackbar, които ще използвате по-късно. Изисква валидна функция за обратно извикване и засега можете да подадете празна функция като контейнер.

импортиране cv2
импортиране numpy като np

дефпразна функция():
пас

Генерирайте триизмерен масив с размер 512 * 512 * 3 с тип данни uint8, като използвате NumPy нула() функция. Всеки масив ще се състои от 512 колони и 512 реда. uint8 представлява цяло число без знак, така че програмата запълва масива с нули.

изображение = np.zeros((512, 512, 3), np.uint8)

Задайте името на прозореца, който програмата ще покаже, и го предайте на namedWindow() функция за създаване на прозорец:

име на прозорец = „Цветова палитра на OpenCV“
cv2.namedWindow (windowName)

След това генерирайте три ленти за проследяване за компонентите на червения, зеления и синия цвят. Можете да направите това с помощта на OpenCV createTrackbar() функция. Първо, предайте етикета като червен, син или зелен. Второ, трябва да предадете името на прозореца, където искате да поставите тези ленти, например windowName.

Третият параметър е минималната граница на пистата, 0 в този случай. Четвъртият параметър определя максималната стойност, която е 255 за 24-битова цветова стойност. Петият и последен параметър е функция за обратно извикване, за която createTrackbar изисква валидна функция. Ето защо създадохте emptyFunction по-рано, за да действа като контейнер.

cv2.createTrackbar('Син', име на прозорец, 0, 255, празна функция)
cv2.createTrackbar("зелено", име на прозорец, 0, 255, празна функция)
cv2.createTrackbar('Червен', име на прозорец, 0, 255, празна функция)

Декларирайте безкраен цикъл while и предайте името на прозореца заедно с изображението, което искате да покажете на OpenCV imshow() функция. Тъй като изображението съдържа триизмерен масив от нули, програмата първоначално показва черен екран.

Проверете дали потребителят е натиснал клавиша за излизане, като тествате стойността от чакащ ключ() срещу 27 (ASCII кодът за клавиша Escape). Функцията waitkey() показва прозореца за дадения брой милисекунди или докато не натиснете клавиш. Чрез предаване на един като вход, той показва прозореца за милисекунда, но се регенерира поради безкрайния цикъл while.

За да получите текущата позиция на лентата за проследяване, предайте името на лентата за проследяване заедно с името на прозореца getTrackbarPos(). Повторете тази стъпка за трите отделни цветови компонента, син, зелен и червен. Използвайте оператора за разделяне, за да присвоите трите стойности на масива от изображения. Това ще замени предишния набор от стойности, първоначално всички нули, с текущите стойности според позициите на лентата за проследяване.

докато (Вярно):
cv2.imshow (име на прозорец, изображение)

ако cv2.waitKey(1) == 27:
прекъсвам

синьо = cv2.getTrackbarPos('Син', име на прозорец)
зелено = cv2.getTrackbarPos("зелено", име на прозорец)
червено = cv2.getTrackbarPos('Червен', име на прозорец)
изображение [:] = [синьо, зелено, червено]
печат (син, зелен, червен)

След като потребителят натисне клавиша Escape, използвайте унищожи всички прозорци () за да затворите прозорците, които програмата е отворила:

cv2.destroyAllWindows()

Накрая съберете всичко заедно и го стартирайте, за да контролирате и преглеждате цветовата си палитра.

Резултатът от програмата Python Color Palette

При стартиране на програмата по-горе се появява прозорец, който съдържа три ленти за проследяване за цветовете Синьо, Зелено и Червено. Лентите на пистата се движат от диапазон от 0 до 255. Когато променяте стойностите на различните ленти, трябва да видите различни нюанси на цветовете в секцията по-долу.

В този първи пример можете да видите настройката на синята лента като 0, зелената като 69 и червената като 255. Полученият изходен цвят е нюанс на оранжево/червено. Освен това прозорецът на терминала показва стойностите на цвета като 0 69 255.

По същия начин, когато зададете Синята лента като 130, Зелената като 0 и Червената като 75, ще получите индиго цвят.

Различните приложения на OpenCV

OpenCV предлага ценни функции за задачи като обработка на изображения, разпознаване на обекти, разпознаване на лица и проследяване. С помощта на OpenCV можете да създавате приложения за компютърно зрение в реално време, които биха били от полза в области като роботика, индустриална автоматизация, медицински изображения и системи за наблюдение.

Бъдещето на компютърното зрение е обещаващо. Ще можете да използвате компютърно зрение, за да помогнете на хората с увредено зрение, да постигнете по-добър растеж в селското стопанство, да подобрите пътната безопасност с помощта на самоуправляващи се автомобили и дори да навигирате на други планети, като Марс.