Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Človek lahko razlikuje približno 10 milijonov barv. Da jih zaznate, potrebujete nekaj, kar je znano kot barvna paleta. Barvna paleta vsebuje orodja za prikaz celotne palete barv, vidnih človeškemu očesu. V resničnem svetu jih uporabljate za ustvarjanje estetskih modelov na papirju, medtem ko jih digitalno uporabljate za dodajanje barve elementom zaslona.

Končno vaš računalnik kodira vse različne odtenke, ki jih vidite na zaslonu, z uporabo določenega formata. S Pythonom lahko razvijete RGB-kodirano barvno paleto v samo nekaj vrsticah kode zahvaljujoč OpenCV in modulu NumPy.

Modul OpenCV in NumPy

Slike in videoposnetke lahko analizirate z uporabo OpenCV. Je brezplačen, odprtokoden, enostaven za uporabo in poln uporabnih knjižnic. Ti zagotavljajo tehnike za razvrščanje, lociranje in sledenje objektom v dveh in treh dimenzijah. Če želite namestiti OpenCV v svoje okolje, odprite terminal in zaženite:

pip namestite opencv-python

Modul NumPy je še ena priljubljena knjižnica, ki jo boste videli uporabljati v številnih programih Python. NumPy – numerični Python – je modul, ki ga lahko uporabite za analizo podatkov in znanstveno računalništvo. Zagotavlja tudi n-dimenzionalne matrične objekte matematične operacije ki pomagajo pri manipulaciji teh nizov.

Če želite namestiti NumPy v svoje okolje, izvedite:

pip namestite numpy

Na splošno boste OpenCV uporabljali za obdelavo slik s tehnikami, kot je zaznavanje robov. Nato lahko uporabite NumPy za analizo podatkov na obdelani sliki. Z uporabo te kombinacije lahko ustvarite in dekodirajte kodo QR, razvrščajo slike, izvajajo optično prepoznavanje znakov in gradijo videonadzorne sisteme, ki lahko zaznajo gibanje in sledijo posameznikom v realnem času.

Kako zgraditi barvno paleto z uporabo Pythona

Sledite tem korakom za izdelavo barvne palete z uporabo OpenCV in modula NumPy v Pythonu.

Tukaj lahko najdete vir Color Palette Using Python GitHub repozitorij.

Začnite z uvozom modulov OpenCV in NumPy. Določite funkcijo z imenom prazna funkcija () ki vsebuje izjavo o prehodu. Stavek prehoda deluje kot ograda za kodo, ki jo lahko napišete v prihodnosti. To je še posebej uporabno pri funkcijah, kot je createTrackbar, ki jih boste uporabili pozneje. Zahteva veljavno funkcijo povratnega klica in za zdaj lahko podate emptyFunction kot ogrado.

uvoz cv2
uvoz numpy kot np

defemptyFunction():
prehod

Ustvarite tridimenzionalno matriko velikosti 512 * 512 * 3 s podatkovnim tipom uint8 z uporabo NumPy's nič () funkcijo. Vsaka matrika bo sestavljena iz 512 stolpcev in 512 vrstic. uint8 predstavlja nepredznačeno celo število, zato program zapolni matriko z ničlami.

slika = np.zeros((512, 512, 3), np.uint8)

Nastavite ime okna, ki ga bo program prikazal, in ga posredujte namedWindow() funkcija za ustvarjanje okna:

ime okna = "Paleta barv OpenCV"
cv2.namedWindow (windowName)

Nato ustvarite tri sledilne vrstice za rdeče, zelene in modre barvne komponente. To lahko storite z uporabo OpenCV createTrackbar() funkcijo. Najprej prenesite oznako kot rdečo, modro ali zeleno. Drugič, posredovati morate ime okna, kamor želite postaviti te vrstice, na primer, windowName.

Tretji parameter je najmanjša meja sledilne vrstice, v tem primeru 0. Četrti parameter določa največjo vrednost, ki je 255 za 24-bitno barvno vrednost. Peti in zadnji parameter je funkcija povratnega klica, za katero createTrackbar zahteva veljavno funkcijo. Zato ste prej ustvarili emptyFunction, ki bo delovala kot ograda.

cv2.createTrackbar('Modra', oknoName, 0, 255, prazna funkcija)
cv2.createTrackbar('Zelena', oknoName, 0, 255, prazna funkcija)
cv2.createTrackbar('Rdeča', oknoName, 0, 255, prazna funkcija)

Razglasite neskončno zanko while in posredujte ime okna skupaj s sliko, ki jo želite prikazati, v OpenCV imshow() funkcijo. Ker slika vsebuje tridimenzionalni niz ničel, program na začetku prikaže črn zaslon.

Preverite, ali je uporabnik pritisnil tipko za izhod, tako da preizkusite vrednost iz čakalna tipka() proti 27 (koda ASCII za tipko Escape). Funkcija waitkey() prikaže okno za določeno število milisekund ali dokler ne pritisnete tipke. Če posreduje enega kot vhod, prikaže okno za milisekundo, vendar se zaradi neskončne zanke while obnovi.

Če želite pridobiti trenutni položaj sledilne vrstice, posredujte ime sledilne vrstice skupaj z imenom okna getTrackbarPos(). Ta korak ponovite za tri ločene barvne komponente, modro, zeleno in rdečo. Z operatorjem rezine dodelite tri vrednosti matriki slik. To bo nadomestilo prejšnji niz vrednosti, sprva vse ničle, s trenutnimi vrednostmi glede na položaje sledilne vrstice.

medtem (Prav):
cv2.imshow (ime okna, slika)

če cv2.waitKey(1) == 27:
odmor

modra = cv2.getTrackbarPos('Modra', ime okna)
zelena = cv2.getTrackbarPos('Zelena', ime okna)
rdeča = cv2.getTrackbarPos('Rdeča', ime okna)
slika[:] = [modra, zelena, rdeča]
tisk (modra, zelena, rdeča)

Ko uporabnik pritisne tipko Escape, uporabite uničiVsaWindows() za zapiranje oken, ki jih je program odprl:

cv2.destroyAllWindows()

Nazadnje sestavite vse skupaj in zaženite, da nadzirate in si ogledate svojo barvno paleto.

Rezultat programa Python Color Palette

Ko zaženete zgornji program, se prikaže okno, ki vsebuje tri sledilne vrstice za barve modro, zeleno in rdečo. Vrstice sledi se premikajo od 0 do 255. Ko spreminjate vrednosti različnih vrstic, bi morali v spodnjem razdelku videti različne odtenke barv.

V tem prvem primeru lahko vidite nastavitev modre vrstice kot 0, zelene kot 69 in rdeče kot 255. Končna izhodna barva je odtenek oranžne/rdeče. Poleg tega terminalsko okno prikazuje barvne vrednosti kot 0 69 255.

Podobno, ko nastavite modro vrstico na 130, zeleno na 0 in rdečo na 75, boste dobili indigo barvo.

Različne aplikacije OpenCV

OpenCV ponuja dragocene funkcije za naloge, kot so obdelava slik, prepoznavanje predmetov, prepoznavanje obrazov in sledenje. Z uporabo OpenCV lahko ustvarite aplikacije za računalniški vid v realnem času, ki bi bile koristne na področjih, kot so robotika, industrijska avtomatizacija, medicinsko slikanje in sistemi nadzora.

Prihodnost računalniškega vida je obetavna. Uporabili boste lahko računalniški vid za pomoč slabovidnim, omogočili boljšo rast v kmetijstvu, povečali varnost v cestnem prometu z uporabo samovozečih avtomobilov in celo krmarili po drugih planetih, kot je Mars.