![Otkrivanje boja u Pythonu pomoću OpenCV -a: 8 koraka Otkrivanje boja u Pythonu pomoću OpenCV -a: 8 koraka](https://i.howwhatproduce.com/images/007/image-18629-j.webp)
Sadržaj:
- Supplies
- Korak 1: Uvoz biblioteka
- Korak 2: Kreiranje traka za praćenje
- Korak 3: Kreiranje TrackBars za Hue, Saturation i Value
- Korak 4: Kako pročitati i promijeniti veličinu slike
- Korak 5: Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku
- Korak 6: Prikaz slike i postavljanje gornje i donje granice
- Korak 7: Sada završni korak
- Korak 8: Završni rezultati
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
![Image Image](https://i.howwhatproduce.com/images/007/image-18629-2-j.webp)
![](https://i.ytimg.com/vi/MrkJVJ9ESOc/hqdefault.jpg)
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 svoj vlastiti program za otkrivanje boja.
Slijede funkcije ili možemo reći tehnike koje ćete učiti, 1. Kako čitati sliku
2. Kako stvoriti trake za praćenje
3. Kako podesiti vrijednost Hue, Saturation i vrijednost slike pomoću traka za praćenje
4. I tada će biti vaš konačni rezultat
Video ispis koji sam priložio možete pogledati u nastavku.
Pa počnimo
Supplies
- Python 3
- biblioteka openCV
- numpy biblioteka
Korak 1: Uvoz biblioteka
![Uvoz biblioteka Uvoz biblioteka](https://i.howwhatproduce.com/images/007/image-18629-3-j.webp)
Slika je žutog ferrarija, kako je prikazano, a mi ćemo programirati da iz te slike izvučemo samo žutu boju
Prvi korak će biti uvoz naših biblioteka
1. Uključujući biblioteku openCV. U pythonu se naziva cv2
2. Uključujući numpy biblioteku kao np. "As" nam dopušta da numpy kao np, tako da nema potrebe pisati numpy iznova i iznova
Korak 2: Kreiranje traka za praćenje
![Kreiranje traka za praćenje Kreiranje traka za praćenje](https://i.howwhatproduce.com/images/007/image-18629-4-j.webp)
Trake za praćenje su stvorene za podešavanje vrijednosti nijanse, zasićenja i vrijednosti na slici.
cv2. namedWindow ("TrackBars") Ova linija koda se koristi za kreiranje novog izlaznog prozora, a naziv prozora se daje kao TrackBars (Možete dati bilo koje ime koje želite)
cv2.resizeWindow ("TrackBars", 600, 250) Ova funkcija se koristi za promjenu veličine prozora. "TrackBars" je prozor za koji želite promijeniti veličinu jer sam htio promijeniti veličinu TrackBars prozora. Napisao sam to ime. Slijede dva cijela broja. Ta dva cijela broja su širina i visina. Možete se poigrati s ta dva broja kako biste promijenili veličinu
Korak 3: Kreiranje TrackBars za Hue, Saturation i Value
![Kreiranje TrackBars za Hue, Saturation i Value Kreiranje TrackBars za Hue, Saturation i Value](https://i.howwhatproduce.com/images/007/image-18629-5-j.webp)
![Kreiranje TrackBars za Hue, Saturation i Value Kreiranje TrackBars za Hue, Saturation i Value](https://i.howwhatproduce.com/images/007/image-18629-6-j.webp)
Sada ćemo stvarati ukupno 6 TrackBars za Hue, Saturation i vrijednost. Svaki će imati dva, tj. 1 za minimum i 1 za maksimum. Koristit ćemo createTrackbar funkciju openCV -a. Prvo ćemo vidjeti sintaksu ove funkcije.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Ovo može biti zbunjujuće, ali ne brinite, proći ćemo svaki korak. Imajte na umu jednu stvar: u openCV vrijednosti nijanse je 179, zasićenje je 255, a vrijednost 255
1. Kreiranje TrackBar -a za hue min:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, prazno)
U ovom Hue min je naziv trake za praćenje, TrackBars je glavni prozor, 0 je položaj na kojem će se nalaziti naš klizač, a 179 je raspon znači da će se pomak pomaknuti od 0-179
2. Kreiranje TrackBar -a za hue max:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, prazno)
U ovom Hue max je naziv trake za praćenje, TrackBars je glavni prozor, 179 je položaj na kojem će se nalaziti naš klizač, a 179 je maksimalni raspon znači da će se kliznik pomaknuti sa 179-0
3. Slično ponovite korake za sat min, sat max, val min i val max kako je prikazano na slici
Slika sa bijelom pozadinom je izlazna slika. Ovako će izgledati trake za praćenje
Korak 4: Kako pročitati i promijeniti veličinu slike
![Kako čitati i mijenjati veličinu slike Kako čitati i mijenjati veličinu slike](https://i.howwhatproduce.com/images/007/image-18629-7-j.webp)
cv2.imread () omogućava čitanje slike. Jedna važna misao koju morate imati na umu da lokacija vaše slike mora biti u istoj mapi u kojoj je program spremljen. Stavit ćemo while petlju jer bi se trebala izvoditi sve dok ne čita sliku ili možemo reći dok uvjet ne bude istinit
img = cv2.imread ("ferrari.jpg")
- U ovome sam stvorio naziv varijable "img" u koji spremam sliku
- Unutar cv2.imread upišite naziv slike sa ekstenzijom unutar dvostrukih navodnika
Za promjenu veličine slike koristit ćemo funkciju cv2.resize. Ovaj dio nije obavezan, ako želite promijeniti veličinu, možete koristiti ovu funkciju
Unutar cv2.resize prvo napišite naziv varijable u kojoj je slika pohranjena, a zatim njenu širinu i visinu
Korak 5: Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku
![Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku](https://i.howwhatproduce.com/images/007/image-18629-8-j.webp)
![Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku](https://i.howwhatproduce.com/images/007/image-18629-9-j.webp)
U redu, sada ćemo pročitati vrijednosti trake trake kako bismo ih mogli primijeniti na našu sliku. Vrijednosti ćemo dobiti pomoću funkcije cv2.getTrackbarPos ().
Počnimo s tim dijelom…
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
U gornjoj izjavi kreiram naziv varijable h_min u koji ću pohraniti vrijednost Hue min. Tako bi unutar cv2.getTrackbarPos prvi argument bio "Hue min" jer želim vrijednosti hue min (Pravopis mora biti potpuno isti kao što je i funkcija createTrackbar), a drugi argument bi bio naziv prozora trake kojemu pripada.
- Ponovite isti postupak za h_max i ostale funkcije kao što je prikazano na gornjoj slici, a zatim ispišite sve vrijednosti pomoću funkcije print ()
- Izlaz je prikazan na drugoj slici. Ispisuje vrijednosti h_min, h_max, s_min, s_max, v_min, s_max
Korak 6: Prikaz slike i postavljanje gornje i donje granice
![Prikaz slike i postavljanje gornje i donje granice Prikaz slike i postavljanje gornje i donje granice](https://i.howwhatproduce.com/images/007/image-18629-10-j.webp)
Sada imamo minimalnu i maksimalnu vrijednost nijanse, zasićenja i vrijednosti. Koristit ćemo ovu vrijednost za filtriranje slike kako bismo mogli odrediti izlaz boje u boji.
Za ovo ćemo stvoriti masku pomoću funkcije cv2.inRange. Prije toga ćemo postaviti gornju i donju granicu nijanse, zasićenja i vrijednosti
Zato stvorite naziv varijable "lower" i pomoću funkcije numpy array postavite raspon min za sve 3 na sljedeći način
donji = np. matrica ([h_min, s_min, v_min])
Ponovite isti korak za gornji dio
gornji = np.razred ([h_max, s_max, v_max])
Sada ćemo stvoriti masku kako slijedi
mask = cv2.inRange (promijeni veličinu, donji, gornji) Unutar cv2.inRang prvi argument bila bi varijabla u kojoj je pohranjena moja konačna slika, drugi argument bit će donja granica, a treći argument gornja granica.
Sada ćemo prikazati glavnu sliku i masku. Za prikaz ćemo koristiti funkciju cv2.imshow ()
cv2.imshow ("img", promijeni veličinu) Ovo služi za prikaz glavne slike. Prvi argument je naziv prozora kojem možete dati bilo koje ime, a drugi argument je varijabla u kojoj je pohranjena moja glavna slika koju želite prikazati.
Slično ponovite korake za masku
cv2.imshow ("Izlaz", maska)
Korak 7: Sada završni korak
![Sada posljednji korak Sada posljednji korak](https://i.howwhatproduce.com/images/007/image-18629-11-j.webp)
U ovom posljednjem koraku izdvojit ćemo boju automobila i zaslona.
Kreirao sam rezultat imena varijable. Opet možete dati bilo koje ime koje želite. Zato ćemo koristiti funkciju cv2.bitwise_and () u kojoj ćemo zajedno dodavati slike i stvarati novu sliku. I gdje god su pikseli na obje slike prisutni, to će biti da ili "1".
rezultat = cv2.bitwise_and (promijenite veličinu, promijenite veličinu, maska = maska)
- U ovome će prvi argument biti naša slika
- Drugi argument će također biti naša originalna slika, ali slijedi primijenjena maska koju smo prethodno stvorili
- I na kraju samo prikažite rezultat pomoću funkcije imshow
Samo kopirajte zalijepi ovaj zadnji korak. To je samo odgoda i možete izaći iz izlaznog prozora pritiskom na "a" na tipkovnici
Korak 8: Završni rezultati
Preporučuje se:
Skener QR koda pomoću OpenCV -a u Pythonu: 7 koraka
![Skener QR koda pomoću OpenCV -a u Pythonu: 7 koraka Skener QR koda pomoću OpenCV -a u Pythonu: 7 koraka](https://i.howwhatproduce.com/images/001/image-2256-j.webp)
Skener QR koda pomoću OpenCV-a u Pythonu: U današnjem svijetu vidimo da se QR kod i bar kod koriste gotovo svugdje, od pakiranja proizvoda do plaćanja putem Interneta, a sada se svakodnevno vide QR kodovi čak i u restoranu da biste vidjeli jelovnik. sumnjam da je to sada velika misao. Ali jeste li se ikada zapitali
Mašina za farbanje boja za otkrivanje boje: 4 koraka
![Mašina za farbanje boja za otkrivanje boje: 4 koraka Mašina za farbanje boja za otkrivanje boje: 4 koraka](https://i.howwhatproduce.com/images/007/image-18479-j.webp)
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
Jednostavno otkrivanje boje pomoću OpenCV-a: 6 koraka
![Jednostavno otkrivanje boje pomoću OpenCV-a: 6 koraka Jednostavno otkrivanje boje pomoću OpenCV-a: 6 koraka](https://i.howwhatproduce.com/images/007/image-18589-j.webp)
Jednostavno otkrivanje boja pomoću OpenCV-a: Zdravo! Danas ću pokazati jednostavnu metodu otkrivanja boje iz videa uživo koristeći OpenCV i python. U osnovi ću samo testirati da li je potrebna boja prisutna u pozadinskom okviru ili ne, a koristeći OpenCV module, maskirat ću tu regiju i
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 -em u alarmni uređaj za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": 17 koraka Nadogradite "uradi sam" lonac za zalijevanje sa WiFi -em u alarmni uređaj za otkrivanje kretnji za otkrivanje pokreta "Uradi sam": 17 koraka](https://i.howwhatproduce.com/images/003/image-7723-j.webp)
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: 3 koraka Otkrivanje lica i očiju pomoću Raspberry Pi Zero i Opencv: 3 koraka](https://i.howwhatproduce.com/images/001/image-692-82-j.webp)
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