Kazalo:
- Zaloge
- 1. korak: Uvoz knjižnic
- 2. korak: Ustvarjanje sledi
- 3. korak: Ustvarjanje sledilnih trakov za odtenek, nasičenost in vrednost
- 4. korak: Kako prebrati in spremeniti velikost slike
- 5. korak: Branje vrednosti vrstice sledi za njeno uporabo na sliki
- 6. korak: Prikaz slike in nastavitev zgornje in spodnje meje
- 7. korak: Zdaj zadnji korak
- 8. korak: Končni rezultati
Video: Odkrivanje barv v Pythonu z uporabo OpenCV: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Zdravo! To navodilo se uporablja za navodila, kako izvleči določeno barvo iz slike v pythonu z uporabo knjižnice openCV. Če ste novi v tej tehniki, potem ne skrbite, na koncu tega priročnika boste lahko programirali svoj lasten program za zaznavanje barv.
Sledijo funkcije ali lahko rečemo tehnike, ki se jih boste naučili, 1. Kako prebrati sliko
2. Kako ustvariti sledi
3. Kako prilagoditi vrednost Hue, Saturation in vrednost slike s pomočjo vrstic za sledenje
4. In potem bo vaš končni rezultat
Spodaj si lahko ogledate videoposnetek izhoda.
Pa začnimo
Zaloge
- Python 3
- knjižnica openCV
- knjižnica numpy
1. korak: Uvoz knjižnic
Slika je rumenega ferrarija, kot je prikazano, in programirali bomo, da iz te slike izvlečemo samo rumeno barvo
Prvi korak bo uvoz naših knjižnic
1. Vključno s knjižnico openCV. V pythonu se imenuje cv2
2. Vključno z numpy knjižnico kot np. "As" nam omogoča, da numpy kot np, zato ni treba vedno znova pisati numpy
2. korak: Ustvarjanje sledi
Vrstice sledi so ustvarjene za prilagajanje vrednosti Hue, Saturation in Value na sliki.
cv2. namedWindow ("TrackBars") Ta vrstica kode se uporablja za ustvarjanje novega izhodnega okna, ime okna pa je podano kot TrackBars (poljubno ime lahko daste)
cv2.resizeWindow ("TrackBars", 600, 250) Ta funkcija se uporablja za spreminjanje velikosti okna. "TrackBars" je okno, za katerega želite spremeniti velikost, ker sem želel spremeniti velikost okna TrackBars. To ime sem napisal. Sledita dve celi števili. Ti dve celi številki sta širina in višina. Če želite spremeniti velikost, se lahko igrate s tema dvema številkama
3. korak: Ustvarjanje sledilnih trakov za odtenek, nasičenost in vrednost
Zdaj bomo ustvarili skupaj 6 sledilnih trakov za Hue, Saturation in value. Vsak bo imel dva, to je 1 za najmanj in 1 za največ. Uporabljali bomo funkcijo createTrackbar za openCV. Najprej bomo videli sintakso te funkcije.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). To je lahko zmedeno, vendar ne skrbite, da bomo šli skozi vsak korak. Imejte v mislih eno, da so vrednosti odprtega tona v odtenku 179, nasičenosti 255 in vrednosti 255.
1. Ustvarjanje sledilne vrstice za min. Nians:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, prazno)
V tem Hue min je ime sledilne vrstice, TrackBars je glavno okno, 0 je položaj, na katerem bo naš drsnik, in 179 je obseg, ki pomeni, da se bo pomak pomaknil od 0-179
2. Ustvarjanje TrackBar za hue max:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, prazno)
V tem Hue max je ime sledilne vrstice, TrackBars je glavno okno, 179 je položaj, na katerem bo naš drsnik, in 179 največji razpon pomeni, da se bo pomak premaknil s 179-0
3. Podobno ponovite korake za sat min, sat max, val min in val max, kot je prikazano na sliki
Slika z belim ozadjem je izhodna slika. Tako bodo videti tirnice
4. korak: Kako prebrati in spremeniti velikost slike
cv2.imread () vam omogoča branje slike. Ne pozabite, da mora biti lokacija vaše slike v isti mapi, kjer je shranjen program. Vstavili bomo zanko while, ker bi morala delovati, dokler slika ne bere, ali pa rečemo, dokler pogoj ni res
img = cv2.imread ("ferrari.jpg")
- V tem sem ustvaril spremenljivo ime "img", v katerem shranjujem sliko
- Znotraj cv2.imread napišite ime slike s končnico v dvojnih narekovajih
Za spreminjanje velikosti slike bomo uporabili funkcijo cv2.resize. Ta del je neobvezen, če želite spremeniti velikost, lahko uporabite to funkcijo
Znotraj cv2.resize najprej napišite ime spremenljivke, v kateri je slika shranjena, nato pa njeno širino in višino
5. korak: Branje vrednosti vrstice sledi za njeno uporabo na sliki
V redu, zdaj bomo prebrali vrednosti vrstice sledilne vrstice, da jo lahko uporabimo za svojo podobo. Vrednosti bomo dobili s funkcijo cv2.getTrackbarPos ().
Začnimo s tem delom…
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
V zgornji izjavi ustvarjam ime spremenljivke h_min, v katero bom shranil vrednost Hue min. Tako bi bil znotraj cv2.getTrackbarPos prvi argument "Hue min", ker želim vrednosti hue min (črkovanje mora biti popolnoma enako, kot je funkcija createTrackbar), drugi argument pa ime okna sledilne vrstice, ki mu pripada.
- Ponovite isti postopek za h_max in ostale funkcije, kot je prikazano na zgornji sliki, nato pa natisnite vse vrednosti z uporabo print ()
- Izhod je prikazan na drugi sliki. Natisne vrednosti h_min, h_max, s_min, s_max, v_min, s_max
6. korak: Prikaz slike in nastavitev zgornje in spodnje meje
Zdaj imamo minimalno in največjo vrednost odtenka, nasičenosti in vrednosti, ki jo bomo uporabili za filtriranje slike, da bomo lahko določili barvni izhod slike.
Za to bomo ustvarili masko s funkcijo cv2.inRange. Pred tem pa bomo nastavili zgornjo in spodnjo mejo odtenka, nasičenosti in vrednosti
Zato ustvarite ime spremenljivke "spodnji" in s funkcijo matričnega števila nastavite obseg min za vse 3, kot sledi
spodnja = np. matrika ([h_min, s_min, v_min])
Ponovite isti korak za zgornji del
zgornja = np. matrika ([h_max, s_max, v_max])
Zdaj bomo ustvarili masko, kot sledi
mask = cv2.inRange (spremenite velikost, spodaj, zgoraj) Znotraj cv2.inRang je prvi argument spremenljivka, v kateri je shranjena moja končna slika, drugi argument bo spodnja meja, tretji argument pa zgornja meja.
Zdaj bomo prikazali glavno sliko in masko. Za prikaz bomo uporabili funkcijo cv2.imshow ()
cv2.imshow ("img", spreminjanje velikosti) To je za prikaz glavne slike. Prvi argument je ime okna, ki mu lahko daste poljubno ime, drugi argument pa je spremenljivka, v kateri je shranjena moja glavna slika, ki jo želite prikazati.
Podobno ponovite korake za masko
cv2.imshow ("Izhod", maska)
7. korak: Zdaj zadnji korak
V tem zadnjem koraku bomo izvlekli barvo avtomobila in zaslona.
Ustvaril sem rezultat imena spremenljivke. Spet lahko daste poljubno ime. Zato bomo uporabljali funkcijo cv2.bitwise_and (), v kateri bomo skupaj dodali slike in ustvarili novo sliko. In kjer koli so slikovne pike na obeh slikah, bo to veljalo kot da ali "1".
result = cv2.bitwise_and (spremenite velikost, spremenite velikost, maska = maska)
- Pri tem bo prvi argument naša podoba
- Drugi argument bo tudi naša prvotna podoba, sledi pa uporabljena maska, ki smo jo ustvarili prej
- In nazadnje samo prikažite rezultat s funkcijo imshow
Preprosto kopirajte prilepi ta zadnji korak. To je le zamuda in izhodno okno lahko zapustite s pritiskom na "a" na tipkovnici
8. korak: Končni rezultati
Priporočena:
Skener QR kode z uporabo OpenCV v Pythonu: 7 korakov
Optični bralnik kod QR z uporabo OpenCV v Pythonu: V današnjem svetu vidimo, da se koda QR in črtna koda uporabljata skoraj povsod, od embalaže izdelkov do spletnih plačil, včasih pa tudi v restavracijah, da si ogledate meni. dvomim, da je to zdaj velika misel. A ste se kdaj vprašali
Enostavno zaznavanje barv z OpenCV: 6 korakov
Enostavno zaznavanje barv z OpenCV: Pozdravljeni! Danes bom pokazal enostaven način zaznavanja barve iz videoposnetka v živo z uporabo OpenCV in pythona. V bistvu bom samo preizkusil, ali je potrebna barva v okvirju ozadja ali ne, in z uporabo modulov OpenCV bom prikril to regijo in
Kako narediti pametni alarmni sistem za odkrivanje poplav z uporabo maline Pi in delcev argona: 6 korakov
Kako narediti pametni alarmni sistem za odkrivanje poplav z uporabo Raspberry Pi in delcev Argona: Standardni senzorji za poplave so odlični, da preprečijo velike škode na vašem domu ali delovnem mestu, vendar otežuje, če se alarma ne udeležite. Seveda lahko kupite tiste pametne Ta sistem za javljanje poplav zazna kakršno koli tekočino in sproži alarm
Visuino Zgradite sistem za odkrivanje vdorov z uporabo Arduina: 8 korakov
Visuino Zgradite sistem za zaznavanje vdorov z uporabo Arduina: V tej vadnici bomo uporabili mikrovalovni radarski senzor gibanja XYC-WB-DC, povezan z Arduino UNO in Visuino, da zaznamo vsako gibanje v polmeru okoli 5 m, vključno s tankimi stenami
Odkrivanje objektov W/ Dragonboard 410c ali 820c z uporabo OpenCV in Tensorflow .: 4 koraki
Object Detection W/ Dragonboard 410c ali 820c z uporabo OpenCV in Tensorflow .: Ta navodila opisujejo, kako namestiti ogrodja OpenCV, Tensorflow in strojnega učenja za Python 3.5 za zagon aplikacije Object Detection