Sisukord:
- Tarvikud
- Samm: raamatukogude importimine
- 2. samm: rajaribade loomine
- 3. samm: tooni, küllastuse ja väärtuse jaoks rajaribade loomine
- Samm: pildi lugemine ja suuruse muutmine
- 5. samm. Jälgriba väärtuste lugemine pildi rakendamiseks
- 6. samm: pildi kuvamine ning ülemise ja alumise piiri seadmine
- Samm: nüüd viimane samm
- 8. samm: lõplikud väljundid
Video: Värvide tuvastamine Pythonis OpenCV abil: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Tere! Seda juhendit kasutatakse selleks, et juhendada, kuidas eraldada pythonis olevast pildist konkreetne värv openCV raamatukogu abil. Kui te pole selle tehnikaga veel tuttav, siis ärge muretsege, selle juhendi lõpus saate programmeerida oma värvide tuvastamise programmi.
Järgnevalt on toodud funktsioonid või võime öelda tehnikaid, mida õpite, 1. Kuidas pilti lugeda
2. Rajaribade loomine
3. Kuidas reguleerida riba abil tooni, küllastust ja pildi väärtust
4. Ja siis on teie lõplik väljund
Saate vaadata väljundi videot, mille olen allpool lisanud.
Nii et alustame
Tarvikud
- Python 3
- openCV raamatukogu
- numpy raamatukogu
Samm: raamatukogude importimine
Pilt on kollasest ferrarist, nagu näidatud, ja me programmeerime sellest pildist ainult kollase värvi
Esimene samm on meie raamatukogude importimine
1. Kaasa arvatud openCV raamatukogu. Pythonis nimetatakse seda cv2 -ks
2. Sealhulgas numpy raamatukogu np -na. "As" võimaldab meil numpy kui np, nii et pole vaja numpy uuesti ja uuesti kirjutada
2. samm: rajaribade loomine
Jälgribad luuakse pildi tooni, küllastuse ja väärtuse reguleerimiseks.
cv2.namedWindow ("TrackBars") Seda koodirida kasutatakse uue väljundakna loomiseks ja akna nimi on TrackBars (saate anda mis tahes soovitud nime)
cv2.resizeWindow ("TrackBars", 600, 250) Seda funktsiooni kasutatakse akna suuruse muutmiseks. "TrackBars" on selle akna jaoks, mille suurust soovite muuta, kuna ma tahtsin TrackBarsi akna suurust muuta, olen selle nime kirjutanud. Järgneb kaks täisarvu. Need kaks täisarvu on laius ja kõrgus. Suuruse muutmiseks saate nende kahe numbriga mängida
3. samm: tooni, küllastuse ja väärtuse jaoks rajaribade loomine
Nüüd loome kokku 6 rajariba tooni, küllastuse ja väärtuse jaoks. Mõlemal on kaks, st 1 minimaalselt ja 1 maksimaalselt. Kasutame openCV funktsiooni createTrackbar. Kõigepealt näeme selle funktsiooni süntaksit.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). See võib tekitada segadust, kuid ärge muretsege, me läheme iga sammu läbi. Pidage meeles ühte asja, et openCV tooni väärtused on 179, küllastus on 255 ja väärtus on 255
1. TrackBari loomine tooni min jaoks:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, tühi)
Sellel toonil min on rööbastee nimi, TrackBars on peaaken, 0 on positsioon, millel meie liugur asub, ja 179 on vahemik, mis tähendab, et silder liigub vahemikus 0–179
2. TrackBari loomine tooni max jaoks:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, tühi)
Hue max on siiniriba nimi, TrackBars on peaaken, 179 on meie liuguri asukoht ja 179 on maksimaalne vahemik, mis tähendab, et silder liigub vahemikus 179-0
3. Sarnaselt korrake samme laua min, sat max, val min ja val max jaoks, nagu pildil näidatud
Valge taustaga pilt on väljundpilt. Nii näevad teie ribad välja
Samm: pildi lugemine ja suuruse muutmine
cv2.imread () võimaldab pilti lugeda. Üks oluline mõte, mida peate meeles pidama, et teie pildi asukoht peab olema samas kaustas, kuhu programm salvestatakse. Lisame while -tsükli, kuna see peaks töötama seni, kuni pilt loeb, või võime öelda, kuni tingimus on tõene
img = cv2.imread ("ferrari.jpg")
- Sellega olen loonud muutuja nime "img", millesse ma pildi salvestan
- Cv2.imreadi sees kirjutage topeltjutumärgi sisse pildi nimi koos laiendiga
Pildi suuruse muutmiseks kasutame funktsiooni cv2.resize. See osa on valikuline, kui soovite suurust muuta, saate seda funktsiooni kasutada
Cv2.resize sisestage esmalt muutuja nimi, millesse pilt salvestatakse, ning seejärel selle laius ja kõrgus
5. samm. Jälgriba väärtuste lugemine pildi rakendamiseks
Olgu, nii et nüüd loeme ribariba väärtusi, et saaksime seda oma pildile rakendada. Väärtused saame funktsiooni cv2.getTrackbarPos () abil.
Alustame sellest osast…
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Ülaltoodud avalduses loon muutuja nime h_min, millesse salvestan Hue min. Nii et cv2.getTrackbarPos'i esimene argument oleks "Hue min", sest ma tahan tooni min väärtusi (õigekiri peab olema täpselt sama, mis see on funktsioon createTrackbar) ja teine argument oleks selle riba akna nimi, kuhu see kuulub.
- Korrake sama protsessi h_max ja ülejäänud funktsioonide jaoks, nagu on näidatud ülaltoodud pildil, ja printige seejärel kõik väärtused print () abil
- Väljund on näidatud teisel pildil. See prindib väärtused h_min, h_max, s_min, s_max, v_min, s_max
6. samm: pildi kuvamine ning ülemise ja alumise piiri seadmine
Nüüd on meil tooni, küllastuse ja väärtuse min ja max väärtus, mida kasutame selle väärtuse abil pildi filtreerimiseks, et saaksime pildi konkreetse värviväljundi.
Loome selleks maski, kasutades funktsiooni cv2.inRange. Ja enne seda määrame tooni, küllastuse ja väärtuse ülemise ja alumise piiri
Seega looge muutuja nimi "madalam" ja määrake numpy array funktsiooni abil vahemik min kõigi 3 jaoks järgmiselt
madalam = np.massiiv ([h_min, s_min, v_min])
Korrake sama sammu ülemise osa jaoks
ülemine = np.massiiv ([h_max, s_max, v_max])
Nüüd loome maski järgmiselt
mask = cv2.inRange (suuruse muutmine, alumine, ülemine) Cv2.inRang sees on esimene argument muutuja, millesse minu lõplik pilt on salvestatud, teine argument on alumine piir ja kolmas argument ülemine piir.
Nüüd näitame põhipilti ja maski. Kuvamiseks kasutame funktsiooni cv2.imshow ()
cv2.imshow ("img", suuruse muutmine) See on põhipildi kuvamiseks. Esimene argument on akna nimi, millele saate anda mis tahes soovitud nime ja teine argument on muutuja, millesse on salvestatud minu põhipilt ja mida soovite kuvada.
Sarnaselt korrake maski jaoks samme
cv2.imshow ("Väljund", mask)
Samm: nüüd viimane samm
Selles viimases etapis eraldame auto ja ekraani värvi.
Olen loonud muutuja nime tulemuse. Jälle saate anda mis tahes soovitud nime. Seega kasutame funktsiooni cv2.bitwise_and (), milles lisame pilte koos ja loome uue pildi. Ja kõikjal, kus mõlema pildi pikslid on, on see jah või "1".
tulemus = cv2.bitwise_and (suuruse muutmine, suuruse muutmine, mask = mask)
- Selles on esimene argument meie kuvand
- Teine argument on ka meie algne pilt, millele järgneb varem loodud mask
- Ja lõpuks kuvage lihtsalt tulemus, kasutades funktsiooni imshow
Lihtsalt kopeerige see viimane samm, see on vaid viivitus ja saate väljundaknast väljuda, vajutades klaviatuuril "a"
8. samm: lõplikud väljundid
Soovitan:
Pilditöötlus Raspberry Pi abil: OpenCV ja pildi värvide eraldamise installimine: 4 sammu
Pilditöötlus Raspberry Pi abil: OpenCV ja pildivärvide eraldamise installimine: see postitus on esimene mitmest järgnevast pilditöötluse õpetusest. Vaatame pilti moodustavaid piksleid lähemalt, õpime OpenCV -d Raspberry Pi -le installima ja kirjutame pildi salvestamiseks ka testiskripte
Lihtne värvide tuvastamine OpenCV abil: 6 sammu
Lihtne värvide tuvastamine OpenCV abil: Tere! Täna näitan lihtsat meetodit värvide tuvastamiseks reaalajas videost OpenCV ja python abil. Põhimõtteliselt katsetan lihtsalt, kas vajalik värv on taustraamis olemas või mitte, ja OpenCV moodulite abil maskeerin selle piirkonna ja
Näotuvastus ja tuvastamine - Arduino näotuvastus OpenCV Pythoni ja Arduino abil .: 6 sammu
Näotuvastus ja tuvastamine | Arduino näotuvastus OpenCV Pythoni ja Arduino abil .: Näotuvastus AKA näo ID on tänapäeval üks olulisemaid funktsioone mobiiltelefonides. Niisiis, mul tekkis küsimus " kas ma saan oma Arduino projekti jaoks näo -id " ja vastus on jaatav … Minu teekond algas järgmiselt: 1. samm: juurdepääs meile
Värvide tuvastamine W/ TCS230 anduri ja Arduinoga [kalibreerimiskood kaasas]: 12 sammu
Värvide tuvastamine W/ TCS230 anduri ja Arduinoga [kalibreerimiskood kaasas]: ülevaade Selles õpetuses saate teada TCS230 anduri ja selle kasutamise kohta koos Arduinoga värvide tuvastamiseks. Selle õpetuse lõpus leiate põneva idee värvipliiatsi loomiseks. Selle pliiatsiga saate skannida värve
Värvide tuvastamine RGB LED -i abil: 4 sammu
Värvide tuvastamine RGB LED -i abil: kas olete kunagi soovinud objekti värvi tuvastamiseks automaatset viisi? Valgustades objektile teatud värvi valgust ja vaadates, kui palju valgust tagasi peegeldub, saate öelda, mis värvi objekt on. Näiteks kui süttib punane tuli