Indholdsfortegnelse:
- Trin 1: Hovedfilerne
- Trin 2: Optagelse af videoen
- Trin 3: Optagelse af ramme og definition af farve
- Trin 4: Maskering og udtrækning
- Trin 5: Endelig visning
- Trin 6: Demo
Video: Enkel farveregistrering ved hjælp af OpenCV: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Hej! I dag vil jeg vise en enkel metode til at registrere en farve fra en live video ved hjælp af OpenCV og python.
Grundlæggende vil jeg bare teste den nødvendige farve, der er til stede i baggrundsrammen eller ej, og ved hjælp af OpenCV -moduler vil jeg maskere denne region og samtidig vise rammen.
Trin 1: Hovedfilerne
Nu her har jeg brugt to header -filer, nemlig cv2 og NumPy. Grundlæggende er cv2 OpenCV -biblioteket, der indlæser alle de c ++ - filer, der er vigtige, mens du bruger kommandoerne i koderne (det indeholder alle definitionerne).
Og Numpy er et python -bibliotek, der er afgørende for lagring af et multidimensionalt array. Vi vil bruge til at gemme vores farvekoordinater.
Og numpy as np hjælper dybest set vores kode med at forkorte lidt ved at bruge np hver gang i stedet for numpy.
Trin 2: Optagelse af videoen
Dette er ret simpelt, mens du bruger python. Her mangler vi bare at tænde for videooptager, så den kan begynde at optage billederne.
Nu angiver værdien inde i VideoCapture kameraet, i mit tilfælde er kameraet forbundet til min bærbare computer, så 0.
Du kan gå på samme måde som 1 for det sekundære kamera og så videre. VideoCapture opretter objektet til det.
Trin 3: Optagelse af ramme og definition af farve
Nu er vi her nødt til at gøre noget, så vi kan fange videoens øjeblikkelige ramme, som vil hjælpe os med at udtrække billedet, og vi kan arbejde med det efter krav.
"while" loop vil hjælpe os med at køre loop til vores kravstid. Nu bruges "_, frame = cap.read ()" til at kontrollere gyldigheden af den fangede ramme og gemme den. "cap.read () er en boolsk variabel og returnerer true, hvis rammen læses korrekt, og hvis du ikke får nogen rammer, viser den ikke nogen fejl, du får ganske enkelt None.
Nu definerer linje 11 og linje 12 dybest set det farveområde, vi skal registrere. Til dette har jeg brugt til blå farve.
Du kan fortsætte med en hvilken som helst farve, du bare skal skrive BGR -værdier for den pågældende farve. Det er bedre at definere to arrays ved hjælp af numpy arrays, da detektering af en bestemt farve i den virkelige verden ikke vil tjene vores formål, snarere vil vi definere en række blå farver, så den registrerer inden for området.
Til dette har jeg defineret to variabler, der lagrer de lavere BGR -værdier og øvre BGR -værdier.
Trin 4: Maskering og udtrækning
Nu kommer hovedopgaven med at maskere rammen og udtrække rammens farve. Jeg brugte de foruddefinerede kommandoer i biblioteket i OpenCV til at udføre maskeringen. Grundlæggende maskering er processen med at fjerne en del af rammen, dvs. vi vil fjerne de pixels, hvis farve BGR -værdier, der ikke ligger i det definerede farveområde, og dette udføres af cv2.inRange. Bagefter anvender vi farveområdet til det maskerede billede afhængigt af pixelværdierne, og til dette vil vi bruge cv2.bitwise_and, Det vil simpelthen tildele farverne til det maskerede område afhængigt af maske- og farveintervalværdierne.
Link til cv2. bitwise_and:
Trin 5: Endelig visning
Her har jeg brugt det grundlæggende cv2.imshow () til visning for hver ramme som et billede. Da jeg har rammedataene gemt i variabler, kan jeg hente dem i imshow (). Her har jeg vist alle de tre rammer, originale, maskerede og farvede.
Nu skal vi forlade while -loop. Til dette kan vi simpelthen implementere cv2.wait. Key (). Grundlæggende fortæller det ventetiden, før der reageres. Så hvis du passerer 0, venter det uendeligt, og 0xFF fortæller, at arkitekturen er 64bit. "ord ()" angiver det tegn, der, når der trykkes på, vil udføre break -kommandoen i if -blok, og det vil komme ud af sløjfen.
Derefter lukker cap.release () videooptageren, og cv2.destroyAllWindows () lukker alle de åbne vinduer.
Lad mig vide, hvis du har problemer.
Link til kildekoden:
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
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter - Rc Helikopter - Rc -fly ved hjælp af Arduino: 5 trin (med billeder)
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter | Rc Helikopter | Rc -fly ved hjælp af Arduino: At betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båd, vi har altid brug for en modtager og sender, antag at vi til RC QUADCOPTER har brug for en 6 -kanals sender og modtager, og den type TX og RX er for dyr, så vi laver en på vores