Obsah:
- Zásoby
- Krok 1: Import knižníc
- Krok 2: Vytvorenie panelov stopy
- Krok 3: Vytvorenie trackbarov pre odtieň, sýtosť a hodnotu
- Krok 4: Ako čítať a meniť veľkosť obrázku
- Krok 5: Čítanie hodnôt panela stôp a jeho použitie na obrázok
- Krok 6: Zobrazenie obrázku a nastavenie hornej a dolnej hranice
- Krok 7: Teraz posledný krok
- Krok 8: Konečné výstupy
Video: Detekcia farieb v Pythone pomocou OpenCV: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Ahoj! 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ť svoj vlastný program na detekciu farieb.
Nasledujú funkcie alebo môžeme povedať techniky, ktoré sa naučíte, 1. Ako čítať obrázok
2. Ako vytvoriť lišty
3. Ako upraviť hodnotu odtieňa, sýtosti a hodnoty obrázka pomocou panelov stopy
4. A potom bude váš konečný výstup
Môžete si pozrieť video z výstupu, ktorý som pripojil nižšie.
Začnime teda
Zásoby
- Python 3
- knižnica openCV
- numpy knižnica
Krok 1: Import knižníc
Obrázok je zo žltého ferrari, ako je znázornené, a naprogramujeme, aby sme z tohto obrázku extrahovali iba žltú farbu
Prvým krokom bude import našich knižníc
1. Vrátane knižnice openCV. V pythone sa to nazýva cv2
2. Vrátane numpy knižnice ako np. „Ako“nám umožňuje znecitlivieť ako np, takže nie je potrebné písať znova a znova
Krok 2: Vytvorenie panelov stopy
Track Bars sa vytvárajú na úpravu hodnoty Hue, Saturation a Value na obrázku.
cv2.namedWindow ("TrackBars") Tento riadok kódu sa používa na vytvorenie nového výstupného okna a názov okna je uvedený ako TrackBars (Môžete dať ľubovoľné meno)
cv2.resizeWindow ("TrackBars", 600, 250) Táto funkcia sa používa na zmenu veľkosti okna. "TrackBars" je pre ktoré okno chcete zmeniť veľkosť, pretože som chcel zmeniť veľkosť okna TrackBars Napísal som to meno. Nasledujú dve celé čísla. Tieto dve celé čísla sú šírka a výška. S týmito dvoma číslami sa môžete pohrať a zmeniť veľkosť
Krok 3: Vytvorenie trackbarov pre odtieň, sýtosť a hodnotu
Teraz vytvoríme celkom 6 trackbarov pre odtieň, sýtosť a hodnotu. Každý bude mať dva, tj. 1 pre minimum a 1 pre maximum. Budeme používať funkciu createTrackbar openCV. Najprv uvidíme syntax tejto funkcie.
cv2.createTrackbar („WINDOWNAME“, „MAINWINDOWNAME“, „RANGE“). Môže to byť mätúce, ale nebojte sa, prejdeme každým krokom. Majte na pamäti jednu vec, že v openCV hodnotách odtieňa je 179, sýtosť je 255 a hodnota je 255
1. Vytvorenie TrackBaru pre min. Odtieň:
cv2.createTrackbar („Hue min“, „TrackBars“, 0, 179, prázdne)
V tomto Hue min je názov lišty, TrackBars je hlavné okno, 0 je poloha, na ktorej bude náš posúvač a 179 je rozsah, čo znamená, že silder sa bude pohybovať od 0 do 179
2. Vytvorenie TrackBaru pre maximálny odtieň:
cv2.createTrackbar („Hue max“, „TrackBars“, 179, 179, prázdny)
V tomto Hue max je názov lišty, TrackBars je hlavné okno, 179 je poloha, na ktorej sa bude nachádzať náš posúvač, a 179 je maximálny rozsah, čo znamená, že tlmič sa bude pohybovať od 179-0
3. Podobne zopakujte kroky pre sat min, sat max, val min a val max, ako je znázornené na obrázku
Výstupným obrázkom je obrázok s bielym pozadím. Takto budú vyzerať vaše vodiace lišty
Krok 4: Ako čítať a meniť veľkosť obrázku
cv2.imread () vám umožňuje prečítať si obrázok. Je dôležité mať na pamäti, že umiestnenie obrázka musí byť v rovnakom priečinku, kde je uložený program. Vložíme cyklus while, pretože by mal bežať, kým nebude čítať obrázok, alebo môžeme povedať, kým podmienka nie je pravdivá
img = cv2.imread ("ferrari.jpg")
- V tomto som vytvoril názov premennej „img“, do ktorého ukladám obrázok
- Do cv2.imread napíšte názov obrázku s jeho príponou do dvojitých úvodzoviek
Na zmenu veľkosti obrázka použijeme funkciu cv2.resize. Táto časť je voliteľná, ak chcete zmeniť veľkosť, môžete použiť túto funkciu
Do cv2.resize napíšte najskôr názov premennej, v ktorej je obrázok uložený, a potom jeho šírku a výšku
Krok 5: Čítanie hodnôt panela stôp a jeho použitie na obrázok
Dobre, takže teraz budeme čítať hodnoty panela lišty, aby sme to mohli použiť na náš obrázok. Hodnoty získame pomocou funkcie cv2.getTrackbarPos ().
Začnime touto časťou …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Vo vyššie uvedenom vyhlásení vytváram názov premennej h_min, do ktorého budem ukladať hodnotu Hue min. Takže vo vnútri cv2.getTrackbarPos 1. argument by bol „Hue min“, pretože chcem hodnoty hue min (Pravopis musí byť úplne rovnaký ako funkcia createTrackbar) a 2. argument by bol názov okna lišty, do ktorého patrí.
- Opakujte rovnaký postup pre h_max a ostatné funkcie, ako je znázornené na obrázku vyššie, a potom vytlačte všetky hodnoty pomocou print ()
- Výstup je zobrazený na druhom obrázku. Vytlačí hodnoty h_min, h_max, s_min, s_max, v_min, s_max
Krok 6: Zobrazenie obrázku a nastavenie hornej a dolnej hranice
Teraz máme minimálnu a maximálnu hodnotu odtieňa, sýtosti a hodnoty, ktorú použijeme na odfiltrovanie obrazu, aby sme mohli konkrétny farebný výstup obrázka.
Na to vytvoríme masku pomocou funkcie cv2.inRange. A predtým nastavíme hornú a dolnú hranicu odtieňa, sýtosti a hodnoty
Vytvorte teda názov premennej „nižší“a pomocou funkcie numpy array nastavte rozsah min pre všetky 3 nasledovne
nižší = np.array ([h_min, s_min, v_min])
Opakujte rovnaký krok pre hornú časť
horná = np.array ([h_max, s_max, v_max])
Teraz vytvoríme masku nasledovne
maska = cv2.inRange (zmena veľkosti, dolná, horná) Vo vnútri cv2.inRang 1. argument bude premenná, v ktorej je uložený môj konečný obrázok, 2. argument bude dolný limit a 3. argument bude horný limit.
Teraz zobrazíme hlavný obrázok a masku. Na zobrazenie použijeme funkciu cv2.imshow ()
cv2.imshow ("img", zmena veľkosti) Toto má zobraziť hlavný obrázok. Prvý argument je názov okna, ktorému môžete dať ľubovoľné meno, a druhý argument je premenná, v ktorej je uložený môj hlavný obrázok, ktorý chcete zobraziť.
Podobne zopakujte kroky pre masku
cv2.imshow („Výstup“, maska)
Krok 7: Teraz posledný krok
V tomto poslednom kroku extrahujeme farbu auta a displeja.
Vytvoril som výsledok názvu premennej. Opäť môžete dať ľubovoľné meno. Budeme teda používať funkciu cv2.bitwise_and (), v ktorej budeme spoločne pridávať obrázky a vytvárať nový obrázok. A nech sú pixely na oboch obrázkoch prítomné, bude to znamenať buď áno alebo „1“.
result = cv2.bitwise_and (zmeniť veľkosť, zmeniť veľkosť, maska = maska)
- V tomto bude prvý argument naším obrazom
- Druhý argument bude tiež naším pôvodným obrázkom, ale bude nasledovať použitá maska, ktorú sme vytvorili predtým
- A nakoniec len zobrazte výsledok pomocou funkcie imshow
Tento posledný krok skopírujte a prilepte. Je to len oneskorenie a výstupné okno môžete opustiť stlačením klávesu „a“na klávesnici
Krok 8: Konečné výstupy
Odporúča:
Skener QR kódu pomocou OpenCV v Pythone: 7 krokov
Skener QR kódov pomocou OpenCV v Pythone: V dnešnom svete vidíme, že QR kód a čiarový kód sa používajú takmer všade, od balenia produktu po online platby a v dnešnej dobe vidíme QR kódy dokonca aj v reštaurácii, aby sme videli menu. Pochybujem, že je to teraz hlavná myšlienka. Ale už ste niekedy mali
Pozorovateľ vlhkosti a teploty pomocou Raspberry Pi s SHT25 v Pythone: 6 krokov
Pozorovateľ vlhkosti a teploty pomocou Raspberry Pi S SHT25 v Pythone: Ako nadšenec pre Raspberry Pi sme uvažovali o ďalších veľkolepých experimentoch. V tejto kampani vytvoríme pozorovateľa vlhkosti a teploty, ktorý meria relatívnu vlhkosť a teplotu pomocou Raspberry Pi a SHT25, Humidi
Jednoduchá detekcia farieb pomocou OpenCV: 6 krokov
Jednoduchá detekcia farieb pomocou OpenCV: 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 pozadí alebo nie a pomocou modulov OpenCV túto oblasť zamaskujem a
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
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