Funzioni > Elaborazione immagini > Convoluzione e filtri > Applicazione di un filtro di Wiener
  
Applicazione di un filtro di Wiener
wiener2d(M, win_h, win_w) - Applica il filtro di Wiener adattivo 2D a M utilizzando una finestra locale larga win_w pixel e alta win_h pixel.
Il filtro di Wiener è stato uno dei primi strumenti sviluppati per ridurre il rumore casuale additivo nelle immagini. Tale filtro presuppone che il rumore additivo sia un processo casuale stazionario, indipendente dalla posizione dei pixel. L'algoritmo riduce al minimo l'errore quadratico tra l'immagine originale e quella ricostruita. Il filtro di Wiener è un filtro passa basso ma, anziché avere una singola frequenza di taglio, è un filtro variabile in funzione dello spazio, progettato per utilizzare una frequenza di taglio bassa nelle regioni meno dettagliate e una frequenza di taglio alta per mantenere i dettagli nelle regioni che includono bordi o altre caratteristiche con varianza elevata. Le dimensioni della finestra determinano la frequenza di taglio globale: a una finestra più ampia corrispondono frequenze di taglio inferiori e, di conseguenza, una maggiore riduzione di sfocatura e rumore.
Esistono numerose implementazioni possibili per il filtro di Wiener. Quella utilizzata in questa funzione di PTC Mathcad è costituita dal filtro di Wiener adattivo 2D pixel per pixel proposto da Lee nel 1980 (vedere Two-Dimensional Signal and Image Processing, di Jae S. Lim, pagine 536-40), in cui viene utilizzato un filtro variabile in funzione dello spazio e si presuppone che il rumore additivo sia bianco e abbia media zero.
In tale algoritmo, un pixel y nell'immagine filtrata viene derivato da un pixel x nell'immagine di input affetta da rumore tramite la trasformazione indicata di seguito:
dove μx e vx sono la media e la varianza di x in un intorno del pixel (la dimensione dell'intorno è data dagli argomenti win_h e win_w della funzione) e vn è la varianza del rumore additivo stimata dall'immagine di input. Ogni pixel dell'output viene ottenuto sommando la media locale in un intorno del pixel di input a un termine di contrasto locale (x - μx) scalato in modo che nelle regioni molto dettagliate, in cui la varianza del rumore (vn) è molto inferiore a quella dell'immagine (vx), il fattore di scala sia molto vicino a 1 e il pixel di output y sia molto simile al pixel di input x, poiché il filtraggio è minimo, mentre nelle regioni meno dettagliate, in cui la varianza dell'immagine è inferiore, il pixel di output tende a essere più simile alla media locale (ovvero viene filtrato dal filtro passa basso).
I limiti dell'immagine vengono gestiti come valori in scala di grigi estesi con zeri, e ciò può fare in modo che i pixel di output vicini ai limiti dell'immagine non siano validi (fino alle dimensioni della finestra dell'intorno). La finestra dell'intorno, inoltre, non deve essere più grande dell'immagine di input.
Argomenti
M è una matrice di immagini.
win_h, win_w sono numeri interi.