Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Inimene suudab eristada umbes 10 miljonit värvi. Nende tajumiseks vajate midagi, mida nimetatakse värvipaletiks. Värvipalett sisaldab tööriistu inimsilmale nähtavate värvide täieliku vahemiku kuvamiseks. Reaalses maailmas kasutate neid paberile esteetiliste kujunduste loomiseks, digitaalselt aga ekraanielementidele värvi lisamiseks.

Lõppkokkuvõttes kodeerib teie arvuti teatud vormingus kõik erinevad varjundid, mida ekraanil näete. Pythoniga saate tänu OpenCV-le ja NumPy moodulile arendada RGB-kodeeringuga värvipaleti vaid mõne koodireaga.

OpenCV ja NumPy moodul

Pilte ja videoid saate analüüsida OpenCV abil. See on tasuta, avatud lähtekoodiga, lihtsalt kasutatav ja täis kasulikke teeke. Need pakuvad tehnikaid nii kahe- kui ka kolmemõõtmeliste objektide klassifitseerimiseks, asukoha määramiseks ja jälgimiseks. OpenCV installimiseks oma keskkonda avage terminal ja käivitage:

pip install opencv-python

NumPy moodul on veel üks populaarne raamatukogu, mida näete paljudes Pythoni programmides. NumPy – numbriline Python – on moodul, mida saate kasutada andmete analüüsiks ja teaduslikuks andmetöötluseks. See pakub nii n-mõõtmelisi massiiviobjekte kui ka matemaatilised tehted mis aitavad nende massiividega manipuleerida.

NumPy oma keskkonda installimiseks käivitage:

pip install numpy

Üldiselt kasutate OpenCV-d piltide töötlemiseks, kasutades selliseid tehnikaid nagu servatuvastus. Seejärel saate töödeldud pildi andmete analüüsimiseks kasutada NumPy-d. Seda kombinatsiooni kasutades saate QR-koodi loomine ja dekodeerimine, klassifitseerida pilte, teostada optilist märgituvastust ja luua videovalvesüsteeme, mis suudavad tuvastada liikumist ja jälgida inimesi reaalajas.

Kuidas Pythoni abil värvipaletti luua

Pythonis OpenCV ja NumPy mooduli abil värvipaleti koostamiseks järgige neid samme.

Sellest leiate Pythoni abil värvipaleti allika GitHub hoidla.

Alustage OpenCV ja NumPy moodulite importimisega. Määratlege funktsioon nimega tühifunktsioon() mis sisaldab passi avaldust. Läbipääsulause toimib kohahoidjana koodile, mille saate tulevikus kirjutada. See on eriti kasulik selliste funktsioonide puhul nagu createTrackbar, mida kasutate hiljem. Selleks on vaja kehtivat tagasihelistamisfunktsiooni ja praegu saate tühja funktsiooni edastada kohatäitena.

importida cv2
importida tuim nagu np

deftühiFunktsioon():
üle andma

Looge NumPy abil kolmemõõtmeline massiiv suurusega 512 * 512 * 3 andmetüübiga uint8 null() funktsiooni. Iga massiiv koosneb 512 veerust ja 512 reast. uint8 tähistab märgita täisarvu, nii et programm täidab massiivi nullidega.

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

Määrake programmi kuvatava akna nimi ja edastage see rakendusele namedWindow() funktsioon akna loomiseks:

aknanimi = "OpenCV värvipalett"
cv2.namedWindow (aknanimi)

Järgmisena genereerige punase, rohelise ja sinise värvikomponentide jaoks kolm rajariba. Seda saate teha OpenCV abil loo jälgimisriba() funktsiooni. Esmalt edastage silt punaseks, siniseks või roheliseks. Teiseks peate edastama selle akna nime, kuhu soovite need ribad paigutada, näiteks akna nimi.

Kolmas parameeter on raja riba minimaalne piir, antud juhul 0. Neljas parameeter määrab maksimaalse väärtuse, mis on 24-bitise värviväärtuse puhul 255. Viies ja viimane parameeter on tagasihelistamisfunktsioon, mille jaoks createTrackbar on vaja kehtivat funktsiooni. Seetõttu lõite kohahoidjana toimimiseks varem tühja funktsiooni.

cv2.createTrackbar('sinine', aknanimi, 0, 255, tühiFunktsioon)
cv2.createTrackbar('roheline', aknanimi, 0, 255, tühiFunktsioon)
cv2.createTrackbar("Punane", aknanimi, 0, 255, tühiFunktsioon)

Kuulutage välja lõpmatu while-tsükkel ja edastage OpenCV-le akna nimi koos pildiga, mida soovite kuvada imshow() funktsiooni. Kuna pilt sisaldab kolmemõõtmelist nullide massiivi, kuvab programm algselt musta ekraani.

Kontrollige, kas kasutaja on paoklahvi vajutanud, testides väärtust from oodake () vastu 27 (ASCII kood paoklahvile). Funktsioon waitkey() kuvab akent antud arvu millisekundite jooksul või kuni klahvi vajutamiseni. Kui sisestate ühe sisendi, kuvab see akent millisekundiks, kuid taastub lõpmatu while-tsükli tõttu.

Rajariba praeguse asukoha saamiseks edastage rajariba nimi koos akna nimega getTrackbarPos(). Korrake seda sammu kolme erineva värvikomponendi – sinise, rohelise ja punase – puhul. Kasutage pildimassiivile kolme väärtuse määramiseks lõiguoperaatorit. See asendab eelmise väärtuste komplekti, algselt kõik nullid, praeguste väärtustega vastavalt rajariba asukohtadele.

samal ajal (Tõsi):
cv2.imshow (aknanimi, pilt)

kui cv2.waitKey(1) == 27:
murda

sinine = cv2.getTrackbarPos('sinine', aknanimi)
roheline = cv2.getTrackbarPos('roheline', aknanimi)
punane = cv2.getTrackbarPos("Punane", aknanimi)
pilt[:] = [sinine, roheline, punane]
trükk (sinine, roheline, punane)

Kui kasutaja vajutab paoklahvi, kasutage hävita kõik aknad () akende sulgemiseks, mille programm avas:

cv2.destroyAllWindows()

Lõpuks pange see kõik kokku ja käivitage see oma värvipaleti juhtimiseks ja vaatamiseks.

Pythoni värvipaletiprogrammi väljund

Ülaltoodud programmi käivitamisel kuvatakse aken, mis sisaldab kolme teeriba värvide jaoks sinine, roheline ja punane. Rööbaste ribad liiguvad vahemikus 0 kuni 255. Kui muudate erinevate ribade väärtusi, peaksite allolevas jaotises nägema erinevaid värvitoone.

Selles esimeses näites näete sinise riba sätet 0-na, rohelist 69-t ja punast 255-na. Saadud väljundvärv on oranži/punase varjundiga. Lisaks kuvatakse terminali aknas värviväärtused kujul 0 69 255.

Samamoodi, kui seate sinise riba väärtuseks 130, roheliseks 0 ja punaseks 75, saate indigovärvi.

OpenCV erinevad rakendused

OpenCV pakub väärtuslikke funktsioone selliste ülesannete jaoks nagu pilditöötlus, objektituvastus, näotuvastus ja jälgimine. OpenCV abil saate toota reaalajas arvutinägemise rakendusi, mis oleksid õnnistuseks sellistes valdkondades nagu robootika, tööstusautomaatika, meditsiiniline pildistamine ja seiresüsteemid.

Arvutinägemise tulevik on paljutõotav. Saate kasutada arvutinägemist vaegnägijate abistamiseks, põllumajanduse paremaks kasvuks, liiklusohutuse suurendamiseks isejuhtivate autode abil ja isegi navigeerimiseks teistel planeetidel, näiteks Marsil.