Obsah:
- Krok 1: Soubory záhlaví
- Krok 2: Pořízení videa
- Krok 3: Zachycení rámečku a definování barev
- Krok 4: Maskování a extrahování
- Krok 5: Konečně zobrazení
- Krok 6: Demo
Video: Jednoduchá detekce barev pomocí OpenCV: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Ahoj! Dnes ukážu jednoduchou metodu detekce barvy ze živého videa pomocí OpenCV a pythonu.
V zásadě jen vyzkouším, zda je požadovaná barva v rámečku na pozadí přítomna nebo ne, a pomocí modulů OpenCV tuto oblast zamaskuji a současně zobrazím rámeček.
Krok 1: Soubory záhlaví
Tady jsem použil dva soubory záhlaví, konkrétně cv2 a NumPy. Cv2 je v zásadě knihovna OpenCV, která načítá všechny soubory c ++, které jsou důležité při používání příkazů v kódech (obsahuje všechny definice).
A Numpy je knihovna pythonu, která je nezbytná pro ukládání vícerozměrného pole. Budeme používat k uložení našich souřadnic barevného rozsahu.
A numpy jako np v zásadě pomáhá našemu kódu trochu zkrátit pomocí np pokaždé místo numpy.
Krok 2: Pořízení videa
Při používání pythonu je to velmi jednoduché. Zde stačí zapnout videorekordér, aby mohl začít nahrávat snímky.
Nyní hodnota uvnitř VideoCapture označuje kameru, v mém případě je kamera připojena k mému notebooku, takže 0.
Můžete jít podobně jako 1 pro sekundární kameru a tak dále. VideoCapture pro to vytvoří objekt.
Krok 3: Zachycení rámečku a definování barev
Nyní zde musíme něco udělat, abychom mohli zachytit okamžitý snímek videa, který nám pomůže extrahovat obrázek, a můžeme na tom pracovat podle požadavku.
Smyčka „while“nám pomůže spustit smyčku na požadovaný čas. Nyní "_, frame = cap.read ()" slouží ke kontrole platnosti zachyceného rámce a jeho uložení. „Cap.read () je boolean variabilní a vrací true, pokud je rám správně číst a pokud se dostanete bez rámů nebude vykazovat žádné chyby, budete jednoduše dostat Žádné.
Nyní řádek 11 a řádek 12 v podstatě definují rozsah barev, které potřebujeme detekovat. K tomu jsem použil modrou barvu.
Můžete pokračovat jakoukoli barvou, pro kterou potřebujete pouze zadat hodnoty BGR pro tuto konkrétní barvu. Je lepší definovat dvě pole pomocí numpy polí, protože detekce konkrétní barvy v reálném světě nebude sloužit našemu účelu, spíše definujeme rozsah modré barvy tak, aby detekoval v rozsahu.
Za tímto účelem jsem definoval dvě proměnné, které ukládají nižší hodnoty BGR a horní hodnoty BGR.
Krok 4: Maskování a extrahování
Nyní přichází hlavní úkol maskování rámečku a extrahování barvy rámečku. K maskování jsem použil předdefinované příkazy přítomné v knihovně v OpenCV. V zásadě je maskování proces odebrání určité části rámce, tj. Odstraníme pixely, jejichž hodnoty BGR barev, které neleží v definovaném barevném rozsahu, se provádí pomocí cv2.inRange. Poté aplikujeme barevný rozsah na maskovaný obrázek v závislosti na hodnotách pixelů, a proto použijeme cv2.bitwise_and, jednoduše přiřadí barvy maskované oblasti v závislosti na hodnotách masky a barevného rozsahu.
Odkaz na cv2. bitwise_and:
Krok 5: Konečně zobrazení
Zde jsem použil základní cv2.imshow () pro zobrazení pro každý snímek jako obrázek. Protože mám data rámců uložená v proměnných, mohu je načíst v imshow (). Zde jsem zobrazil všechny tři rámečky, původní, maskované a barevné.
Nyní musíme opustit smyčku while. K tomu můžeme jednoduše implementovat cv2.wait. Key (). V zásadě říká dobu čekání, než odpoví. Pokud tedy projdete 0, bude čekat nekonečně a 0xFF říká, že architektura je 64bitová. "ord ()" určuje znak, který po stisknutí spustí příkaz break v bloku if a vyjde ze smyčky.
Poté cap.release () zavře videorekordér a cv2.destroyAllWindows () zavře všechna otevřená okna.
Pokud máte nějaký problém, dejte mi prosím vědět.
Odkaz na zdrojový kód:
Doporučuje:
Detekce barev v Pythonu pomocí OpenCV: 8 kroků
Detekce barev v Pythonu pomocí OpenCV: Dobrý den! Tento instruktáž slouží k tomu, jak extrahovat konkrétní barvu z obrázku v pythonu pomocí knihovny openCV. Pokud jste v této technice nováčkem, nebojte se, na konci této příručky budete moci naprogramovat vlastní barvu
Sledování objektů na základě detekce barev: 10 kroků
Sledování objektů na základě detekce barev: Příběh Tento projekt jsem provedl, abych se naučil zpracování obrazu pomocí Raspberry PI a otevřeného CV. Aby byl tento projekt zajímavější, použil jsem dva servomotory SG90 a namontoval na něj kameru. Jeden motor sloužil k pohybu vodorovně a druhý motor k pohybu svisle
Robot pro sledování barev založený na všesměrovém kolečku a OpenCV: 6 kroků
Robot pro sledování barev založený na všesměrovém kolečku a OpenCV: K implementaci sledování barev používám všesměrový podvozek kol a používám mobilní software s názvem OpenCVBot. Díky vývojářům softwaru zde, děkuji. OpenCV Bot ve skutečnosti detekuje nebo sleduje jakýkoli objekt v reálném čase prostřednictvím zpracování obrazu
Detekce objektů W/ Dragonboard 410c nebo 820c pomocí OpenCV a Tensorflow .: 4 kroky
Object Detection W/ Dragonboard 410c or 820c using OpenCV and Tensorflow .: This instructables describes how to install OpenCV, Tensorflow, and machine learning frameworks for Python 3.5 to run the Object Detection
Detekce barev pomocí RGB LED: 4 kroky
Detekce barev pomocí RGB LED: Už jste někdy chtěli automatizovaný způsob detekce barvy objektu? Zářící světlo určité barvy na předmět a pohled na to, kolik světla se odráží zpět, můžete zjistit, jakou barvu má předmět. Pokud například svítíte červeně