Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Import af biblioteker
- Trin 2: Oprettelse af sporstænger
- Trin 3: Oprettelse af TrackBars til farvetone, mætning og værdi
- Trin 4: Sådan læses og ændres størrelse på billede
- Trin 5: Læsning af sporværdier for at anvende det på et billede
- Trin 6: Visning af billede og indstilling af øvre og nedre grænse
- Trin 7: Nu det sidste trin
- Trin 8: Endelige output
Video: Farvedetektering i Python ved hjælp af OpenCV: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Hej! Denne instruerbare bruges til at guide til, hvordan man udtrækker en bestemt farve fra et billede i python ved hjælp af openCV -bibliotek. Hvis du ikke er ny inden for denne teknik, skal du ikke bekymre dig, i slutningen af denne vejledning vil du være i stand til at programmere dit helt eget farvedetekteringsprogram.
Følgende er funktionerne, eller vi kan sige teknikker, som du vil lære, 1. Sådan læses et billede
2. Sådan opretter du sporstænger
3. Sådan justeres værdien af nuance, mætning og værdien af et billede ved hjælp af sporlinjer
4. Og så vil der være dit endelige output
Du kan se videoen af output, som jeg har vedhæftet nedenfor.
Så lad os komme i gang
Forbrugsvarer
- Python 3
- openCV bibliotek
- numpy bibliotek
Trin 1: Import af biblioteker
Billedet er af gul ferrari som vist, og vi programmerer kun at udtrække gul farve fra dette billede
Første trin er import af vores biblioteker
1. Inklusive openCV -bibliotek. Det kaldes cv2 i python
2. Inklusiv numpy bibliotek som np. "As" giver os mulighed for at føle os som np, så det er ikke nødvendigt at skrive numpy igen og igen
Trin 2: Oprettelse af sporstænger
Sporstænger oprettes for at justere værdien af nuance, mætning og værdi i et billede.
cv2.namedWindow ("TrackBars") Denne kodelinje bruges til at oprette et nyt outputvindue, og navnet på vinduet angives som TrackBars (Du kan give et hvilket som helst navn, du ønsker)
cv2.resizeWindow ("TrackBars", 600, 250) Denne funktion bruges til at ændre størrelsen på et vindue. "TrackBars" er for hvilket vindue du vil ændre størrelsen, da jeg ønskede at ændre størrelsen på TrackBars -vinduet, jeg har skrevet det navn. Efterfulgt af to heltal. Disse to heltal er bredden og højden. Du kan lege med de to tal for at ændre størrelsen
Trin 3: Oprettelse af TrackBars til farvetone, mætning og værdi
Nu opretter vi i alt 6 TrackBars til farvetone, mætning og værdi. Hver vil have to, dvs. 1 for minimum og 1 for maksimum. Vi vil bruge createTrackbar -funktionen til openCV. Først vil vi se syntaksen for denne funktion.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Dette kan være forvirrende, men bare rolig, vi går igennem hvert eneste trin. Husk én ting, at i openCV -værdier for nuance er 179, mætning er 255 og værdi er 255
1. Oprettelse af TrackBar til farvetone min:
cv2.createTrackbar ("Farvetone min", "TrackBars", 0, 179, tom)
I denne Hue min er trackbarnavnet, TrackBars er hovedvinduet, 0 er den position, som vores skyder vil være på, og 179 er intervallet, hvilket betyder, at silderet bevæger sig fra 0-179
2. Oprettelse af TrackBar til hue max:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, tom)
I denne Hue max er trackbarnavnet, TrackBars er hovedvinduet, 179 er den position, som vores skyder vil være på, og 179 er det maksimale område, hvilket betyder, at silderet bevæger sig fra 179-0
3. Gentag på samme måde trinene for sat min, sat max, val min og val max som vist på billedet
Billedet med den hvide baggrund er outputbilledet. Sådan vil dine sporstænger se ud
Trin 4: Sådan læses og ændres størrelse på billede
cv2.imread () giver dig mulighed for at læse billedet. En vigtig tanke, du skal huske på, at placeringen af dit billede skal være i den samme mappe, hvor programmet er gemt. Vi indsætter mens loop, fordi det skal køre, indtil det er ved at læse billedet, eller vi kan sige, indtil betingelsen er sand
img = cv2.imread ("ferrari.jpg")
- I dette har jeg oprettet et variabelnavn "img", hvor jeg gemmer billedet
- Inde cv2.imread skrive navnet på billedet med dets udvidelse inde i dobbelt citat
For at ændre størrelsen på et billede bruger vi funktionen cv2.resize. Denne del er valgfri, hvis du vil ændre størrelsen, kan du bruge denne funktion
Inde i cv2.resize skal du først skrive det variabelnavn, som billedet er gemt i, og derefter dets bredde og højde
Trin 5: Læsning af sporværdier for at anvende det på et billede
Ok, så nu kommer vi til at læse trackbar -værdier, så vi kan anvende det på vores billede. Vi får værdierne ved hjælp af funktionen cv2.getTrackbarPos ().
Lad os starte med den del …
h_min = cv2.getTrackbarPos ("Farvetone min", "TrackBars")
I ovenstående erklæring opretter jeg et variabelnavn h_min, hvor jeg vil gemme værdien af Hue min. Så inde i cv2.getTrackbarPos 1. argument ville være "Hue min", fordi jeg vil have værdier for hue min (stavningen skal være nøjagtig den samme som den er createTrackbar funktion) og 2. argument ville være navnet på det trackbar vindue, den tilhører.
- Gentag den samme proces for h_max og resten af funktionerne som vist på billedet ovenfor, og udskriv derefter alle værdierne ved hjælp af print ()
- Outputtet vises på det andet billede. Det udskriver værdierne for h_min, h_max, s_min, s_max, v_min, s_max
Trin 6: Visning af billede og indstilling af øvre og nedre grænse
Nu har vi min og max værdien for nuance, mætning og værdi, vi vil bruge denne værdi til at filtrere billedet ud, så vi kan få et bestemt farveoutput af et billede.
Vi opretter en maske til dette ved hjælp af cv2.inRange -funktionen. Og før det vil vi sætte den øvre og nedre grænse for nuance, mætning og værdi
Så opret et variabelnavn "lavere", og brug numpy array -funktion til at indstille intervallet for min for alle 3 som følger
lavere = np.array ([h_min, s_min, v_min])
Gentag samme trin for øvre
øvre = np.array ([h_max, s_max, v_max])
Nu opretter vi en maske som følger
mask = cv2.inRange (størrelse, lavere, øvre) Inde i cv2.inRang ville det første argument være variablen, hvor mit sidste billede er gemt, 2. argument vil være nedre grænse og 3. argument ville være øvre grænse.
Nu skal vi vise hovedbilledet og masken. For at vise vil vi bruge funktionen cv2.imshow ()
cv2.imshow ("img", tilpas størrelse) Dette er for at vise hovedbilledet. 1. argument er navnet på vinduet, du kan give et hvilket som helst navn, du vil have, og 2. argument er variabel, hvor mit hovedbillede er gemt, som du vil vise.
Gentag på samme måde trinene for maske
cv2.imshow ("Output", maske)
Trin 7: Nu det sidste trin
I dette sidste trin vil vi udtrække bilens farve og display.
Jeg har oprettet et variabelnavn resultat. Igen kan du give ethvert navn, du ønsker. Så vi vil bruge funktionen cv2.bitwise_and (), hvor vi sammen vil tilføje billeder og oprette et nyt billede. Og uanset hvor pixel i begge billeder er til stede, vil det tage det som ja eller "1".
resultat = cv2.bitwise_and (ændre størrelse, ændre størrelse, maske = maske)
- I dette vil det første argument være vores image
- 2. argument vil også være vores originale billede, men efterfulgt af påført maske, som vi skabte før
- Og endelig bare vise resultatet ved hjælp af imshow -funktionen
Kopier bare indsæt dette sidste trin, det er bare en forsinkelse, og du kan afslutte outputvinduet ved at trykke på "a" på tastaturet
Trin 8: Endelige output
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: Hej, jeg er Rithik. Vi kommer til at lave en internetstyret LED ved hjælp af din telefon. Vi kommer til at bruge software som Arduino IDE og Blynk.Det er enkelt, og hvis det lykkedes dig, kan du styre så mange elektroniske komponenter, du ønskerTing We Need: Hardware:
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
RF 433MHZ radiostyring ved hjælp af HT12D HT12E - Lav en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: 5 trin
RF 433MHZ radiostyring ved hjælp af HT12D HT12E | Oprettelse af en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: I denne instruktør vil jeg vise dig, hvordan du laver en RADIO -fjernbetjening ved hjælp af 433mhz sendermodtagermodul med HT12E -kode & HT12D -dekoder IC.I denne instruktive kan du sende og modtage data ved hjælp af meget meget billige KOMPONENTER SOM: HT
Farvedetektering ved hjælp af RGB LED: 4 trin
Farvedetektering ved hjælp af RGB LED: Har du nogensinde ønsket en automatisk måde at registrere farven på et objekt? Ved at skinne lys med en bestemt farve på objektet og se på, hvor meget lys der reflekteres tilbage, kan du se, hvilken farve objektet er. For eksempel, hvis du skinner et rødt lys