Sadržaj:
- Korak 1: Datoteke zaglavlja
- Korak 2: Snimanje videozapisa
- Korak 3: Snimanje okvira i definiranje boje
- Korak 4: Maskiranje i vađenje
- Korak 5: Konačno se prikazuje
- Korak 6: Demo
Video: Jednostavno otkrivanje boje pomoću OpenCV-a: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Zdravo! Danas ću pokazati jednostavnu metodu otkrivanja boje iz videa uživo pomoću OpenCV -a i pythona.
U osnovi ću samo testirati da li je potrebna boja prisutna u pozadini ili ne, a koristeći OpenCV module maskirat ću tu regiju i istovremeno prikazati okvir.
Korak 1: Datoteke zaglavlja
Ovdje sam upotrijebio dvije datoteke zaglavlja, naime cv2 i NumPy. U osnovi cv2 je OpenCV biblioteka koja učitava sve c ++ datoteke koje su važne dok se koriste naredbe u kodovima (sadrži sve definicije).
Numpy je python biblioteka koja je neophodna za spremanje višedimenzionalnog niza. Koristit ćemo za spremanje koordinata raspona boja.
I numpy kao np u osnovi pomaže našem kodu da se malo skrati upotrebom np svaki put umjesto numpy.
Korak 2: Snimanje videozapisa
Ovo je prilično jednostavno dok koristite python. Ovdje samo trebamo uključiti video rekorder kako bi mogao početi snimati kadrove.
Sada vrijednost unutar VideoCapturea označava kameru, u mom slučaju kamera je spojena na moj laptop, pa 0.
Možete ići slično 1 za sekundarnu kameru i tako dalje. VideoCapture za njega kreira objekt.
Korak 3: Snimanje okvira i definiranje boje
Sada ovdje moramo učiniti nešto kako bismo mogli uhvatiti trenutni kadar videozapisa koji će nam pomoći da izdvojimo sliku i možemo raditi na tome prema zahtjevu.
"while" petlja će nam pomoći da pokrenemo petlju do potrebnog vremena. Sada se "_, frame = cap.read ()" koristi za provjeru valjanosti snimljenog okvira i pohranjuje ga. "cap.read () je logička varijabla i vraća true ako je okvir ispravno pročitan i ako ne dobijete okvire neće pokazati nikakvu grešku, jednostavno ćete dobiti None.
Sada linija 11 i linija 12 u osnovi definiraju raspon boja koje moramo otkriti. Za to sam navikao na plavu boju.
Možete nastaviti s bilo kojom bojom za koju trebate samo unijeti BGR vrijednosti za tu određenu boju. Bolje je definirati dva niza pomoću numpy nizova jer otkrivanje određene boje u stvarnom svijetu neće poslužiti našoj svrsi, već ćemo definirati raspon plave boje tako da detektira unutar raspona.
Za ovo sam definirao dvije varijable koje spremaju donje BGR vrijednosti i gornje BGR vrijednosti.
Korak 4: Maskiranje i vađenje
Sada dolazi glavni zadatak maskiranja okvira i izdvajanja boje okvira. Za maskiranje sam koristio unaprijed definirane naredbe prisutne u biblioteci u OpenCV -u. U osnovi maskiranje je proces uklanjanja nekog dijela kadra, tj. Uklonit ćemo piksele čije BGR vrijednosti u boji ne leže u definiranom rasponu boja, a to radi cv2.inRange. Nakon toga primjenjujemo raspon boja na maskiranu sliku ovisno o vrijednostima piksela, a za to ćemo koristiti cv2.bitwise_and, Jednostavno će dodijeliti boje maskiranom području ovisno o vrijednosti maske i raspona boja.
Link za cv2. bitwise_and:
Korak 5: Konačno se prikazuje
Ovdje sam koristio osnovni cv2.imshow () za prikaz svakog okvira kao slike. Budući da imam okvirne podatke pohranjene u varijablama, mogu ih dohvatiti u imshow (). Ovdje sam prikazao sva tri okvira, originalni, maskirani i obojeni.
Sada moramo izaći iz while petlje. U tu svrhu jednostavno možemo implementirati cv2.wait. Key (). U osnovi, pokazuje vrijeme čekanja prije odgovora. Dakle, ako prođete 0, čekat će beskonačno, a 0xFF govori da je arhitektura 64 -bitna. "ord ()" specificira znak koji će pritisnuti izvršiti naredbu break u bloku if i ona će izaći iz petlje.
Zatim cap.release () zatvara video rekorder, a cv2.destroyAllWindows () zatvara sve otvorene prozore.
Ako imate bilo kakvih problema, obavijestite me.
Link na izvorni kod:
Preporučuje se:
Mašina za farbanje boja za otkrivanje boje: 4 koraka
Mašina za boje za otkrivanje boja: Mašina za boje za otkrivanje boja kopira boje oko vas i omogućava vam da crtate s njima. Ako imate boju primarnih boja, možete upotrijebiti RGB senzor boje da osjetite boju koju želite i pomiješajte je. Ali zapamtite, koristite objekt svijetle boje
Otkrivanje boja u Pythonu pomoću OpenCV -a: 8 koraka
Otkrivanje boja u Pythonu pomoću OpenCV -a: Zdravo! Ova instrukcija se koristi za vodiče o tome kako izdvojiti određenu boju iz slike u pythonu pomoću biblioteke openCV. Ako ste tek počeli koristiti ovu tehniku, ne brinite, na kraju ovog vodiča moći ćete programirati svoju boju
Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -em u alarmni uređaj za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": 17 koraka
Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -jem u aparat za alarme za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": U ovom članku pokazat ćemo vam kako nadograditi svoj lonac za samolijevanje s vlastitim WiFi -jem u DIY lonac za samolijevanje s WiFi -jem i alarmom za detekciju kretanja. niste pročitali članak o tome kako izgraditi lonac za samostalno zalijevanje s WiFi -jem, možete fin
Otkrivanje lica i očiju pomoću Raspberry Pi Zero i Opencv: 3 koraka
Otkrivanje lica i očiju pomoću Raspberry Pi Zero i Opencv -a: U ovom uputstvu pokazat ću kako možete otkriti lice i oči pomoću maline pi i opencv. Ovo je moje prvo uputstvo za opencv. Slijedio sam mnoge vodiče za postavljanje otvorenog cv -a u malini, ali svaki put je došlo do nekih grešaka. U svakom slučaju ja
Otkrivanje boje pomoću RGB LED: 4 koraka
Otkrivanje boje pomoću RGB LED: Jeste li ikada poželjeli automatizirani način otkrivanja boje objekta? Osvjetljavanjem određene boje na objektu i gledanjem koliko se svjetlosti reflektira unatrag, možete odrediti koje je boje objekt. Na primjer, ako zasvijetlite crveno svjetlo o