Obsah:
- Krok 1: Súbory hlavičky
- Krok 2: Nasnímanie videa
- Krok 3: Zachytenie rámca a definovanie farby
- Krok 4: Maskovanie a extrahovanie
- Krok 5: Konečne zobrazenie
- Krok 6: Demo
Video: Jednoduchá detekcia farieb pomocou OpenCV: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Ahoj! Dnes ukážem jednoduchú metódu detekcie farby zo živého videa pomocou OpenCV a pythonu.
V zásade len otestujem, či je požadovaná farba v rámčeku pozadia prítomná alebo nie, a pomocou modulov OpenCV túto oblasť zamaskujem a súčasne zobrazím rámec.
Krok 1: Súbory hlavičky
Teraz som použil dva hlavičkové súbory, konkrétne cv2 a NumPy. Cv2 je v zásade knižnica OpenCV, ktorá načítava všetky súbory c ++, ktoré sú dôležité pri použití príkazov v kódoch (obsahuje všetky definície).
A Numpy je pythonová knižnica, ktorá je zásadná pre ukladanie viacrozmerného poľa. Budeme používať na uloženie našich súradníc farebného rozsahu.
A numpy ako np v podstate pomáha nášmu kódu trochu sa skrátiť tým, že namiesto numpy použije zakaždým np.
Krok 2: Nasnímanie videa
Pri použití pythonu je to veľmi jednoduché. Tu stačí zapnúť videorekordér, aby mohol začať nahrávať snímky.
Teraz hodnota vo vnútri VideoCapture označuje kameru, v mojom prípade je kamera pripojená k môjmu notebooku, takže 0.
Môžete ísť podobne ako 1 pre sekundárny fotoaparát a podobne. Objekt VideoCapture pre to vytvorí objekt.
Krok 3: Zachytenie rámca a definovanie farby
Teraz tu musíme urobiť niečo, aby sme mohli zachytiť okamžitý rámec videa, ktorý nám pomôže extrahovať obrázok, a môžeme na tom pracovať podľa požiadaviek.
Cyklus „while“nám pomôže spustiť slučku na požadovaný čas. Teraz "_, frame = cap.read ()" slúži na kontrolu platnosti zachyteného rámca a jeho uloženie. „cap.read () je booleovská premenná a vracia hodnotu true, ak je rámec správne prečítaný a ak nedostanete žiadne rámce, nezobrazí žiadnu chybu, jednoducho dostanete None.
Teraz riadky 11 a riadky 12 v zásade definujú rozsah farieb, ktoré musíme zistiť. Na to som použil modrú farbu.
Môžete pokračovať s ľubovoľnou farbou, pre ktorú potrebujete, zadajte hodnoty BGR pre konkrétnu farbu. Je lepšie definovať dve polia pomocou numpy polí, pretože detekcia konkrétnej farby v reálnom svete nebude slúžiť nášmu účelu, skôr definujeme rozsah modrej farby tak, aby detekoval v rámci rozsahu.
Za týmto účelom som definoval dve premenné ukladajúce nižšie hodnoty BGR a horné hodnoty BGR.
Krok 4: Maskovanie a extrahovanie
Teraz prichádza hlavná úloha maskovania rámu a extrahovania farby rámu. Na maskovanie som použil preddefinované príkazy prítomné v knižnici v OpenCV. V zásade je maskovanie procesom odstránenia určitej časti rámca, t. J. Odstránime pixely, ktorých hodnoty BGR farby nespadajú do definovaného farebného rozsahu, a to pomocou programu cv2.inRange. Potom použijeme rozsah farieb na maskovaný obrázok v závislosti od hodnôt pixelov a na to použijeme cv2.bitwise_and, Jednoducho priradí farby maskovanej oblasti v závislosti od hodnôt masky a rozsahu farieb.
Odkaz na cv2. bitwise_and:
Krok 5: Konečne zobrazenie
Tu som použil základnú cv2.imshow () na zobrazenie pre každý rámec ako obrázok. Keďže mám údaje rámcov uložené v premenných, môžem ich načítať v imshow (). Tu som zobrazil všetky tri rámčeky, pôvodné, maskované a farebné.
Teraz musíme opustiť slučku while. Na to môžeme jednoducho implementovať cv2.wait. Key (). V zásade udáva čakaciu dobu, než odpoviete. Ak teda miniete 0, bude čakať nekonečne a 0xFF hovorí, že architektúra je 64bitová. "ord ()" určuje znak, ktorý po stlačení vykoná príkaz break v bloku if a vyjde zo slučky.
Potom cap.release () zatvorí videorekordér a cv2.destroyAllWindows () zatvorí všetky otvorené okná.
Ak máte nejaký problém, dajte mi prosím vedieť.
Odkaz na zdrojový kód:
Odporúča:
Detekcia farieb v Pythone pomocou OpenCV: 8 krokov
Detekcia farieb v Pythone pomocou OpenCV: Dobrý deň! Tento návod sa používa na návod, ako extrahovať konkrétnu farbu z obrázku v pythone pomocou knižnice openCV. Ak ste v tejto technike nováčik, nebojte sa, na konci tejto príručky budete môcť naprogramovať svoju vlastnú farbu
Robot na sledovanie farieb založený na všesmerovom kolese a OpenCV: 6 krokov
Robot na sledovanie farieb založený na všesmerovom kolese a OpenCV: Na implementáciu sledovania farieb používam všesmerový podvozok kolies a používam mobilný softvér s názvom OpenCVBot. Vďaka vývojárom softvéru tu, ďakujem. OpenCV Bot v skutočnosti detekuje alebo sleduje akýkoľvek objekt v reálnom čase pomocou procesu obrazu
Detekcia objektov pomocou Dragonboard 410c alebo 820c pomocou OpenCV a Tensorflow .: 4 kroky
Object Detection W/ Dragonboard 410c or 820c using OpenCV and Tensorflow .: This instructables popisuje how to install OpenCV, Tensorflow, and machine learning frameworks for Python 3.5 to run the Object Detection
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit: 5 krokov
Merania svetla a farieb S Pimoroni Enviro: bit pre Micro: bit: Pracoval som na niektorých zariadeniach, ktoré predtým umožňovali meranie svetla a farieb a veľa o teórii za takýmito meraniami nájdete inštrukcie tu a tu. nedávno vydalo enviro: bit, doplnok pre m
Detekcia farieb pomocou RGB LED: 4 kroky
Detekcia farieb pomocou RGB LED: Už ste niekedy chceli automatický spôsob detekcie farby objektu? Svietením svetla určitej farby na predmet a pohľadom na to, koľko svetla sa odrazí späť, môžete zistiť, akú farbu má predmet. Ak napríklad svietite červeným svetlom na