Oamenii pot distinge aproximativ 10 milioane de culori. Pentru a le percepe, aveți nevoie de ceva cunoscut sub numele de paletă de culori. O paletă de culori conține instrumentele pentru a afișa întreaga gamă de culori vizibile pentru ochiul uman. În lumea reală, le folosești pentru a crea modele estetice pe hârtie, în timp ce digital le folosești pentru a adăuga culoare elementelor ecranului.
În cele din urmă, computerul codifică toate nuanțele diferite pe care le vedeți pe ecran folosind un anumit format. Cu Python, puteți dezvolta o paletă de culori codificată RGB în doar câteva linii de cod datorită modulului OpenCV și NumPy.
Modulul OpenCV și NumPy
Puteți analiza imagini și videoclipuri folosind OpenCV. Este gratuit, open source, simplu de utilizat și plin de biblioteci utile. Acestea oferă tehnici pentru clasificarea, localizarea și urmărirea obiectelor atât în două, cât și în trei dimensiuni. Pentru a instala OpenCV în mediul dvs., deschideți un terminal și rulați:
pip install opencv-python
Modulul NumPy este o altă bibliotecă populară pe care o veți vedea pe care o folosesc multe programe Python. NumPy — Python numeric — este un modul pe care îl puteți utiliza pentru analiza datelor și calculul științific. Oferă obiecte matrice n-dimensionale, precum și operatii matematice care ajută la manipularea acestor matrice.
Pentru a instala NumPy în mediul dvs., executați:
pip install numpy
În general, veți folosi OpenCV pentru a procesa imagini folosind tehnici precum detectarea marginilor. Apoi puteți utiliza NumPy pentru a efectua analiza datelor pe imaginea procesată. Folosind această combinație puteți creați și decodați un cod QR, clasifică imagini, efectuează recunoașterea optică a caracterelor și construiește sisteme de supraveghere video care pot detecta mișcarea și urmări persoanele în timp real.
Cum se construiește o paletă de culori folosind Python
Urmați acești pași pentru a construi o paletă de culori folosind OpenCV și modulul NumPy în Python.
Puteți găsi sursa paletei de culori folosind Python în aceasta GitHub repertoriu.
Începeți prin a importa modulele OpenCV și NumPy. Definiți o funcție numită emptyfunction() care conține declarația de trecere. Declarația de trecere acționează ca un substituent pentru codul pe care îl puteți scrie în viitor. Acest lucru este util în special cu funcții precum createTrackbar, pe care o veți folosi mai târziu. Necesită o funcție de apel invers valid și puteți trece emptyFunction ca substituent pentru moment.
import cv2
import numpy la fel de np
defemptyFunction():
trece
Generați o matrice tridimensională de dimensiunea 512 * 512 * 3 cu un tip de date de uint8 folosind NumPy zero() funcţie. Fiecare matrice va consta din 512 coloane și 512 rânduri. uint8 reprezintă un număr întreg fără semn, astfel încât programul umple tabloul cu zerouri.
imagine = np.zeros((512, 512, 3), np.uint8)
Setați numele ferestrei pe care programul o va afișa și transmiteți-o către namedWindow() funcția de a crea o fereastră:
windowName = „Paleta de culori OpenCV”
cv2.namedWindow (windowName)
Apoi, generați trei bare de urmărire pentru componentele de culoare roșie, verde și albastră. Puteți face acest lucru folosind OpenCV createTrackbar() funcţie. În primul rând, transmiteți eticheta ca Roșu, Albastru sau Verde. În al doilea rând, trebuie să treceți numele ferestrei în care doriți să plasați aceste bare de exemplu, windowName.
Al treilea parametru este limita minimă a barei de urmărire, 0 în acest caz. Al patrulea parametru specifică valoarea maximă, care este 255 pentru o valoare de culoare pe 24 de biți. Al cincilea și ultimul parametru este o funcție de apel invers pentru care createTrackbar necesită o funcție validă. Acesta este motivul pentru care ați creat emptyFunction mai devreme, pentru a acționa ca substituent.
cv2.createTrackbar('Albastru', numele ferestrei, 0, 255, emptyFunction)
cv2.createTrackbar('Verde', numele ferestrei, 0, 255, emptyFunction)
cv2.createTrackbar('Roșu', numele ferestrei, 0, 255, emptyFunction)
Declarați o buclă while infinită și transmiteți numele ferestrei împreună cu imaginea pe care doriți să o afișați la OpenCV imshow() funcţie. Deoarece imaginea conține o matrice tridimensională de zerouri, programul afișează inițial un ecran negru.
Verificați dacă utilizatorul a apăsat tasta de evacuare testând valoarea de la tasta asteptare() față de 27 (codul ASCII pentru tasta Escape). Funcția waitkey() afișează fereastra pentru numărul dat de milisecunde sau până când apăsați o tastă. Trecând una ca intrare, afișează fereastra pentru o milisecundă, dar se regenerează datorită buclei while infinite.
Pentru a obține poziția curentă a barei de urmărire, transmiteți numele barei de urmărire împreună cu numele ferestrei către getTrackbarPos(). Repetați acest pas pentru cele trei componente de culoare separate, albastru, verde și roșu. Utilizați operatorul slice pentru a atribui cele trei valori matricei de imagine. Aceasta va înlocui setul anterior de valori, inițial toate zerourile, cu valorile curente în funcție de pozițiile barei de urmărire.
in timp ce (Adevărat):
cv2.imshow (nume fereastră, imagine)dacă cv2.waitKey(1) == 27:
pauză
albastru = cv2.getTrackbarPos('Albastru', windowName)
verde = cv2.getTrackbarPos('Verde', windowName)
roșu = cv2.getTrackbarPos('Roșu', windowName)
imagine[:] = [albastru, verde, roșu]
imprimare (albastru, verde, roșu)
Odată ce utilizatorul apasă tasta Escape, utilizați destroyAllWindows() pentru a închide ferestrele programul a deschis:
cv2.destroyAllWindows()
În cele din urmă, puneți totul împreună și rulați-l pentru a vă controla și vizualiza paleta de culori.
Ieșirea programului de paletă de culori Python
La rularea programului de mai sus, apare o fereastră care conține trei bare de urmărire pentru culorile Albastru, Verde și Roșu. Barele de urmărire se deplasează dintr-un interval de la 0 la 255. Când variați valorile diferitelor bare, ar trebui să vedeți diferite nuanțe de culori în secțiunea de mai jos.
În acest prim exemplu, puteți vedea setarea barei albastre ca 0, Verde ca 69 și Roșu ca 255. Culoarea rezultată este o nuanță de portocaliu/roșu. În plus, fereastra terminalului afișează valorile culorii ca 0 69 255.
În mod similar, când setați bara Albastră la 130, Verde la 0 și Roșu la 75, veți obține o culoare Indigo.
Diversele aplicații ale OpenCV
OpenCV oferă funcții valoroase pentru sarcini precum procesarea imaginilor, recunoașterea obiectelor, recunoașterea feței și urmărirea. Folosind OpenCV, puteți produce aplicații de viziune computerizată în timp real, care ar fi un avantaj în domenii precum robotica, automatizarea industrială, imagistica medicală și sistemele de supraveghere.
Viitorul viziunii computerizate este promițător. Veți putea folosi vederea computerizată pentru a-i ajuta pe cei cu deficiențe de vedere, pentru a obține o creștere mai bună în agricultură, pentru a îmbunătăți siguranța rutieră folosind mașini cu auto-conducere și chiar pentru a naviga pe alte planete, cum ar fi Marte.