Funzioni > Vettore e matrice > Altre funzioni per gli array > Esempio: Correlazione 2D e corrispondenza prototipo
  
Esempio: Correlazione 2D e corrispondenza prototipo
Viene illustrata la correlazione di un kernel 2D con un'immagine nel dominio spaziale.
Un kernel interessante è il kernel gaussiano, che produce un effetto di smoothing.
Per informazioni sull'utilizzo di questo esempio, fare riferimento a Esempi di elaborazione delle immagini.
Correlazione 2D
1. Utilizzare la funzione READ_IMAGE per leggere un'immagine.
Fare clic per copiare questa espressione
2. Utilizzare la funzione WRITEBMP per salvare l'immagine in un file.
Fare clic per copiare questa espressione
3. Definire l'intervallo e la funzione di kernel.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
4. Valutare la matrice kernel 5 x 5.
Fare clic per copiare questa espressione
Poiché il kernel è simmetrico, l'effetto è identico a quello della convoluzione, equivalente alla correlazione con il kernel invertito.
5. Definire un fattore di scala mcscale.
Fare clic per copiare questa espressione
6. Calcolare la correlazione incrociata, quindi scalare il risultato in scala di grigi a 8 bit da 0 a 255.
Fare clic per copiare questa espressione
7. Utilizzare la funzione WRITEBMP per salvare i risultati in un file.
Fare clic per copiare questa espressione
8. Tracciare il grafico dell'immagine originale e della correlazione dell'immagine con il kernel.
(greyscale_dog.bmp)
(dog_cross.bmp)
Corrispondenza prototipo
1. Utilizzare la funzione READ_IMAGE per leggere una nuova immagine.
Fare clic per copiare questa espressione
2. Utilizzare la funzione WRITEBMP per salvare i risultati in un file.
Fare clic per copiare questa espressione
(peas_carrots.bmp)
Fare clic per copiare questa espressione
La selezione preleva una carota rappresentativa come modello.
3. Definire l'altezza e la larghezza del modello.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
4. Definire la funzione val e utilizzarla nella funzione di matrix per creare il modello.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
5. Tracciare il grafico del modello e delle immagini di carota.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
(template.bmp)
(carrot.bmp)
6. Definire la soglia di correlazione.
Fare clic per copiare questa espressione
7. Utilizzare il modello uniforme delle stesse dimensioni della carota selezionata oppure utilizzare l'immagine della carota rappresentativa stessa selezionata per calcolare il numero di corrispondenze, come indicato di seguito.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
(carrot_vect.bmp)
La maggior parte dei piselli sono anneriti dai valori di soglia non correlati e la maggior parte delle carote sono ancora visibili. La corrispondenza viene eseguita tra l'immagine originale e il modello rettangolare di densità uniforme, che preleva approssimativamente le carote in questo campionamento casuale da una confezione di verdure congelate.
8. Calcolare la percentuale approssimativa di carote nell'immagine originale.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Questa tecnica è utile anche per il conteggio di batteri e altre stime percentuali di caratteristiche delle immagini.