Sommario:
- Forniture
- Passaggio 1: importazione di librerie
- Passaggio 2: creazione di barre di traccia
- Passaggio 3: creazione di trackbar per tonalità, saturazione e valore
- Passaggio 4: come leggere e ridimensionare l'immagine
- Passaggio 5: lettura dei valori della barra di traccia per applicarli a un'immagine
- Passaggio 6: visualizzazione dell'immagine e impostazione del limite superiore e inferiore
- Passaggio 7: ora il passaggio finale
- Passaggio 8: risultati finali
Video: Rilevamento del colore in Python utilizzando OpenCV: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Ciao! Questo istruibile viene utilizzato per guidare su come estrarre un colore specifico da un'immagine in Python usando la libreria openCV. Se sei nuovo a questa tecnica, non preoccuparti, alla fine di questa guida sarai in grado di programmare il tuo programma di rilevamento del colore personale.
Di seguito sono riportate le funzioni o possiamo dire le tecniche che imparerai, 1. Come leggere un'immagine
2. Come creare le barre di traccia
3. Come regolare il valore di tonalità, saturazione e valore di un'immagine utilizzando le barre di traccia
4. E poi ci sarà il tuo output finale
Puoi guardare il video dell'output che ho allegato di seguito.
Quindi iniziamo
Forniture
- Pitone 3
- libreria openCV
- libreria insensata
Passaggio 1: importazione di librerie
L'immagine è della ferrari gialla come mostrato e programmeremo per estrarre solo il colore giallo da quell'immagine
Il primo passo sarà l'importazione delle nostre librerie
1. Inclusa la libreria openCV. Si chiama cv2 in Python
2. Inclusa la libreria numpy come np. Il "as" ci consente di numpy come np, quindi non c'è bisogno di scrivere numpy ancora e ancora
Passaggio 2: creazione di barre di traccia
Le barre traccia vengono create per regolare il valore di tonalità, saturazione e valore in un'immagine.
cv2.namedWindow("TrackBars") Questa riga di codice è usata per creare una nuova finestra di output e il nome della finestra è dato come TrackBars (puoi dare qualsiasi nome tu voglia)
cv2.resizeWindow("TrackBars", 600, 250) Questa funzione viene utilizzata per ridimensionare una finestra. "TrackBars" è per quale finestra si desidera ridimensionare poiché volevo ridimensionare la finestra TrackBars ho scritto quel nome. Seguito da due numeri interi. Questi due numeri interi sono la larghezza e l'altezza. Puoi giocare con quei due numeri per cambiare la dimensione
Passaggio 3: creazione di trackbar per tonalità, saturazione e valore
Ora creeremo un totale di 6 TrackBar per tonalità, saturazione e valore. Ciascuno ne avrà due, ovvero 1 per il minimo e 1 per il massimo. Useremo la funzione createTrackbar di openCV. Per prima cosa vedremo la sintassi di questa funzione.
cv2.createTrackbar("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Questo potrebbe essere fonte di confusione, ma non preoccuparti, esamineremo ogni singolo passaggio. Tieni presente che nei valori openCV di tonalità è 179, la saturazione è 255 e il valore è 255
1. Creazione di TrackBar per hue min:
cv2.createTrackbar("Hue min", "TrackBars", 0, 179, vuoto)
In questo Hue min è il nome della trackbar, TrackBars è la finestra principale, 0 è la posizione su cui sarà il nostro slider e 179 è l'intervallo significa che il silder si sposterà da 0-179
2. Creazione di TrackBar per hue max:
cv2.createTrackbar("Tonalità max", "TrackBars", 179, 179, vuoto)
In questo Hue max è il nome della trackbar, TrackBars è la finestra principale, 179 è la posizione su cui sarà il nostro slider e 179 è l'intervallo massimo significa che il silder si sposterà da 179-0
3. Allo stesso modo ripeti i passaggi per sat min, sat max, val min e val max come mostrato nell'immagine
L'immagine con lo sfondo bianco è l'immagine di output. Ecco come appariranno le tue track bar
Passaggio 4: come leggere e ridimensionare l'immagine
cv2.imread() ti permette di leggere l'immagine. Una cosa importante è che devi tenere a mente che la posizione della tua immagine deve essere nella stessa cartella in cui è salvato il programma. Inseriremo il ciclo while perché dovrebbe funzionare finché non sta leggendo l'immagine o possiamo dire fino a quando la condizione è vera
img = cv2.imread("ferrari.jpg")
- In questo ho creato un nome variabile " img " in cui sto memorizzando l'immagine
- All'interno di cv2.imread scrivi il nome dell'immagine con la sua estensione tra virgolette
Per ridimensionare un'immagine utilizzeremo la funzione cv2.resize. Questa parte è facoltativa, se vuoi ridimensionare puoi usare questa funzione
All'interno di cv2.resize scrivi prima il nome della variabile in cui è memorizzata l'immagine e poi la sua larghezza e altezza
Passaggio 5: lettura dei valori della barra di traccia per applicarli a un'immagine
Ok, ora leggeremo i valori della barra della trackbar in modo da poterli applicare alla nostra immagine. Otterremo i valori usando la funzione cv2.getTrackbarPos().
Cominciamo da quella parte…
h_min = cv2.getTrackbarPos("Hue min", "TrackBars")
Nella dichiarazione di cui sopra sto creando un nome variabile h_min in cui memorizzerò il valore di Hue min. Quindi all'interno di cv2.getTrackbarPos il primo argomento sarebbe " Hue min " perché voglio i valori di hue min (l'ortografia deve essere esattamente la stessa della funzione createTrackbar) e il secondo argomento sarebbe il nome della finestra della trackbar a cui appartiene.
- Ripeti lo stesso processo per h_max e il resto delle funzioni come mostrato nell'immagine sopra e poi stampa tutti i valori usando print()
- L'output è mostrato nella seconda immagine. Sta stampando i valori di h_min, h_max, s_min, s_max, v_min, s_max
Passaggio 6: visualizzazione dell'immagine e impostazione del limite superiore e inferiore
Ora abbiamo il valore minimo e massimo di tonalità, saturazione e valore, useremo questo valore per filtrare l'immagine in modo da poter ottenere il particolare colore di un'immagine.
Creeremo una maschera per questo usando la funzione cv2.inRange. E prima imposteremo il limite superiore e inferiore di tonalità, saturazione e valore
Quindi crea un nome di variabile "inferiore" e usando la funzione array numpy imposta l'intervallo di min per tutti e 3 come segue
inferiore = np.array([h_min, s_min, v_min])
Ripeti lo stesso passaggio per la parte superiore
superiore = np.array([h_max, s_max, v_max])
Ora creeremo una maschera come segue
mask = cv2.inRange(resize, lower, upper) All'interno di cv2.inRang il 1° argomento sarebbe la variabile in cui è memorizzata la mia immagine finale, il 2° argomento sarà il limite inferiore e il 3° argomento sarebbe il limite superiore.
Ora mostreremo l'immagine principale e la maschera. Per visualizzare useremo la funzione cv2.imshow()
cv2.imshow("img", ridimensiona) Serve per visualizzare l'immagine principale. Il primo argomento è il nome della finestra che puoi dare a qualsiasi nome tu voglia e il secondo argomento è la variabile in cui è memorizzata la mia immagine principale che vuoi visualizzare.
Allo stesso modo ripeti i passaggi per la maschera
cv2.imshow("Uscita", maschera)
Passaggio 7: ora il passaggio finale
In questo passaggio finale estrarremo il colore dell'auto e del display.
Ho creato un risultato di nome variabile. Di nuovo puoi dare qualsiasi nome tu voglia. Quindi useremo la funzione cv2.bitwise_and() in cui aggiungeremo immagini insieme e creeremo una nuova immagine. E ovunque siano presenti i pixel in entrambe le immagini, lo prenderà come sì o "1".
risultato = cv2.bitwise_and (ridimensiona, ridimensiona, maschera = maschera)
- In questo il primo argomento sarà la nostra immagine
- Il secondo argomento sarà anche la nostra immagine originale ma seguita dalla maschera applicata che abbiamo creato prima
- E infine basta visualizzare il risultato utilizzando la funzione imshow
Basta copiare incollare quest'ultimo passaggio è solo un ritardo e puoi uscire dalla finestra di output premendo " a " sulla tastiera
Passaggio 8: risultati finali
Consigliato:
Tutorial: come utilizzare il sensore di rilevamento del colore RGB TCS230 con Arduino UNO: 3 passaggi
Tutorial: come utilizzare il sensore di rilevamento colore RGB TCS230 con Arduino UNO: Descrizione: questo tutorial ti mostrerà alcuni semplici passaggi su come utilizzare il sensore di rilevamento colore RGB utilizzando Arduino Uno. Alla fine di questo tutorial, otterrai una serie di risultati di confronto tra pochi colori. Il TCS3200 è una det
Macchina per la verniciatura a rilevamento del colore: 4 passaggi
Macchina per la verniciatura a rilevamento del colore: la macchina per la verniciatura a rilevamento del colore copia i colori intorno a te e ti consente di disegnare con loro. Se hai la vernice dei colori primari, puoi utilizzare il sensore di colore RGB per rilevare il colore desiderato e mescolarlo. Ma ricorda, usa l'oggetto dai colori brillanti
Rilevamento semplice del colore utilizzando OpenCV: 6 passaggi
Rilevamento semplice del colore utilizzando OpenCV: Ciao! Oggi mostrerò un metodo semplice per rilevare un colore da un video live usando OpenCV e python. Fondamentalmente proverò solo che il colore richiesto sia presente o meno nel frame di sfondo e usando i moduli OpenCV maschererò quella regione e
Tracciamento degli oggetti basato sul rilevamento del colore: 10 passaggi
Tracciamento degli oggetti basato sul rilevamento del colore: storia Ho realizzato questo progetto per imparare l'elaborazione delle immagini utilizzando Raspberry PI e aprire CV. Per rendere questo progetto più interessante ho usato due servomotori SG90 e ci ho montato una telecamera. Un motore utilizzato per muoversi orizzontalmente e il secondo motore utilizzato per muoversi verticalmente
Robot di Halloween con rilevamento del volto e rilevamento del sorriso: 8 passaggi (con immagini)
Monitoraggio del viso e rilevamento del sorriso Robot di Halloween: Halloween sta arrivando! Abbiamo deciso di costruire qualcosa di interessante. Incontra i robot Ghosty e Skully. Possono seguire il tuo viso e sanno quando sorridi per ridere con te! Questo progetto è un altro esempio dell'utilizzo dell'app iRobbie che converte l'iPhone in