
Sadržaj:
- Pribor
- Korak 1: Uvoz knjižnica
- Korak 2: Stvaranje traka tragova
- Korak 3: Stvaranje 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 posljednji korak
- Korak 8: Završni rezultati
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47


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 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 krenimo
Pribor
- Python 3
- knjižnica openCV
- knjižnica numpy
Korak 1: Uvoz knjižnica

Slika je žutog ferrarija kako je prikazano, a mi ćemo programirati izdvajanje samo žute boje iz te slike
Prvi korak bit će uvoz naših knjižnica
1. Uključujući biblioteku openCV. U pythonu se naziva cv2
2. Uključujući knjižnicu numpy kao np. Znakovi "as" dopuštaju nam da numpy označimo kao np pa nema potrebe pisati numpy iznova i iznova
Korak 2: Stvaranje traka tragova

Trake za praćenje stvorene su za podešavanje vrijednosti nijanse, zasićenja i vrijednosti na slici.
cv2. namedWindow ("TrackBars") Ova linija koda koristi se za stvaranje novog izlaznog prozora, a naziv prozora se daje kao TrackBars (Možete dati bilo koje ime koje želite)
cv2.resizeWindow ("TrackBars", 600, 250) Ova se funkcija koristi za promjenu veličine prozora. "TrackBars" je za koji prozor želite promijeniti veličinu budući da sam želio 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: Stvaranje TrackBars za Hue, Saturation i Value


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 bi moglo biti zbunjujuće, ali ne brinite, proći ćemo svaki korak. Imajte na umu jednu stvar: u openCV -u vrijednosti hue su 179, zasićenje je 255, a vrijednost 255
1. Stvaranje TrackBar -a za min. Nijanse:
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. Stvaranje 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 najveći 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 s bijelom pozadinom je izlazna slika. Ovako će izgledati trake za praćenje
Korak 4: Kako pročitati i promijeniti veličinu slike

cv2.imread () omogućuje čitanje slike. Jedna važna misao koju morate imati na umu da mjesto vaše slike mora biti u istoj mapi u kojoj je program spremljen. Umetnut ćemo while petlju jer bi se trebala izvoditi dok ne čita sliku ili možemo reći dok uvjet ne bude istinit
img = cv2.imread ("ferrari.jpg")
- Ovdje sam stvorio naziv varijable "img" u koji spremam sliku
- Unutar cv2.imread upišite naziv slike s nastavkom 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 najprije napišite naziv varijable u koju je slika pohranjena, a zatim njezinu širinu i visinu
Korak 5: Čitanje vrijednosti trake za praćenje kako biste je primijenili na sliku


U redu, sada ćemo č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 stvaram 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 bio bi 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

Sada imamo minimalnu i maksimalnu vrijednost nijanse, zasićenja i vrijednosti koju ćemo koristiti za filtriranje slike kako bismo mogli odrediti izlaz boje u boji.
Za to ćemo stvoriti masku pomoću funkcije cv2.inRange. Prije toga ćemo postaviti gornju i donju granicu nijanse, zasićenja i vrijednosti
Stoga stvorite naziv varijable "lower" i pomoću funkcije numpy array postavite raspon min za sve 3 na sljedeći način
donji = np.mat ([h_min, s_min, v_min])
Ponovite isti korak za gornji dio
gornji = np.mat ([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 je 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 posljednji korak

U ovom posljednjem koraku izdvojit ćemo boju automobila i zaslona.
Napravio sam rezultat imena varijable. Opet možete dati bilo koje ime koje želite. Stoga ćemo koristiti funkciju cv2.bitwise_and () u kojoj ćemo zajedno dodavati slike i stvarati novu sliku. Gdje god su pikseli na obje slike prisutni, bit će to kao da ili "1".
result = cv2.bitwise_and (promijeni veličinu, promijeni veličinu, maska = maska)
- U ovome će prvi argument biti naša slika
- Drugi argument bit će i naša izvorna 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čeni:
Skener QR koda pomoću OpenCV -a u Pythonu: 7 koraka

Skener QR koda pomoću OpenCV-a u Pythonu: U današnjem svijetu vidimo da se QR kôd i crtični kôd koriste gotovo svugdje, od pakiranja proizvoda do mrežnog plaćanja, a sada se svakodnevno vide QR kodovi čak i u restoranu da biste vidjeli izbornik. Dakle, ne sumnja da je to sada velika misao. Ali jeste li se ikada zapitali
Obrada slike s Raspberry Pi: Instaliranje OpenCV -a i odvajanje boja slike: 4 koraka

Obrada slike s Raspberry Pi: Instaliranje OpenCV -a i odvajanje boja u boji: Ovaj je post prvi od nekoliko vodiča za obradu slika koji slijede. Pomnije promatramo piksele koji čine sliku, učimo kako instalirati OpenCV na Raspberry Pi, a također pišemo i testne skripte za snimanje slike, a također i c
Jednostavno otkrivanje boje pomoću OpenCV-a: 6 koraka

Jednostavno otkrivanje boja pomoću OpenCV-a: Bok! 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 pomoću OpenCV modula maskirat ću tu regiju i
Robot za praćenje boja na temelju višesmjernog kotača i OpenCV -a: 6 koraka

Robot za praćenje boja na temelju višesmjernog kotača i OpenCV -a: Za primjenu praćenja boja koristim svesmjerno kućište kotača, a koristim i mobilni softver pod nazivom OpenCVBot. Hvala programerima softvera ovdje, hvala vam. OpenCV Bot zapravo otkriva ili prati bilo koji objekt u stvarnom vremenu kroz obradu slike u
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