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 promjena: 2024-01-30 09:33
Bok! 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 pozadinskom okviru ili ne, a koristeći OpenCV module maskirat ću to područje i istovremeno prikazati okvir.
Korak 1: Datoteke zaglavlja
Ovdje sam upotrijebio dvije datoteke zaglavlja, naime cv2 i NumPy. U osnovi cv2 je OpenCV knjižnica koja učitava sve c ++ datoteke koje su važne dok se koriste naredbe u kodovima (sadrži sve definicije).
Numpy je python knjižnica 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 korištenjem np svaki put umjesto numpy.
Korak 2: Snimanje videozapisa
Ovo je prilično jednostavno dok koristite python. Ovdje samo moramo 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 moje prijenosno računalo, dakle 0.
Možete ići slično 1 za sekundarnu kameru i tako dalje. VideoCapture za njega stvara objekt.
Korak 3: Snimanje okvira i definiranje boje
Sada ovdje moramo učiniti nešto kako bismo mogli snimiti trenutni kadar videozapisa koji će nam pomoći da izdvojimo sliku, a na tome možemo raditi 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 sprema 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 pogrešku, jednostavno ćete dobiti None.
Sada linija 11 i linija 12 u osnovi definiraju raspon boja koje moramo otkriti. Za to sam koristio 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 polja numpy jer otkrivanje određene boje u stvarnom svijetu neće nam poslužiti, već ćemo definirati raspon plave boje tako da se detektira unutar raspona.
Za to sam definirao dvije varijable koje spremaju donje BGR vrijednosti i gornje BGR vrijednosti.
Korak 4: Maskiranje i vađenje
Ovdje dolazi glavni zadatak maskiranja okvira i izdvajanja boje okvira. Za maskiranje sam koristio unaprijed definirane naredbe prisutne u knjižnici u OpenCV -u. U osnovi maskiranje je proces uklanjanja dijela okvira, 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 maski i vrijednostima raspona boja.
Link za cv2. bitwise_and:
Korak 5: Konačno se prikazuje
Ovdje sam koristio osnovni cv2.imshow () za prikaz za svaki okvir kao sliku. Budući da imam okvirne podatke pohranjene u varijablama, mogu ih dohvatiti u imshow (). Ovdje sam prikazao sva tri okvira, izvorni, 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 nego što odgovori. Dakle, ako prođete 0, čekat će beskonačno, a 0xFF govori da je arhitektura 64 -bitna. "ord ()" određuje znak koji će, kada se pritisne, izvršiti naredbu break u bloku if i ona će izaći iz petlje.
Tada cap.release () zatvara video rekorder, a cv2.destroyAllWindows () zatvara sve otvorene prozore.
Ako imate bilo kakvih problema, javite mi.
Veza na izvorni kod:
Preporučeni:
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 izvući 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
Otkrivanje objekata W/ Dragonboard 410c ili 820c pomoću OpenCV -a i Tensorflow .: 4 koraka
Object Detection W/ Dragonboard 410c ili 820c pomoću OpenCV -a i Tensorflow -a .: Ove upute opisuju kako instalirati OpenCV, Tensorflow i okvire strojnog učenja za Python 3.5 za pokretanje aplikacije Object Detection
Svjetlo upozorenja za rotacijske svjetionike u dvije boje u dvije boje: 6 koraka
Svjetlo upozorenja rotacijskog svjetionika u dvije boje: U ovom Instructable -u stvorit ćemo mini svjetlo. Znate, jedno od onih starinskih rotirajućih svjetala koje su stavljali na građevinsku opremu prije nego što su LED diode postale velike? Da. Jedan od onih. Ovaj će biti relativno jednostavan i malen
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 natrag, možete znati koje je boje objekt. Na primjer, ako zasvijetlite crveno svjetlo o
RGB LED jeftino i jednostavno mijenjanje boje noćnog svjetla: 3 koraka
RGB LED jeftino i jednostavno mijenjanje boje noćnog svjetla: Ovaj projekt je bio prilično jednostavan nakon što sam se poigrao i shvatio, što je potrajalo. Ideja je da se boja može promijeniti prekidačem i led opcije & zatamnjivanja također. Ovo su stavke koje ćete morati c