L'elaborazione delle immagini è uno dei moduli essenziali che devono essere disponibili in ogni linguaggio di programmazione, specialmente quando si tratta di apprendimento automatico o di apprendimento profondo. Il linguaggio di programmazione Python è altamente raccomandato per tutti i tipi di apprendimento automatico e apprendimento profondo e quando si tratta di elaborazione delle immagini, Python fornisce la libreria Scipy. La libreria Scipy in Python ha un sottomodulo NDImage specificamente dedicato all'elaborazione delle immagini nel linguaggio di programmazione Python. In questo articolo, spiegheremo cos'è l'elaborazione delle immagini e come può essere fatto usando il sottomodulo NDImage della libreria Scipy.
Che cosa è l'elaborazione delle immagini nel linguaggio di programmazione Python?
Qualsiasi lavoro svolto con un'immagine è noto come elaborazione delle immagini, i.e., leggere, scrivere, modificare, manipolare, ecc. fatto su immagini per estrarre informazioni significative da loro. Per manipolare o trasformare le immagini, il linguaggio di programmazione Python è più comunemente usato. Le attività più comuni che possono essere eseguite per l'elaborazione delle immagini sono per mostrare immagini, ruotare, capovolgere, ritagliare, affilatura, denoise, etichetta, estrazione di caratteristiche, ecc. Tutte queste funzioni possono essere facilmente eseguite su immagini con la libreria Scipy e il suo modulo NDImage.
Cos'è SCIPY NDIMAGE?
Il NDIMAGE sta per l'immagine n-dimensionale ed è fornito come modulo dalla libreria Scipy. È composto da una varietà di funzioni fmor elaborazione delle immagini e analisi. Diverse attività relative all'elaborazione delle immagini, i.e., Estrazione, input, output, lancio, rotazione, classificazione, ecc., può essere eseguito con il modulo ndimage. Il pacchetto NDImage della libreria Scipy è dedicato all'operazione con array di N Dimensioni. Include funzioni per misurazione degli oggetti, morfologia binaria, filtro lineare, interpolazione B-spline e filtraggio non lineare. Spiegheremo la funzione del modulo ndimage con esempi per aiutarti a capire come funzionano queste funzioni.
Esempio 1:
Qui spiegheremo il metodo "correlato" del modulo ndimage. Il metodo correlato del modulo ndimage funziona come una correlazione multidimensionale. Il metodo "correlato" viene utilizzato per correlare l'immagine con il kernel dato. Il metodo "correlato" per l'elaborazione dell'immagine viene utilizzato per spostare il kernel sull'immagine e calcolare la somma del prodotto in ogni posizione. Vedere il codice di esempio indicato nello snippet di seguito:
Importa Numpy come NP
da Scipy.L'importazione di ndimage è correlata
Stampa (correlata (NP.Arange (100), [2, 4.5]))
Qui, abbiamo iniziato con l'importazione della biblioteca Numpy come NP nel programma in modo da poter utilizzare ulteriormente le sue funzioni pertinenti nel programma. Successivamente, abbiamo importato la libreria Scipy insieme al suo modulo NDImage e al metodo correlato. Ricorda che devi includere tutte le librerie e i moduli nel programma per utilizzare i loro metodi e funzioni pertinenti. Se non includi le librerie, finirai per gestire errori e bug. Le funzioni e i metodi del linguaggio di programmazione Python non funzionano senza importare le librerie dei genitori nel programma.
Tutte le librerie richieste vengono importate e possiamo iniziare a lavorare sul codice principale. Si noti che abbiamo utilizzato la funzione di organizzazione con la variabile NP, che rappresenta la libreria numpy, per creare un array di 100 valori. I pesi [2, 4.5] sono assegnati all'array e sia l'array che il peso vengono passati alla funzione correlata. Ora vediamo quale Array è stato prodotto da NDIMAG.funzione correlata. L'output è riportato di seguito:
Esempio 2:
Nell'esempio precedente, devi aver notato che nonostante abbia dato peso a un numero di punto galleggiante, l'array prodotto è in numeri interi. È perché, per impostazione predefinita, la funzione correlata produce un numero intero; Quindi, devi specificamente menzionare come si desidera ottenere il tuo array di output. Vediamo come puoi ottenere controllando le righe del codice indicate nello snippet di codice di seguito:
Importa Numpy come NP
da Scipy.L'importazione di ndimage è correlata
Stampa (correlata (NP.Arange (100), [2, 4.5], output = NP.float64))
Ancora una volta, le librerie e i moduli richiesti vengono importati nel programma, quindi NDImage.La funzione correlata è chiamata. Come puoi vedere, il tipo di dati dell'array di output è fornito come "flaot64", il che significa che l'array risultante avrà numeri di punto galleggiante. Vedere l'array di output risultante indicato nello screenshot di seguito:
Esempio 3:
Come sappiamo, le immagini sono rappresentate da array multidimensionali poiché ogni numero nell'array rappresenta un pixel dell'immagine. Quindi, qui stiamo usando la funzione correlata per l'array 1D. Per funzionare con il kernel 1D e spostare il filtro sull'immagine, abbiamo la funzione correlate1d. Vedere il codice di esempio indicato nello snippet del codice di seguito:
Importa Numpy come NP
da Scipy.NDIMAGE Importazione correlata1D
arr = [1, 2, 2, 1, 1, 2]
stampa (correlate1d (arr, [1, 2, 1])
Qui spiegheremo come gestire l'origine del kernel con la funzione correlate1d. Normalmente, l'origine del kernel è al centro, che viene calcolata dividendo le dimensioni della forma del kernel per 2. Nel frammento di codice sopra indicato, puoi vedere che le librerie richieste vengono importate prima nel programma, quindi viene dichiarato un array denominato ARR contenente sei valori. L'array con i suoi pesi corrispondenti è stato passato alla funzione correlate1d. Ora vediamo come la funzione Correlate1d trova l'origine del kernel dell'array dato. Il risultato è sotto:
Esempio 4:
Innanzitutto, abbiamo imparato come la funzione Correlate1D trova l'origine del kernel; Ora apprendiamo come possiamo cambiare esplicitamente l'origine del kernel. A volte è necessario selezionare l'origine di un kernel diverso rispetto al centro, quindi, per questo, abbiamo il parametro "origine". Il parametro di origine passato alla funzione Correlate1d consente di scegliere comodamente un'origine diversa del kernel.
Importa Numpy come NP
da Scipy.NDIMAGE Importazione correlata1D
arr = [1, 2, 2, 1, 1, 2]
stampa (correlate1d (arr, [1, 2, 1], origin = -1))
Il risultato della scelta di un kernel diverso per il filtro è riportato nell'output di seguito:
Esempio 5:
Impariamo a rimodellare l'array secondo necessità. Le immagini possono essere rimodellate, modificate, ruotate, ritagliate, ecc. con le funzioni di elaborazione delle immagini. Qui ti guideremo su come rimodellare l'array con la funzione correlate1d. La funzione Reshape è fornita dalla libreria numpy, quindi viene utilizzata con la variabile NP. Vedere il codice di esempio indicato nello snippet del codice di seguito:
Importa Numpy come NP
da Scipy.NDIMAGE Importazione correlata1D
arr = np.Arange (100).Reshape (20, 5)
stampa (correlate1d (arr, [1, 2, 1])
L'array prodotto conterrà 100 articoli in 20 righe e 5 colonne. Vedi l'array risultante indicato di seguito:
Conclusione
In questo articolo, abbiamo appreso l'elaborazione delle immagini nel linguaggio di programmazione Python. L'elaborazione delle immagini è una caratteristica molto essenziale di qualsiasi linguaggio di programmazione poiché lavorare con le immagini è diventato più diffuso che lavorare con i dati grezzi. Pertanto, Python fornisce funzioni per lavorare con immagini in varie librerie come Numpy, Scipy, ecc. Qui, abbiamo usato il modulo NDImage con funzioni correlate e correlate1d per funzionare per l'elaborazione delle immagini con array multidimensionali.