Convoluzione 2D: lanciare il kernel?


Risposte:


7

Se non si capovolge il kernel, si ottiene semplicemente un'operazione diversa chiamata cross-correlation. Quando il filtro è simmetrico, come un gaussiano o un laplaciano, la convoluzione e la correlazione coincidono. Ma quando il filtro non è simmetrico, come una derivata, si ottengono risultati diversi.

Il motivo per cui la convoluzione è preferita alla correlazione è che ha proprietà matematiche più belle. In particolare, la convoluzione è associativa, mentre la correlazione in generale non lo è.

Per una spiegazione più tecnica dobbiamo andare nel dominio della frequenza. Il teorema principale delle convoluzioni afferma che la forma di Fourier della convoluzione di due funzioni e è uguale (fino ad una costante dipendente dalla trasformazione) al prodotto delle trasformazioni di Fourier delle due funzioni. In simboli f*gfg

F{f*g}=KF{f}F{g}

dove è la trasformata di Fourier. Nel caso della correlazione, otterresti la moltiplicazione per il coniugato complesso, che è meno piacevole, e in particolare non associativo.F

Un'altra proprietà interessante della convoluzione è che contorcendo un kernel con un impulso unitario (ad esempio una matrice con un singolo 1 al centro e 0 altrimenti), si ottiene il kernel stesso come risultato. La correlazione avrebbe invece capovolto il kernel.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.