Cuprins:
- Provizii
- Pasul 1: Importul bibliotecilor
- Pasul 2: Crearea bare de urmărire
- Pasul 3: Crearea TrackBars pentru nuanță, saturație și valoare
- Pasul 4: Cum să citiți și să redimensionați imaginea
- Pasul 5: Citirea valorilor barei de urmărire pentru ao aplica unei imagini
- Pasul 6: Afișarea imaginii și setarea limitei superioare și inferioare
- Pasul 7: Acum pasul final
- Pasul 8: ieșiri finale
Video: Detectarea culorilor în Python folosind OpenCV: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Buna! Această instrucțiune este utilizată pentru a ghida despre cum să extrageți o culoare specifică dintr-o imagine din python utilizând biblioteca openCV. Dacă sunteți nou în această tehnică, atunci nu vă faceți griji, la sfârșitul acestui ghid veți putea programa propriul dvs. program de detectare a culorilor.
Următoarele sunt funcțiile sau putem spune tehnici pe care le veți învăța, 1. Cum se citește o imagine
2. Cum se creează bare de urmărire
3. Cum se ajustează valoarea Hue, Saturation și valoarea unei imagini folosind bare de urmărire
4. Și apoi va fi rezultatul final
Puteți viziona videoclipul rezultatului pe care l-am atașat mai jos.
Deci sa începem
Provizii
- Python 3
- biblioteca openCV
- bibliotecă numpy
Pasul 1: Importul bibliotecilor
Imaginea este de culoare galbenă Ferrari așa cum se arată și vom programa să extragem doar culoarea galbenă din acea imagine
Primul pas va fi importarea bibliotecilor noastre
1. Inclusiv biblioteca openCV. Se numește cv2 în python
2. Inclusiv biblioteca numpy ca np. „Ca” ne permite să ne numpy ca np, deci nu este nevoie să scriem numpy din nou și din nou
Pasul 2: Crearea bare de urmărire
Barele de urmărire sunt create pentru a regla valoarea de nuanță, saturație și valoare într-o imagine.
cv2.namedWindow ("TrackBars") Această linie de cod este utilizată pentru a crea o nouă fereastră de ieșire și numele ferestrei este dat ca TrackBars (Puteți da orice nume doriți)
cv2.resizeWindow ("TrackBars", 600, 250) Această funcție este utilizată pentru a redimensiona o fereastră. "TrackBars" este pentru fereastra pe care doriți să o redimensionați, deoarece am vrut să redimensionați fereastra TrackBars, am scris acel nume. Urmat de două numere întregi. Aceste două numere întregi sunt lățimea și înălțimea. Puteți juca cu aceste două numere pentru a schimba dimensiunea
Pasul 3: Crearea TrackBars pentru nuanță, saturație și valoare
Acum vom crea un total de 6 TrackBars pentru Hue, Saturation și valoare. Fiecare va avea două, adică 1 pentru minim și 1 pentru maxim. Vom folosi funcția createTrackbar a openCV. Mai întâi vom vedea sintaxa acestei funcții.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Acest lucru ar putea fi confuz, dar nu vă faceți griji, vom parcurge fiecare pas. Rețineți un lucru că în openCV valorile nuanței sunt 179, saturația este 255 și valoarea este 255
1. Crearea TrackBar pentru nuanță min:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, gol)
În acest Hue min este numele barei de urmărire, TrackBars este fereastra principală, 0 este poziția pe care va fi glisorul nostru și 179 este intervalul înseamnă că silderul se va deplasa de la 0 la 179
2. Crearea TrackBar pentru nuanța maximă:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, gol)
În acest Hue max este numele barei de urmărire, TrackBars este fereastra principală, 179 este poziția pe care va fi glisorul nostru și 179 este intervalul maxim înseamnă că silderul se va deplasa de la 179-0
3. În mod similar, repetați pașii pentru sat min, sat max, val min și val max așa cum se arată în imagine
Imaginea cu fundalul alb este imaginea de ieșire. Așa va arăta bare de urmărire
Pasul 4: Cum să citiți și să redimensionați imaginea
cv2.imread () vă permite să citiți imaginea. Un lucru important trebuie să rețineți că locația imaginii dvs. trebuie să fie în același folder în care este salvat programul. Vom introduce bucla while pentru că ar trebui să ruleze până când citim imaginea sau putem spune până când condiția este adevărată
img = cv2.imread ("ferrari.jpg")
- În aceasta am creat un nume variabil „img” în care stochez imaginea
- În interiorul cv2.imread scrieți numele imaginii cu extensia sa în ghilimele duble
Pentru a redimensiona o imagine vom folosi funcția cv2.resize. Această parte este opțională, dacă doriți să redimensionați, puteți utiliza această funcție
În interiorul cv2.resize scrieți mai întâi numele variabilei în care este stocată imaginea și apoi lățimea și înălțimea acesteia
Pasul 5: Citirea valorilor barei de urmărire pentru ao aplica unei imagini
Ok, deci acum vom citi valorile barei de bare pentru a le putea aplica imaginii noastre. Vom obține valorile folosind funcția cv2.getTrackbarPos ().
Să începem cu acea parte …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
În declarația de mai sus creez un nume variabil h_min în care voi stoca valoarea Hue min. Deci, în interiorul cv2.getTrackbarPos primul argument ar fi „Hue min” pentru că vreau valori ale nuanței min.
- Repetați același proces pentru h_max și restul funcțiilor așa cum se arată în imaginea de mai sus și apoi imprimați toate valorile folosind print ()
- Ieșirea este afișată în a doua imagine. Se tipărește valorile h_min, h_max, s_min, s_max, v_min, s_max
Pasul 6: Afișarea imaginii și setarea limitei superioare și inferioare
Acum avem valoarea minimă și maximă a nuanței, a saturației și a valorii, vom folosi această valoare pentru a filtra imaginea, astfel încât să putem obține rezultatul particular al culorii unei imagini.
Vom crea o mască pentru aceasta folosind funcția cv2.inRange. Și înainte de aceasta, vom seta limita superioară și inferioară de nuanță, saturație și valoare
Deci, creați un nume de variabilă „mai jos” și utilizând funcția matrice numpy setați intervalul de min pentru toate cele 3 după cum urmează
lower = np.array ([h_min, s_min, v_min])
Repetați același pas pentru partea superioară
upper = np.array ([h_max, s_max, v_max])
Acum vom crea o mască după cum urmează
mask = cv2.inRange (redimensionare, inferior, superior) În interiorul cv2.inRang primul argument ar fi variabila în care este stocată imaginea mea finală, al doilea argument va fi limita inferioară și al treilea argument ar fi limita superioară.
Acum vom afișa imaginea principală și masca. Pentru a afișa vom folosi funcția cv2.imshow ()
cv2.imshow ("img", redimensionare) Aceasta este pentru a afișa imaginea principală. Primul argument este numele ferestrei pe care îl puteți da oricărui nume doriți și al doilea argument este variabil în care este stocată imaginea mea principală pe care doriți să o afișați.
În mod similar, repetați pașii pentru mască
cv2.imshow („Ieșire”, mască)
Pasul 7: Acum pasul final
În acest ultim pas vom extrage culoarea mașinii și afișajul.
Am creat un rezultat cu nume variabil. Din nou, puteți da orice nume doriți. Deci vom folosi funcția cv2.bitwise_and () în care vom adăuga la imagini împreună și vom crea o nouă imagine. Și oriunde sunt prezenți pixelii din ambele imagini, va fi considerat ca da sau „1”.
result = cv2.bitwise_and (redimensionare, redimensionare, mască = mască)
- În aceasta, primul argument va fi imaginea noastră
- Al doilea argument va fi și imaginea noastră originală, dar urmat de masca aplicată pe care am creat-o anterior
- Și, în cele din urmă, doar afișați rezultatul folosind funcția imshow
Doar copiați și lipiți acest ultim pas, este doar o întârziere și puteți ieși din fereastra de ieșire apăsând „a” de pe tastatură
Pasul 8: ieșiri finale
Recomandat:
Cum se face o sonerie fără atingere, detectarea temperaturii corpului, GY-906, 433 MHz folosind Arduino: 3 pași
Cum se face o sonerie fără atingere, detectarea temperaturii corpului, GY-906, 433 MHz Folosind Arduino: Astăzi vom face o sonerie fără atingere, aceasta va detecta temperatura corpului. În situația actuală, este foarte important să știm dacă temperatura corpului cuiva este mai mare decât în mod normal, atunci când cineva se bate. Acest proiect va afișa lumină roșie dacă detectează
Detectare simplă a culorilor folosind OpenCV: 6 pași
Detectare simplă a culorilor folosind OpenCV: Bună! Astăzi voi arăta o metodă simplă de detectare a unei culori dintr-un videoclip live folosind OpenCV și python. Practic voi testa doar culoarea necesară este prezentă în cadrul de fundal sau nu și folosind module OpenCV voi masca acea regiune și
Robot de urmărire a culorilor bazat pe roata omnidirecțională și OpenCV: 6 pași
Robot de urmărire a culorilor bazat pe roata omnidirecțională și OpenCV: folosesc un șasiu de roți omnidirecțional pentru a-mi implementa urmărirea culorilor și folosesc un software mobil numit OpenCVBot. Mulțumită dezvoltatorilor de software de aici, mulțumesc.OpenCV Bot detectează sau urmărește de fapt orice obiect în timp real prin procesarea imaginii
Detectarea obiectelor cu Dragonboard 410c sau 820c folosind OpenCV și Tensorflow .: 4 pași
Detectarea obiectelor W / Dragonboard 410c sau 820c folosind OpenCV și Tensorflow .: Acest instructable descrie cum să instalați OpenCV, Tensorflow și cadrele de învățare automată pentru Python 3.5 pentru a rula aplicația de detectare a obiectelor
Detectarea RMN a tumorii cerebrale folosind Matlab: 6 pași
Detectarea RMN a tumorilor cerebrale utilizând Matlab: De: Madhumita Kannan, Henry Nguyen, Ashley Urrutia Avila, Mei Jin Acest cod MATLAB este un program pentru a detecta dimensiunea exactă, forma și locația unei tumori găsite în scanările RMN ale creierului unui pacient. Acest program este conceput pentru a funcționa inițial cu eliminarea tumorii