Visione artificiale con OpenCV e Python

Contenuti

Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati

introduzione

I dati sono spesso definiti come fatti grezzi. Le informazioni si riferiscono a qualsiasi quantità o quantità di dati che è stata elaborata e ha più valore dei fatti grezzi stessi. La differenza fondamentale è che le decisioni e le azioni possono essere prese sulla base dello studio delle informazioni. no Basare decisioni e azioni sui dati, solo informazioni.

41245sources_of_data_collection-6405231

Fonte: StudiousGuy

Riepilogo

Seguendo il nostro Articolo precedente e visione artificiale, ora esploreremo ulteriormente il mondo della Computer Vision nel linguaggio di programmazione Python, usando il pacchetto Python OpenCV. Questo articolo ci mostrerà come eseguire alcune delle numerose operazioni che OpenCV offre nel linguaggio di programmazione Python.. Nell'articolo precedente, Esaminiamo il seguente blocco di codice e ora esamineremo altri aspetti in questo articolo.

importa cv2
# caricalo in modalità colore SCALA DI GRIGI...
immagine = cv2.imread("""C:/Utenti/Shivek/Immagini/487px-OpenCV_Logo_with_text_svg_version.svg.png""", 0)
cv2.imshow("Visione computerizzata DataPeaker", Immagine)
cv2.waitKey(0)
cv2.destroyAllWindows()
869691_jqofwnwo5anck5ug2ezdgw-5841165

Fonte: Metà

Capire le basi del CV

Come avrai visto, nel nostro articolo precedente, abbiamo letto (caricato) l'immagine del logo OpenCV nella nostra memoria di sistema, utilizzando il metodo integrato della libreria OpenCV, imread (). Usando questo metodo, passiamo due argomenti, vale a dire, un nome file e una bandiera. Il nome del file specificava il nome e la posizione del file sul tuo personal computer, mentre la bandiera potrebbe assomigliare all'impostazione del colore dell'immagine. ricordandolo, ricordiamo che abbiamo letto l'immagine nella nostra memoria in un formato a colori in SCALA DI GRIGI.

Ora, l'aspetto più cruciale per capire OpenCV:

Le immagini sono dati. Quando usi il metodo imread () de OpenCV, stai convertendo i dati dell'immagine grezza in un altro tipo di dati. Il nuovo tipo di dati è uno con cui tutti in DataPeaker hanno molta familiarità ed è Un array NumPy che comprende numeri interi. Ogni elemento dell'array rappresenta l'intensità del colore del pixel e può avere uno o più elementi al suo interno. Dato che abbiamo caricato la nostra matrice in formato colore SCALA DI GRIGI, si troverà che ogni pixel è rappresentato come un singolo valore che può assumere un valore uguale e che va da zero (0) a duecentocinquantacinque (255 ). UN misura que uno pasa de 0 a valori più alti, l'intensità di un pixel specifico aumenta, cosa lo rende più attraente per gli occhi.

0 = Colore nero.
255 = Colore bianco.

Fondamentalmente, quello che sto cercando di trasmettere è quanto segue (Ho omesso la fonte in quanto è la stessa dell'articolo precedente, e anche per consentire il flusso di informazioni):

Iniziamo con la seguente immagine:

65619487px-opencv_logo_with_text_svg_version-svg_-6639257

Prossimo, abbiamo restituito l'immagine in SCALA DI GRIGI e ottenuto l'immagine in un nuovo formato come mostrato di seguito:

14-1-2178252

Ahora imprimiremos el contenido de la variabile que está almacenando nuestra imagen en ESCALA DE GRISES:

# variabile Immagine stored our GRAYSCALE image
print(Immagine)

-Riceviamo l'output del codice sopra come segue:

14-2-7855870

Ora stamperemo il tipo di immagine variabile:

Stampa(genere(Immagine))

L'output sarà simile a questo:

14-3-1121119

Fondamentalmente, OpenCV ha trasformato la nostra immagine in una matrice NumPy, in cui ci sono valori di 0 un 255 che rappresenta l'intensità dei pixel, che corrispondono ai colori che vediamo nell'immagine SCALA DI GRIGIO. Ricorda che le immagini in SCALA DI GRIGIO restituiranno sempre un array in cui ogni pixel ha un valore univoco che va da 0 (negro) un 255 (bianco).

Restituire la forma dell'array.

Stampiamo la forma della matrice NumPy sulla console.

Stampa(immagine.forma)

L'output sarà simile a questo:

14-4-4304073

La nostra matrice ha 600 righe e 487 colonne. Nella terminologia dell'immagine, si direbbe che l'immagine ha dimensioni di 600 pixel (contralto) di 487 pixel (larghezza).

Stampare l'immagine con i pixel

Poiché OpenCV ha trasformato i pixel della nostra immagine in un array NumPy con numeri interi, possiamo eseguire operazioni NumPy sull'array contenente i valori dei pixel dell'immagine e manipolare l'array.

La nostra matrice è bidimensionale. Ciò significa che ha righe e colonne. Facciamo un po' di indicizzazione e divisione sull'array, e restituiremo il contenuto.

cv2.imshow("DI", Immagine[0:100])

cv2.waitKey()

cv2.destroyAllWindows()

Se si ha familiarità con la tecnica di indicizzazione e taglio, puoi vedere che stiamo cercando di tagliare una parte della nostra matrice di immagini (NumPy). Ancora, è fondamentale comprendere ed essere consapevoli del fatto che la libreria OpenCV nel linguaggio di programmazione Python rende le sue immagini e gli oggetti associati come NumPy nd-Arrays.

98808numpy-array-2607932

Fonte: Produzione di IA in India.

Spiegazione del codice.

Le spiegazioni riga per riga per il blocco di codice sopra sono le seguenti:

cv2.imshow (“Visione artificiale DataPeaker”, Immagine[0:100])

Il metodo imshow () utilizzato per visualizzare un'immagine sullo schermo utilizzando una GUI. tuttavia, in questo caso particolare passiamo un nome per la finestra della GUI, e solo una porzione della matrice di pixel, usando il taglio. In particolare, vogliamo restituire il primo 100 righe (altezza) dall'immagine.

cv2.waitKey()

Questo aspetterà infinitamente che la finestra della GUI si chiuda, vale a dire, l'azione / l'interazione dell'utente chiuderà questa finestra. Puoi passare un valore intero come argomento che rappresenta la durata (in millisecondi), la finestra della GUI dovrebbe attendere prima di terminare automaticamente.

cv2.destroyAllWindows()

La riga di codice precedente terminerà tutte le finestre della GUI OpenCV attive / aprire. Puoi passare il nome di una finestra GUI specifica per terminare come una stringa.

L'output sarà simile a questo:

92081immagine1-6384376

Perciò, abbiamo restituito con successo il primo 100 righe di pixel dalla nostra immagine. Sentiti libero di sperimentare con l'immagine e vedere se il pixel in una particolare posizione corrisponde al colore trovato nell'immagine stessa..

Questo conclude il mio articolo su Visione artificiale con Python. Spero che ti sia piaciuto leggere questo articolo e che tu abbia imparato un nuovo concetto.

Per favore, sentiti libero di connetterti con me su LinkedIn.

Grazie per il tuo tempo.

Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.