Come configurare smartphone e PC. Portale informativo

Filtro del segnale mediano. Filtro mediano

Se il tuo background in ingegneria è simile al mio, probabilmente ne sai molto vari tipi filtri lineari, il cui compito principale è far passare un segnale in una gamma di frequenze e ritardare i segnali in altre gamme. Questi filtri sono, ovviamente, indispensabili per molti tipi di rumore. Tuttavia, nel mondo reale dei sistemi embedded, ci vuole un po’ di tempo per rendersi conto che i classici filtri lineari sono inutili contro il rumore di burst, il rumore dei popcorn.

Rumore impulsivo di solito deriva da pseudo eventi casuali. Ad esempio, una radio ricetrasmittente potrebbe commutare vicino al dispositivo o potrebbe verificarsi qualche tipo di scarica statica. Ogni volta che ciò accade, il segnale di ingresso potrebbe essere temporaneamente distorto.

Ad esempio, di conseguenza conversione da analogico a digitale otteniamo la seguente serie di valori: 385, 389, 912, 388, 387. Il valore 912 è presumibilmente anomalo e da scartare. Se provi a usare il classico filtro di linea, noterai che il valore 912 avrà un impatto significativo sull'output. La soluzione migliore in questo caso verrebbe utilizzato il filtro mediano.

Nonostante l’ovvietà di questo approccio, secondo la mia esperienza, i filtri mediani sono sorprendentemente usati raramente nei sistemi embedded. Ciò potrebbe essere dovuto alla mancanza di conoscenza della loro esistenza e alla difficoltà di attuazione. Spero che il mio post rimuova in una certa misura questi ostacoli.

Idea filtro mediano semplice. Seleziona la media da un gruppo di valori di input e la restituisce. Inoltre, solitamente un gruppo ha un numero dispari di valori, quindi non ci sono problemi con la selezione

Fino a poco tempo fa distinguevo tre classi filtri mediani, differendo nel numero di valori utilizzati:

Filtra utilizzando 3 valori (filtro più piccolo possibile),
- filtrare utilizzando 5, 7 o 9 valori (i più utilizzati),
- filtra utilizzando 11 o più valori.

Ora mi attengo ad una classificazione più semplice:

Filtra utilizzando 3 valori,
- filtrare utilizzando più di 3 valori.

Filtro mediano per 3

Questo è il filtro più piccolo possibile. È facilmente implementabile con poche istruzioni e quindi ha un piccolo e codice veloce.


uint16_t middle_of_3(uint16_t a, uint16_t b, uint16_t c)
{
uint16_t mezzo;

Se((a<= b) && (a <= c)){
medio = (b<= c) ? b: c;
}
altro(
se ((b<= a) && (b <= c)){
medio = (a<= c) ? a: c;
}
altro(
medio = (a<= b) ? a: b;
}
}

Ritorno centrale;
}

Filtro mediano > 3

Per una dimensione del filtro maggiore di 3, suggerisco di utilizzare l'algoritmo descritto da Phil Ekstrom nel numero di novembre 2000 di Embedded Systems Programming. Ekstrom utilizza un elenco collegato. L'aspetto positivo di questo approccio è che una volta ordinato l'array, la rimozione di un vecchio valore e l'aggiunta di uno nuovo non introduce confusione significativa nell'array. Pertanto, questo approccio funziona bene con filtri di grandi dimensioni.

Tieni presente che c'erano alcuni bug nel codice pubblicato originale, che Ekstrom ha successivamente risolto. Considerando che ormai è difficile trovare qualcosa su embedded.com, ho deciso di pubblicare la mia implementazione del suo codice. Il codice è stato originariamente scritto in Dynamic C, ma è stato portato in C standard per questo post. Il codice dovrebbe funzionare, ma spetta a te testarlo completamente.


#definire NULL 0
#define STOPPER 0 /* Più piccolo di qualsiasi dato */
#define MEDIAN_FILTER_SIZE 5

uint16_t MedianFilter(uint16_t dato)
{

struttura coppia(
coppia di strutture *punto; /* Puntatori che formano una lista collegata in ordine */
valore uint16_t; /* Valori da ordinare */
};

/* Buffer di coppie nwidth */
buffer di coppia di strutture statiche = (0);
/* Puntatore al buffer circolare di dati */
coppia di strutture statiche *datpoint = buffer;
/* Fermacatena */
coppia di strutture statiche piccola = (NULL, STOPPER);
/* Puntatore all'inizio (il più grande) della lista concatenata.*/
coppia di strutture statiche big = (&small, 0);

/* Puntatore al successore del dato sostituito */
coppia di strutture *successore;
/* Puntatore utilizzato per scorrere l'elenco ordinato */
struttura coppia *scansione;
/* Valore precedente della scansione */
coppia di strutture *scald;
/* Puntatore alla mediana */
coppia di strutture *mediana;
uint16_ti;

if (dato == TAPPO)(
dato = TAPPO + 1; /* Non sono ammessi stopper. */
}

If ((++puntodati - buffer) >= MEDIAN_FILTER_SIZE)(
puntodata = buffer; /* Incrementa e racchiude i dati nel puntatore.*/
}

Punto dato->valore = dato; /* Copia nel nuovo dato */
successore = puntodati->punto; /* Salva il puntatore al successore del vecchio valore */
mediana = /* Mediana inizialmente al primo della catena */
scanold = NULL; /* Scanold inizialmente nullo. */
scan = /* Punta al primo dato (più grande) della catena */

/* Gestire la catena di uscita del primo elemento della catena come caso speciale */
if (scansione->punto == punto dati)(
scan->punto = successore;
}


scansione = scansione->punto ; /* scende la catena */

/* Ciclo attraverso la catena, uscita dal ciclo normale tramite break. */
per (i = 0 ; i< MEDIAN_FILTER_SIZE; ++i){
/* Gestisce gli elementi con numero dispari nella catena */
if (scansione->punto == punto dati)(
scan->punto = successore; /* Concatena il vecchio dato.*/
}

Se (scansione->valore< datum){ /* If datum is larger than scanned value,*/
datpoint->punto = scanold->punto; /* Incatenalo qui. */
scanold->punto = puntodato; /* Segnalo incatenato. */
dato = TAPPO;
};

/* Sposta il puntatore mediano verso il basso della catena dopo aver eseguito l'elemento con numero dispari */
mediana = mediana->punto; /* Puntatore mediano del passo. */
if (scansione == &piccolo)(
rottura; /* Interruzione alla fine della catena */
}
scanold = scansionare; /* Salva questo puntatore e */
scansione = scansione->punto; /* scende la catena */

/* Gestisce gli elementi con numero pari nella catena. */
if (scansione->punto == punto dati)(
scan->punto = successore;
}

Se (scansione->valore< datum){
datpoint->punto = scanold->punto;
scanold->punto = puntodato;
dato = TAPPO;
}

Se (scansione == &piccolo)(
rottura;
}

Scanold = scansionare;
scansione = scansione->punto;
}

restituire mediana->valore;
}

Per utilizzare questo filtro, chiama semplicemente la funzione ogni volta che ricevi un nuovo valore di input. La funzione restituirà la media degli ultimi valori ricevuti, il cui numero è determinato dalla costante MEDIAN_FILTER_SIZE.

Questo algoritmo può utilizzare una discreta quantità di RAM (a seconda della dimensione del filtro, ovviamente) perché memorizza valori di input e puntatori a strutture. Tuttavia, se questo non è un problema, allora l'algoritmo è effettivamente utile da utilizzare perché è significativamente più veloce degli algoritmi basati sull'ordinamento.

Filtraggio mediano basato sull'ordinamento

Nella vecchia versione di questo articolo, per i filtri mediani di dimensione 5, 7 o 9, sostenevo un approccio con algoritmo di ordinamento. Ora ho cambiato idea. Se però vuoi utilizzarli ti fornisco il codice base:


se (ADC_Buffer_Pieno)(

Uint_fast16_t adc_copy;
uint_fast16_t filtered_cnts;

/* Copia i dati */
memcpy(adc_copy, ADC_Counts, sizeof(adc_copy));

/* Ordinalo */
shell_sort(adc_copy, MEDIAN_FILTER_SIZE);

/* Prendi il valore medio */
cnts_filtrati = adc_copy[(MEDIAN_FILTER_SIZE - 1U) / 2U];

/* Converti in unità ingegneristiche */
...

Conclusione

Ci sono alcuni costi associati all'utilizzo dei filtri mediani. Ovviamente, i filtri mediani aggiungono ritardo ai valori che cambiano gradualmente. Inoltre, i filtri mediani possono cancellare completamente le informazioni sulla frequenza nel segnale. Naturalmente, se sei interessato solo ai valori costanti, questo non è un problema.

Tenendo presenti questi avvertimenti, ti consiglio vivamente di utilizzare i filtri mediani nei tuoi progetti.

1. Specifiche tecniche

Rumore gaussiano - "gaussiano"

Immagine originale.

Principio di filtrazione.

Le mediane sono state a lungo utilizzate e studiate in statistica come alternativa alle medie aritmetiche dei campioni nella stima delle medie campionarie. La mediana di una sequenza numerica x 1, x 2, ..., x n per n dispari è il membro medio della serie risultante dall'ordinamento di questa sequenza in ordine ascendente (o discendente). Anche per n, la mediana è solitamente definita come la media aritmetica dei due campioni centrali della sequenza ordinata.

Il filtro mediano è un filtro a finestra che si muove sequenzialmente attraverso la matrice del segnale e ad ogni passaggio restituisce uno degli elementi caduti nella finestra (apertura) del filtro. Il segnale di uscita y k di un filtro mediano scorrevole con un'ampiezza di 2n+1 per il campione corrente k viene generato dalla serie temporale di ingresso ..., x k -1 , x k , x k +1 , ... secondo la formula :

y k = med(x k - n , x k - n+1 ,…, x k -1 , x k , x k +1 ,…, x k + n-1 , x k + n),

dove med(x 1, …, x m, …, x 2n+1) = x n+1, x m sono elementi della serie di variazioni, cioè classificato in ordine crescente di x m valori: x 1 = min(x 1 , x 2 ,…, x 2n+1) ≤ x (2) ≤ x (3) ≤ … ≤ x 2n+1 = max(x 1 , x 2 ,…,x2n+1).

Pertanto, il filtraggio mediano sostituisce i valori del campione al centro dell'apertura con il valore medio dei campioni originali all'interno dell'apertura del filtro. In pratica, per semplificare gli algoritmi di elaborazione dei dati, l'apertura del filtro viene solitamente impostata con un numero dispari di campioni, che verranno accettati in un'ulteriore considerazione senza ulteriori spiegazioni.

Rumore pulsante e puntiforme

Durante la registrazione, l'elaborazione e lo scambio di dati nei moderni sistemi di misurazione, calcolo e informazione, i flussi di segnali, oltre al segnale utile s(t-t 0) e al rumore di fluttuazione q(t), contengono solitamente flussi di impulsi g(t)= d(t-t k) di varia intensità con struttura regolare o caotica:

x(t) = s(t-t 0) + g(t) + q(t).

Il rumore impulsivo si riferisce alla distorsione dei segnali provocata da grandi picchi pulsati di polarità arbitraria e di breve durata. La causa della comparsa di flussi pulsati può essere sia interferenze elettromagnetiche pulsate esterne che interferenze, guasti e interferenze nel funzionamento dei sistemi stessi. La combinazione di rumore distribuito statisticamente e di un flusso di impulsi quasi deterministici rappresenta un'interferenza combinata. Un metodo radicale per combattere le interferenze combinate è l'uso di codici resistenti al rumore. Tuttavia, ciò porta ad una diminuzione della velocità e della complessità dei sistemi di ricezione e trasmissione dei dati. Un metodo alternativo semplice ma piuttosto efficace per pulire i segnali in tali condizioni è un algoritmo di elaborazione del segnale a due stadi x(t), dove nel primo stadio gli impulsi di rumore vengono eliminati dal flusso x(t) e nel secondo stadio il segnale viene ripulito dal rumore statistico utilizzando filtri di frequenza. Per i segnali distorti dal rumore impulsivo, non esiste una formulazione e soluzione matematicamente rigorosa del problema del filtraggio. Sono noti solo algoritmi euristici, il più accettabile dei quali è l'algoritmo di filtraggio mediano.

Supponiamo che il rumore q(t) sia un processo statistico con aspettativa matematica pari a zero, che il segnale utile s(t-t 0) abbia una posizione temporale t 0 О sconosciuta e che il flusso degli impulsi di rumore g(t) abbia la forma:

g(t) = e k a k g(t-t k),

dove a k è l'ampiezza degli impulsi nel flusso, t k è la posizione temporale sconosciuta degli impulsi, e k =1 con probabilità p k ed e k =0 con probabilità 1-p k . Questa specificazione del rumore pulsato corrisponde al flusso di Bernoulli.

Quando si applica un filtraggio mediano scorrevole con una finestra di N campioni (N è dispari) al flusso x(t), il filtro mediano elimina completamente i singoli impulsi separati l'uno dall'altro da almeno metà dell'apertura del filtro e sopprime il rumore impulsivo se il numero di impulsi all'interno dell'apertura non supera (N-1)/2. In questo caso, con p k = p per tutti gli impulsi di disturbo, la probabilità di soppressione dei disturbi può essere determinata dall'espressione /3i/:

R(p) = p m (1-p) N-p.

La Figura 1 mostra i risultati dei calcoli della probabilità di soppressione del rumore impulsivo da parte di un filtro mediano. A pag<0.5 результаты статистического моделирования процесса показывают хорошее соответствие расчетным значениям. Для интенсивных импульсных шумовых потоков при p>0,5 il filtraggio mediano diventa meno efficace, perché Ciò che avviene non è la soppressione, ma l'amplificazione e la trasformazione in un flusso di impulsi di diversa struttura (con durata casuale).

Se la probabilità di errore non è molto alta, il filtraggio medio, anche con un'apertura abbastanza piccola, ridurrà significativamente il numero di errori. L'efficienza nell'eliminazione degli impulsi di rumore aumenta con l'aumentare dell'apertura del filtro, ma allo stesso tempo può aumentare anche la distorsione del segnale utile.

Differenza più rumore.

Consideriamo i bordi di filtraggio in presenza di rumore bianco additivo, ovvero sequenze di filtraggio, o immagini, con

dove s è un segnale deterministico pari a 0 da un lato dell'o goccia e h dall'altro, e z sono i valori casuali del rumore bianco. Supponiamo che i valori di rumore casuale z siano distribuiti secondo la legge normale N(0, s). Innanzitutto, consideriamo il filtraggio unidimensionale e assumiamo che la caduta avvenga nel punto i = 1, in modo che per i £ 0 il valore x i sia N(0, s), e per i≥1 il valore x i sia N(h, S ).

Nella fig. La Figura 2 mostra la sequenza di valori dell'aspettativa matematica delle mediane e della media mobile in prossimità di una differenza di altezza h = 5 a N = 3. I valori della media mobile seguono una linea obliqua, che indica che la differenza è sfocato. Anche il comportamento dell’aspettativa matematica dei valori mediani indica una certa sfocatura, sebbene molto inferiore a quella della media mobile.

Se utilizziamo la misura dell’errore quadratico medio (RMS), mediato su N punti vicini alla caduta, e calcoliamo i valori dell’RMSE in funzione dei valori di h, allora è facile stabilire che per piccoli valori di h<2 СКО для скользящего среднего немного меньше, чем для медианы, но при h>3 La deviazione standard della mediana è significativamente inferiore alla deviazione standard della media. Questo risultato mostra che la mediana mobile è significativamente migliore della media mobile per grandi differenze di altezza. Risultati simili si possono ottenere per apertura N=5 e per filtraggio bidimensionale con aperture 3x3 e 5x5. Pertanto, le aspettative matematiche della mediana per h piccolo sono vicine alle aspettative matematiche per le medie corrispondenti, ma per h grande sono asintoticamente limitate. Ciò è spiegato dal fatto che per h grandi (diciamo h>4) le variabili x con media 0 (per questo esempio) saranno nettamente separate dalle variabili x con media h.

La misura di precisione utilizzata può caratterizzare solo la nitidezza lungo il bordo e non dice nulla sulla levigatezza dell'immagine filtrata lungo il bordo. La media mobile produce segnali uniformi lungo i bordi, mentre quando elaborati utilizzando un filtro mediano, i bordi lunghi risultano leggermente frastagliati.

Filtrazione Wiener

Il filtraggio inverso ha una bassa immunità al rumore perché questo metodo non tiene conto della rumorosità dell'immagine osservata. Il filtro di Wiener è molto meno suscettibile alle interferenze e alle singolarità causate dagli zeri della funzione di trasferimento del sistema distorcente. durante la sua sintesi, insieme al tipo di PSF, vengono utilizzate informazioni sulle densità spettrali della potenza dell'immagine e del rumore.

La densità spettrale del segnale è determinata dalla relazione:

dove è la funzione di autocorrelazione.

La mutua densità spettrale del segnale è determinata dalla relazione:

, (14)

dove è la funzione di correlazione incrociata.

Quando si costruisce un filtro di Wiener, il compito è ridurre al minimo la deviazione standard dell'immagine elaborata dall'oggetto:

dov'è l'aspettativa matematica. Riorganizzando queste espressioni, si può dimostrare che il minimo si ottiene quando la funzione di trasferimento è data dalla seguente espressione:

Un'ulteriore analisi mostra che il restauro dell'immagine, la cui formazione è descritta dall'espressione, dovrebbe essere effettuato utilizzando il seguente OPF del convertitore di ricostruzione:

Se nell'immagine non c'è rumore, la densità spettrale della funzione rumore è 0 e l'espressione, chiamata filtro di Wiener, si trasforma in un normale filtro inverso.

Al diminuire della densità spettrale di potenza dell'immagine originale, la funzione di trasferimento del filtro di Wiener tende a zero. Questo è tipico per le immagini alle alte frequenze.

A frequenze corrispondenti agli zeri della funzione di trasferimento del sistema di formazione, anche la funzione di trasferimento del filtro di Wiener è zero. Viene così risolto il problema della singolarità del filtro di ricostruzione.

Filtri Wiener OPF

Filtri inversi

Riso. 3. Esempi di filtri

Filtraggio delle immagini.

Il filtraggio mediano delle immagini è più efficace se il rumore nell'immagine è di natura impulsiva e rappresenta un insieme limitato di valori di picco su uno sfondo di zeri. Come risultato dell'applicazione del filtro mediano, le aree inclinate e i bruschi cambiamenti nei valori di luminosità nelle immagini non cambiano. Questa è una proprietà molto utile specificatamente per le immagini in cui i contorni contengono informazioni di base.

Fig.4

Quando si filtrano mediamente immagini rumorose, il grado di attenuazione dei contorni dell'oggetto dipende direttamente dalla dimensione dell'apertura del filtro e dalla forma della maschera. Esempi della forma delle maschere con un'apertura minima sono mostrati nella Figura 4. Con aperture di piccole dimensioni, i dettagli contrastanti dell'immagine vengono preservati meglio, ma il rumore impulsivo viene soppresso in misura minore. A dimensioni di apertura maggiori si osserva l'immagine opposta. La scelta ottimale della forma dell'apertura di livellamento dipende dalle specificità del problema da risolvere e dalla forma degli oggetti. Ciò è di particolare importanza per il compito di preservare le differenze (confini netti di luminosità) nelle immagini.

Per immagine di differenza intendiamo un'immagine in cui i punti su un lato di una certa linea hanno lo stesso valore UN e tutti i punti sull'altro lato di questa linea rappresentano il valore B, B¹ UN. Se l'apertura del filtro è simmetrica rispetto all'origine, il filtro mediano preserva qualsiasi immagine differenza. Questo viene fatto per tutte le aperture con un numero dispari di campioni, ad es. ad eccezione delle aperture (cornici quadrate, anelli), che non contengono l'origine delle coordinate. Tuttavia, le montature e gli anelli quadrati modificheranno solo leggermente la caduta.

Per semplificare ulteriormente la considerazione ci limiteremo all'esempio di un filtro con maschera quadrata di dimensione N × N, con N=3. Il filtro scorrevole esegue la scansione dei campioni di immagine da sinistra a destra e dall'alto verso il basso, mentre la sequenza bidimensionale di input può anche essere rappresentata come una serie numerica sequenziale di campioni (x(n)) da sinistra a destra, dall'alto verso il basso. Da questa sequenza, in ogni punto corrente, la maschera di filtro estrae l'array w(n), come vettore di elementi W, che in questo caso contiene tutti gli elementi della finestra 3x3 centrata attorno a x(n), e l'elemento centrale stesso, se previsto tipo di maschera:

w(n) = .

In questo caso, il valore x i corrisponde a una mappatura da sinistra a destra e dall'alto in basso di una finestra 3x3 in un vettore unidimensionale.

Gli elementi di questo vettore, come per il filtro mediano unidimensionale, possono anche essere ordinati in serie in ordine crescente o decrescente dei loro valori:

r(n) = ,

viene definito il valore mediano y(n) = med(r(n)) e il riferimento alla maschera centrale viene sostituito dal valore mediano. Se, a seconda del tipo di maschera, il campione centrale non è compreso nella riga 8, allora il valore mediano si trova come valore medio dei due campioni centrali della riga 9.

Le espressioni di cui sopra non spiegano come trovare il segnale di uscita vicino ai punti finali e di confine nelle sequenze e immagini finali. Un trucco semplice è trovare la mediana solo dei punti all'interno dell'immagine che rientrano nell'apertura. Pertanto, per i punti situati vicino ai confini, le mediane verranno determinate sulla base di un numero inferiore di punti.

Il filtraggio mediano può essere eseguito anche in versione ricorsiva, in cui i valori sopra e a sinistra del campione centrale nella maschera (in questo caso x 1 (n)-x 4 (n) in Fig. 9) in riga 8 vengono sostituiti con quelli già calcolati nei cicli precedenti valori y 1 (n)-y 4 (n).

Risultati dell'elaborazione

Aggiunta di rumore all'immagine originale

Sale gaussiano e macchioline di carta

Risultato dell'elaborazione con il filtro Mediano

MedFilter_Gaussiano MedFilter_Salt & Paper MedFilter_Speckle

Risultato dell'elaborazione del filtro Wiener

WinFilter_Gaussiano WinFilter_ Sale e carta WinFilter_ Macchia

Il risultato del calcolo della deviazione standard delle immagini filtrate dall'originale.

CONCLUSIONE

Il grafico mostra che il filtro mediano sopprime bene il rumore a impulso singolo e i picchi di rumore casuali dei campioni (CKOSaPeMed) e il grafico mostra che questo è il metodo migliore per eliminare questo tipo di rumore.

Il filtro Wiener (CKOSaPeWin), a differenza del filtro mediano, con un aumento del fattore di rumore dell'immagine, si è allontanato più volte dall'originale.

La soppressione del rumore bianco e gaussiano nel caso del filtro mediano è meno efficace (CKOGausMed, CKOSpecMed) rispetto a quella del filtro Wiener (CKOGausWin, CKOSpecWin). Si osserva una debole efficienza anche quando si filtra il rumore di fluttuazione. Quando si aumenta la dimensione della finestra del filtro Mediale, l'immagine risulta sfocata.

Elenco dei riferimenti

1. Elaborazione digitale di immagini a colori. Shlikht G.Yu. M., Casa editrice EKOM, 2007. – 336 pag.

2. http://prodav.narod.ru/dsp/index.html

3. Introduzione all'elaborazione digitale delle immagini. Yaroslavskij L.P. M.: Sov. radio, 2007. – 312 pag.

4. http://matlab.exponenta.ru/

5. Elaborazione delle immagini digitali in MATLAB. R. Gonzalez, R. Woods, S. Eddins, M.: Tekhnosphere, 2006.

6. http://www.chipinfo.ru/literature/chipnews/199908/29.html

1.Specifiche tecniche............................................ .....................................2

2.Analisi delle specifiche tecniche............................................ ………….3

2.1. Filtro mediano. Filtraggio mediano................... 4

2.1.1 Vantaggi e svantaggi dei filtri mediani................................. 6

2.2 Principio di filtrazione............................................ .....................7

2.3 Soppressione statistica del rumore............................................ ......8

2.4 Rumore impulsivo e puntiforme............................................ ....... ...9

2.5 Caduta più rumore............................................ ...................................... 11

2.6 Filtrazione Wiener............................................ ..................................... 13

2.7. Filtraggio delle immagini.................................... ... .........15

2.7.1 Utilizzo del filtraggio adattivo................................. 17

2.7.2 Utilizzo del filtraggio mediano................................. 17

3. PROGETTAZIONE DELLE FUNZIONI AUSILIARI DI MATLAB. 18

3.1. Lettura di un'immagine e creazione di una copia............................ ........18

3.2. Aggiunta di rumore a una copia dell'immagine originale................................. 18

3.3. Elaborazione di una copia rumorosa utilizzando un filtro mediano. 18

3.4. Elaborazione di una copia rumorosa utilizzando un filtro di Wiener........ 20

3.5. Calcolo della deviazione standard tra l'immagine filtrata e l'originale. 21

4. Risultati del trattamento................................... ......................................23

Elenco della letteratura.................................... ....................................26

1. Specifiche tecniche

Confronto dell'efficacia dei filtri mediani e medi

1. Crea una copia dell'immagine originale.

2. Aggiungi rumore a una copia dell'immagine originale.

Rumore gaussiano - "gaussiano"

Rumore impulsivo - "sale&pepe"

Rumore moltiplicativo - "macchia"

4. Elaborare una delle copie rumorose utilizzando un filtro.

5. Elabora un'altra copia utilizzando il filtro 2.

7. Costruire grafici della dipendenza della deviazione standard dell'immagine filtrata dal parametro del rumore (negli stessi assi per filtri diversi).

Immagine originale.

2. Analisi delle specifiche tecniche

I filtri mediani vengono spesso utilizzati nella pratica come mezzo per preelaborare i dati digitali. Una caratteristica specifica dei filtri è una selettività chiaramente espressa in relazione agli elementi dell'array, che sono una componente non monotona della sequenza di numeri all'interno della finestra (apertura) del filtro e si stagliano nettamente sullo sfondo dei campioni vicini. Allo stesso tempo, il filtro mediano non incide sulla componente monotona della sequenza, lasciandola inalterata. Grazie a questa funzione, i filtri mediani con un'apertura selezionata in modo ottimale possono, ad esempio, preservare i confini netti degli oggetti senza distorsioni, sopprimendo efficacemente il rumore non correlato o debolmente correlato e i dettagli di piccole dimensioni. Questa proprietà consente di utilizzare il filtraggio mediano per eliminare valori anomali negli array di dati, ridurre i valori anomali e il rumore degli impulsi. Una caratteristica del filtro mediano è la sua non linearità. In molti casi, l'uso di un filtro mediano è più efficace dei filtri lineari, poiché le procedure di elaborazione lineare sono ottimali quando la distribuzione del rumore è uniforme o gaussiana, il che potrebbe non essere il caso nei segnali reali. Nei casi in cui le differenze nei valori del segnale sono grandi rispetto alla dispersione del rumore bianco additivo, il filtro mediano fornisce un errore quadratico medio inferiore rispetto ai filtri lineari ottimali. Il filtro mediano è particolarmente efficace quando si puliscono i segnali dal rumore impulsivo durante l'elaborazione di immagini, segnali acustici, trasmissione di segnali di codice, ecc. Tuttavia, studi dettagliati sulle proprietà dei filtri mediani come mezzo per filtrare segnali di vario tipo sono piuttosto rari.

Filtro mediano. Filtraggio mediano

Attualmente, i metodi di elaborazione del segnale digitale sono ampiamente utilizzati in televisione, ingegneria radiofonica, sistemi di comunicazione, controllo e monitoraggio. Una delle operazioni più comuni in tale elaborazione è il filtraggio del segnale digitale.

Il filtraggio mediano è stato proposto da Tukey come strumento per livellare le serie temporali trovate nella ricerca economica, e in seguito è stato ampiamente utilizzato nell'elaborazione di immagini, segnali vocali, ecc.

Il filtro mediano è un tipo di filtro digitale ampiamente utilizzato nell'elaborazione dei segnali digitali e delle immagini per ridurre il rumore. Il filtro mediano è un filtro FIR non lineare.

I valori del campione all'interno della finestra del filtro sono ordinati in ordine crescente (discendente); e il valore al centro dell'elenco ordinato viene visualizzato nel filtro. Nel caso di un numero pari di campioni nella finestra, il valore di uscita del filtro è pari alla media dei due campioni al centro della lista ordinata. La finestra si sposta lungo il segnale filtrato e i calcoli vengono ripetuti.

Il filtraggio mediano è una procedura efficace per elaborare segnali soggetti a rumore impulsivo.


Filtraggio mediano.

Il filtraggio mediano sostituisce i valori del campione al centro dell'apertura con il valore mediano dei campioni originali all'interno dell'apertura del filtro. In pratica, per semplificare gli algoritmi di elaborazione dei dati, l'apertura del filtro viene solitamente impostata con un numero dispari di campioni, che verranno accettati in un'ulteriore considerazione senza ulteriori spiegazioni.

Il filtraggio mediano viene implementato come una procedura per l'elaborazione locale dei campioni in una finestra scorrevole, che include un certo numero di campioni di segnale. Per ciascuna posizione della finestra, i campioni selezionati al suo interno vengono classificati in ordine di valori crescente o decrescente. Il rapporto medio nella classifica è chiamato mediana del gruppo di rapporti in esame. Questo campione sostituisce il campione centrale nella finestra per il segnale in fase di elaborazione. Per questo motivo, il filtro mediano è uno dei filtri non lineari che sostituisce punti anomali e valori anomali con un valore mediano, indipendentemente dai loro valori di ampiezza, ed è stabile per definizione, in grado di cancellare anche campioni infinitamente grandi.

L'algoritmo di filtraggio mediano ha una selettività pronunciata verso gli elementi dell'array con una componente non monotona della sequenza di numeri all'interno dell'apertura e nel modo più efficace esclude dai segnali singoli valori anomali, negativi e positivi, che cadono ai margini della lista classificata. Tenendo conto della classifica nell'elenco, i filtri mediani sopprimono bene il rumore e le interferenze, la cui lunghezza è inferiore alla metà della finestra. Un punto stabile è una sequenza (nel caso unidimensionale) o un array (nel caso bidimensionale) che non cambia durante il filtraggio mediano. Nel caso unidimensionale, i punti stabili dei filtri mediani sono sequenze “localmente monotone”, che il filtro mediano lascia inalterate. L'eccezione è rappresentata da alcune sequenze binarie periodiche.

  • Il filtraggio mediano non è lineare, poiché la mediana della somma di due sequenze arbitrarie non è uguale alla somma delle loro mediane, il che in alcuni casi può complicare l'analisi matematica dei segnali.
  • Il filtro fa appiattire i vertici delle funzioni triangolari.
  • La soppressione del rumore bianco e gaussiano è meno efficace dei filtri lineari. Si osserva una debole efficienza anche quando si filtra il rumore di fluttuazione.
  • All'aumentare della dimensione della finestra del filtro, i cambiamenti repentini e i salti del segnale vengono sfumati.

Gli svantaggi del metodo possono essere ridotti se si utilizza il filtraggio mediano con una modifica adattiva della dimensione della finestra del filtro in funzione della dinamica del segnale e della natura del rumore (filtraggio mediano adattivo). Come criterio per la dimensione della finestra è possibile utilizzare, ad esempio, la deviazione dei valori dei campioni vicini rispetto al campione centrale classificato /1i/. Quando questo valore diminuisce al di sotto di una certa soglia, la dimensione della finestra aumenta.

16.2. FILTRAGGIO MEDIANO delle immagini.

Rumore nelle immagini. Nessun sistema di registrazione fornisce una qualità d'immagine ideale degli oggetti studiati. Le immagini in corso di formazione da parte dei sistemi (fotografici, olografici, televisivi) sono solitamente esposte a varie interferenze o rumori casuali. Un problema fondamentale nel campo dell'elaborazione delle immagini è l'efficace rimozione del rumore preservando importanti dettagli dell'immagine per il successivo riconoscimento. La complessità della risoluzione di questo problema dipende in modo significativo dalla natura del rumore. A differenza delle distorsioni deterministiche, che sono descritte da trasformazioni funzionali dell'immagine originale, i modelli di rumore additivo, impulsivo e moltiplicativo vengono utilizzati per descrivere effetti casuali.

Il tipo più comune di interferenza è il rumore additivo casuale, che è statisticamente indipendente dal segnale. Il modello di rumore additivo viene utilizzato quando il segnale all'uscita del sistema o in qualche fase della conversione può essere considerato come la somma di un segnale utile e di un segnale casuale. Il modello di rumore additivo descrive bene l'effetto della grana della pellicola, del rumore di fluttuazione nei sistemi radio, del rumore di quantizzazione nei convertitori analogico-digitali, ecc.

Il rumore gaussiano additivo è caratterizzato dall'aggiunta di valori normalmente distribuiti e con media zero a ciascun pixel dell'immagine. Tale rumore viene solitamente introdotto nella fase di imaging digitale. Le informazioni principali nelle immagini sono fornite dai contorni degli oggetti. I filtri lineari classici possono rimuovere efficacemente il rumore statistico, ma il grado di sfocatura dei piccoli dettagli nell'immagine può superare i valori accettabili. Per risolvere questo problema vengono utilizzati metodi non lineari, ad esempio algoritmi basati sulla diffusione anisotropa di Perron e Malik, filtri bilaterali e trilaterali. L'essenza di tali metodi è quella di utilizzare stime locali adeguate per determinare il contorno dell'immagine e attenuare tali aree il meno possibile.


Il rumore impulsivo è caratterizzato dalla sostituzione di parte dei pixel nell'immagine con valori di valore fisso o casuale. Nell'immagine, tale interferenza appare come punti di contrasto isolati. Il rumore impulsivo è tipico dei dispositivi per l'immissione di immagini da una telecamera, dei sistemi per la trasmissione di immagini tramite canali radio, nonché dei sistemi digitali per la trasmissione e la memorizzazione di immagini. Per rimuovere il rumore impulsivo, viene utilizzata una classe speciale di filtri non lineari basati sulle statistiche di rango. L'idea generale di tali filtri è quella di rilevare la posizione di un impulso e sostituirla con un valore stimato, mantenendo invariati i restanti pixel dell'immagine.

Filtri bidimensionali. Il filtraggio mediano delle immagini è più efficace se il rumore nell'immagine è di natura impulsiva e rappresenta un insieme limitato di valori di picco su uno sfondo di zeri. Come risultato dell'applicazione del filtro mediano, le aree inclinate e i bruschi cambiamenti nei valori di luminosità nelle immagini non cambiano. Questa è una proprietà molto utile specificatamente per le immagini in cui, come è noto, i contorni portano l'informazione principale.

Riso. 16.2.1.

Quando si filtrano mediamente immagini rumorose, il grado di attenuazione dei contorni dell'oggetto dipende direttamente dalla dimensione dell'apertura del filtro e dalla forma della maschera. Esempi della forma di maschere con apertura minima sono mostrati in Fig. 16.2.1. Dimensioni di apertura più piccole preservano meglio i dettagli del contrasto dell'immagine, ma riducono la soppressione del rumore impulsivo in misura minore. A dimensioni di apertura maggiori si osserva l'immagine opposta. La scelta ottimale della forma dell'apertura di livellamento dipende dalle specificità del problema da risolvere e dalla forma degli oggetti. Ciò è di particolare importanza per il compito di preservare le differenze (confini netti di luminosità) nelle immagini.

Per immagine di differenza intendiamo un'immagine in cui i punti su un lato di una certa linea hanno lo stesso valore UN e tutti i punti sull'altro lato di questa linea rappresentano il valore B, B¹ UN. Se l'apertura del filtro è simmetrica rispetto all'origine e la contiene, il filtro mediano preserva qualsiasi immagine della differenza. Questo viene fatto per tutte le aperture con un numero dispari di campioni, ad es. ad eccezione delle aperture (cornici quadrate, anelli), che non contengono l'origine. Tuttavia, le montature e gli anelli quadrati modificheranno solo leggermente la caduta.

Riso. 16.2.2.

Per semplificare ulteriormente la considerazione ci limiteremo all'esempio di un filtro con maschera quadrata di dimensione N × N, con N=3. Il filtro scorrevole esegue la scansione dei campioni di immagine da sinistra a destra e dall'alto verso il basso, mentre la sequenza bidimensionale di input può anche essere rappresentata come una serie numerica sequenziale di campioni (x(n)) da sinistra a destra, dall'alto verso il basso. Da questa sequenza, in ogni punto corrente, la maschera di filtro estrae l'array w(n), come vettore di elementi W, che in questo caso contiene tutti gli elementi della finestra 3x3 centrata attorno a x(n), e l'elemento centrale stesso, se previsto tipo di maschera:

w(n) = . (16.2.1)

In questo caso, il valore xi corrisponde a una mappatura da sinistra a destra e dall'alto in basso di una finestra 3x3 in un vettore unidimensionale, come mostrato in Fig. 16.2.2.

Gli elementi di questo vettore, come per il filtro mediano unidimensionale, possono anche essere ordinati in serie in ordine crescente o decrescente dei loro valori:

r(n) = , (16.2.2)

viene definito il valore mediano y(n) = med(r(n)) e il riferimento alla maschera centrale viene sostituito dal valore mediano. Se, a seconda del tipo di maschera, il campione centrale non è compreso nella riga 16.2.1, allora il valore mediano si trova come valore medio dei due campioni centrali della serie 16.2.2.

Le espressioni di cui sopra non spiegano come trovare il segnale di uscita vicino ai punti finali e di confine nelle sequenze e immagini finali. Un trucco semplice è trovare la mediana solo dei punti all'interno dell'immagine che rientrano nell'apertura. Pertanto, per i punti situati vicino ai confini, le mediane verranno determinate sulla base di un numero inferiore di punti.

Nella fig. 16.2.3 mostra un esempio di pulizia di un'immagine rumorosa utilizzando il filtro Chernenko mediano /2i/. L'area di rumore dell'immagine era del 15%; per la pulizia il filtro è stato applicato 3 volte di seguito.



Riso. 16.1.5.

Il filtraggio mediano può essere eseguito anche in una versione ricorsiva, in cui i valori sopra e a sinistra del campione centrale nella maschera (in questo caso x 1 (n)-x 4 (n) in Fig. 16.2.2 ) nella riga 16.2.1 vengono sostituiti con già i valori y 1 (n)-y 4 (n) calcolati nei cicli precedenti.

Filtri adattativi bidimensionali. La contraddizione nella dipendenza del grado di soppressione del rumore e della distorsione del segnale dall'apertura del filtro viene in una certa misura attenuata quando si utilizzano filtri con una dimensione della maschera dinamica, adattando la dimensione dell'apertura alla natura dell'immagine. Nei filtri adattivi, vengono utilizzate aperture grandi nelle aree monotone del segnale elaborato (migliore soppressione del rumore) e aperture piccole vengono utilizzate in prossimità di disomogeneità, preservandone le caratteristiche, mentre la dimensione della finestra del filtro scorrevole viene impostata in base alla distribuzione della luminosità dei pixel nella maschera del filtro. Di solito si basano sull'analisi della luminosità in prossimità del punto centrale della maschera filtrante.

Gli algoritmi più semplici per modificare dinamicamente l'apertura di un filtro simmetrico lungo entrambi gli assi funzionano solitamente secondo un coefficiente di luminosità di soglia S soglia = impostato sulla base di dati empirici. Ad ogni posizione corrente della maschera nell'immagine, il processo iterativo inizia con la dimensione minima dell'apertura. I valori di deviazione della luminosità dei pixel vicini A(r, n) che rientrano in una finestra di dimensione (n x n) rispetto alla luminosità del riferimento centrale A(r) sono calcolati dalla formula:

S n (r) = |A(r,n)/A(r) – 1|. (16.2.3)

Il criterio secondo cui si aumenta la dimensione della maschera con riferimento centrale r e si esegue l'iterazione successiva ha la forma:

massimo< S порог. (16.2.4)

La dimensione massima della maschera (numero di iterazioni) è generalmente limitata. Per le maschere non quadrate aventi dimensioni (n x m), le iterazioni possono essere calcolate con incrementi separati dei parametri n e m, nonché modificando la forma delle maschere durante il processo di iterazione.

Filtri basati sulle statistiche di classificazione . Negli ultimi due decenni, algoritmi non lineari basati su statistiche di rango sono stati attivamente sviluppati nell'elaborazione delle immagini digitali per ripristinare immagini danneggiate da vari modelli di rumore. Tali algoritmi consentono di evitare ulteriori distorsioni dell'immagine durante la rimozione del rumore e anche di migliorare significativamente i risultati dei filtri sulle immagini con un elevato grado di rumore.

L'essenza della statistica dei ranghi risiede solitamente nel fatto che la serie 16.2.1 non include il campione centrale della maschera di filtro e il valore m(n) viene calcolato dalla serie 16.2.2. A N=3 secondo la Fig. 16.2.2:

m(n) = (x4 (n)+x5 (n))/2. (16.2.5)

Il valore di uscita del filtro, che sostituisce il campione centrale, viene calcolato utilizzando la formula:

y(n) = ax(n) + (1-a) m(n). (16.2.6)

Il valore del coefficiente di confidenza a è associato a una certa relazione con le statistiche dei campioni nella finestra del filtro (ad esempio, la dispersione totale dei campioni, la dispersione delle differenze x(n)-x i (n) o m(n) -x i (n), la dispersione delle differenze positive e negative x(n )-x i (n) o m(n)-x i (n), ecc.). In sostanza, il valore del coefficiente a dovrebbe specificare il grado di danno subito dal campione centrale e, di conseguenza, il grado di indebitamento dai campioni m(n) per correggerlo. La scelta della funzione statistica e la natura della dipendenza del coefficiente a da essa possono essere molto diverse e dipendono sia dalla dimensione dell'apertura del filtro che dalla natura delle immagini e del rumore.

letteratura

44. Bolshakov I.A., Rakoshits V.S. Teoria applicata dei flussi casuali, M.: Sov. radio, 1978, - 248 pag.

46. ​​Huang T.S. e altri. Algoritmi veloci nell'elaborazione delle immagini digitali. – M.: Radio e comunicazioni, 1984. – 224 p.

47. Soifer V.A. Elaborazione delle immagini al computer. Parte 2. Metodi e algoritmi. – Rivista educativa Soros n. 3, 1996.

48. Apalkov I.V., Khryashchev V.V. Rimozione del rumore dalle immagini basata su algoritmi non lineari utilizzando statistiche di classificazione. - Università statale di Yaroslavl, 2007.

1i. Yarovoy N.I. Filtraggio mediano adattivo. - http://www.controlstyle.ru/articles/science/text/amf/

2i. Černenko SA Filtro mediano. - http://www.logis-pro.kiev.ua/math_power_medianfilter_ru.html.

3i. Radchenko Yu.S. Efficienza della ricezione del segnale sullo sfondo dell'interferenza combinata con elaborazione aggiuntiva nel filtro mediano. - "Journal of Radio Electronics", n. 7, 2001. / http://jre.cplire.ru/iso/jul01/2/text.html

Informazioni sugli errori rilevati e suggerimenti per integrazioni: [e-mail protetta].

Copyright ©2008 Davydov A.V.

Il filtraggio mediano è una tecnica di elaborazione del segnale non lineare sviluppata da Tukey. Questo metodo è utile per ridurre il rumore in un'immagine. Un filtro mediano unidimensionale è una finestra scorrevole che copre un numero dispari di elementi nell'immagine. L'elemento centrale viene sostituito dalla mediana di tutti gli elementi dell'immagine nella finestra. La mediana di una sequenza discreta per un numero dispari è quell'elemento per il quale esistono elementi inferiori o uguali ad esso in grandezza ed elementi maggiori o uguali ad esso in grandezza. Lascia che la finestra contenga elementi immagine con livelli 80, 90, 200, 110 e 120; in questo caso, l'elemento centrale dovrebbe essere sostituito con il valore 110, che è la mediana della sequenza ordinata 80, 90, 110, 120, 200. Se in questo esempio il valore 200 è un rumore anomalo in una sequenza monotonicamente crescente, quindi il filtraggio mediano fornirà un miglioramento significativo. Al contrario, se il valore 200 corrisponde all'impulso del segnale utile (quando si utilizzano sensori a banda larga), allora l'elaborazione porterà ad una perdita di nitidezza dell'immagine riprodotta. Pertanto, il filtro mediano in alcuni casi fornisce la soppressione del rumore, in altri provoca la soppressione indesiderata del segnale.

Nella fig. La Figura 12.6.1 mostra l'effetto dei filtri mediano e medio (smoothing) con una finestra a cinque elementi su segnali discreti a gradino, a dente di sega, a impulso e triangolari. Da questi diagrammi si può vedere che il filtro mediano non influenza le funzioni a gradino o a dente di sega, che di solito è una proprietà desiderabile. Tuttavia, questo filtro sopprime i segnali impulsivi la cui durata è inferiore alla metà della larghezza della finestra. Il filtro fa anche appiattire il vertice della funzione triangolare.

Riso. 12.6.1. Esempi di filtraggio mediano dei segnali discreti più semplici.

a - transizione a gradini: b - transizione a dente di sega; c - impulso singolo; e - doppio impulso; d - triplo impulso; e - segnale triangolare.

La capacità di analizzare l'effetto del filtro mediano è limitata. Si può dimostrare che la mediana del prodotto di una costante per una successione è uguale a

Oltretutto,

Tuttavia, la mediana della somma di due sequenze arbitrarie non è uguale alla somma delle loro mediane:

Questa disuguaglianza può essere verificata utilizzando come esempio le sequenze 80, 90, 100, 110, 120 e 80, 90, 100, 90, 80.

Sono possibili varie strategie per applicare il filtro mediano per sopprimere il rumore. Uno di questi consiglia di iniziare con un filtro mediano, la cui finestra copre tre elementi dell'immagine. Se l'attenuazione del segnale è insignificante, la finestra del filtro viene ampliata a cinque elementi. Ciò continua fino a quando il filtraggio mediano inizia a causare più danni che benefici. Un'altra possibilità è quella di eseguire un filtraggio mediano in cascata del segnale utilizzando una larghezza della finestra fissa o variabile. In generale quelle zone che rimangono inalterate dopo un trattamento con un singolo filtro non cambiano dopo lavorazioni ripetute. Le regioni in cui la durata dei segnali di impulso è inferiore alla metà della larghezza della finestra saranno soggette a modifiche dopo ogni ciclo di elaborazione.

Il concetto di filtro mediano può essere facilmente generalizzato a due dimensioni utilizzando una finestra bidimensionale della forma desiderata, ad esempio rettangolare o quasi circolare. È chiaro che un filtro mediano bidimensionale con una finestra di dimensione fornisce una riduzione del rumore più efficace rispetto ai filtri mediani unidimensionali orizzontali e verticali con una finestra di dimensione applicata in sequenza. L'elaborazione 2D, tuttavia, comporta un'attenuazione del segnale più significativa. Nella fig. La Figura 12.6.2 mostra l'effetto del filtraggio mediano bidimensionale su un segnale di impulso spaziale. Sono stati utilizzati filtri con due tipi di finestre: quadrata e cruciforme. Come puoi vedere, il filtro mediano con una finestra quadrata ha distrutto gli angoli del quadrato raffigurato, mentre il filtro con una finestra a forma di croce lo ha lasciato invariato.

Riso. 12.6.2. Esempi di filtraggio mediano 2D

Nella fig. 12.6.3 e 12.6.4 mostrano campioni di immagini sottoposte a filtraggio mediano per sopprimere il rumore. Come si può vedere, il filtro mediano sopprime il rumore impulsivo diffuso in modo più efficace rispetto al rumore uniforme. Il filtraggio mediano delle immagini ai fini della soppressione del rumore dovrebbe essere considerato un metodo euristico. Non può essere utilizzato alla cieca. Dovresti invece controllare i risultati per assicurarti che il filtro mediano sia appropriato.

Riso. 12.6.3. Immagini campione elaborate con un filtro mediano unidimensionale per sopprimere il rumore impulsivo.

a - immagine originale con rumore impulsivo (15 elementi distorti in ciascuna riga); b - risultato del filtraggio mediano a ; c è il risultato del filtraggio mediano in ; r è il risultato del filtraggio mediano a .

Riso. 12.6.4. Immagini campione elaborate con un filtro mediano 1D per sopprimere il rumore gaussiano.

a - immagine originale con rumore gaussiano; b - risultato del filtraggio mediano a ; c è il risultato del filtraggio mediano in ; r è il risultato del filtraggio mediano a .

Introduzione

segnale digitale di filtraggio mediano

L'elaborazione del segnale digitale ha trovato ampia applicazione in vari campi di attività: televisione, radar, comunicazioni, meteorologia, sismologia, medicina, analisi del parlato e telefonia, nonché nell'elaborazione di immagini e campi di varia natura. In alcuni settori dell’attività economica, come quello bancario, il trattamento dei flussi finanziari digitali è di fondamentale importanza.

Lo sviluppo della tecnologia informatica e dei microprocessori porta alla creazione di apparecchiature sempre più affidabili, ad alta velocità, miniaturizzate, di alta qualità ed economiche. Le tecnologie digitali sono diventate così diffuse che le usiamo nella vita di tutti i giorni senza nemmeno accorgercene: cellulare, lettore CD, computer, ecc.

Nel corso di questo lavoro è necessario considerare i vantaggi e gli svantaggi del filtraggio mediano. Scopri come funzionano i filtri mediani. Utilizzando il programma MatLab712 R2011a, mostrane il funzionamento utilizzando un esempio.

Parte teorica del DSP

Filtro mediano

Tutti gli algoritmi di filtraggio lineare attenuano i bruschi cambiamenti nella luminosità delle immagini elaborate. Questo inconveniente, particolarmente significativo se il consumatore di informazioni è una persona, in linea di principio non può essere eliminato nell'ambito dell'elaborazione lineare. Il punto è che le procedure lineari sono ottimali per le distribuzioni gaussiane di segnali, rumore e dati osservati. Le immagini reali, in senso stretto, non obbediscono a questa distribuzione di probabilità. Inoltre, uno dei motivi principali di ciò è la presenza di vari confini nelle immagini, cambiamenti di luminosità, transizioni da una trama all'altra, ecc. Suscettibili di descrizione gaussiana locale all'interno di aree limitate, molte immagini reali a questo riguardo sono scarsamente rappresentate come oggetti globalmente gaussiani. Questo è proprio il motivo della scarsa trasmissione dei confini durante il filtraggio lineare.

La seconda caratteristica del filtraggio lineare è la sua ottimalità, come appena accennato, per la natura gaussiana del rumore. In genere, questa condizione è soddisfatta dall'interferenza del rumore nelle immagini, quindi gli algoritmi lineari hanno prestazioni elevate quando le sopprimono. Tuttavia, spesso devi avere a che fare con immagini distorte da altri tipi di rumore. Uno di questi è il rumore impulsivo. Quando esposto ad esso, nell'immagine si osservano punti bianchi e/o neri, sparsi in modo casuale nell'inquadratura. L'uso del filtraggio lineare in questo caso è inefficace: ciascuno degli impulsi di ingresso (essenzialmente una funzione delta) fornisce una risposta sotto forma di risposta all'impulso del filtro e la loro combinazione contribuisce alla diffusione del rumore sull'intera area del fotogramma.

Una soluzione efficace ai problemi di cui sopra è l'uso del filtraggio mediano, proposto da J. Tukey nel 1971 per l'analisi dei processi economici. Nella raccolta viene presentato lo studio più completo sul filtraggio mediano in relazione all'elaborazione delle immagini. Si noti che il filtraggio mediano è un metodo di elaborazione euristico; il suo algoritmo non è una soluzione matematica a un problema rigorosamente formulato; Pertanto, i ricercatori prestano grande attenzione all'analisi dell'efficacia dell'elaborazione delle immagini basata su di essa e al confronto con altri metodi.

Quando si applica un filtro mediano (MF), ogni punto nel fotogramma viene elaborato in sequenza, risultando in una sequenza di stime. Concettualmente l'elaborazione nei diversi punti è indipendente (in questo modo la MF è simile ad una maschera filtro), ma per velocizzarla è consigliabile utilizzare algoritmicamente ad ogni passaggio i calcoli precedentemente eseguiti.

Il filtraggio mediano utilizza una finestra bidimensionale (apertura del filtro), solitamente avente simmetria centrale, con il centro situato nel punto di filtraggio corrente. Nella fig. La Figura 1.1 mostra due esempi delle opzioni di finestra più comunemente utilizzate sotto forma di croce e sotto forma di quadrato. Le dimensioni dell'apertura sono tra i parametri ottimizzati nel processo di analisi dell'efficacia dell'algoritmo. I campioni di immagine che rientrano nella finestra costituiscono il campione di lavoro del passaggio corrente.

Riso. 1.1.

La natura bidimensionale della finestra consente un filtraggio essenzialmente bidimensionale, poiché per formare una stima vengono utilizzati i dati sia della riga e della colonna corrente, sia di quelle vicine. Indichiamo il campione di lavoro come un array unidimensionale; il numero dei suoi elementi è uguale alla dimensione della finestra e la loro disposizione è arbitraria. Tipicamente vengono utilizzate finestre con un numero dispari di punti (questo è automaticamente garantito dalla simmetria centrale dell'apertura e quando il punto più centrale è incluso nella sua composizione). Se ordini una sequenza in ordine crescente, la sua mediana sarà l'elemento campione che occupa una posizione centrale in questa sequenza ordinata. Il numero ottenuto in questo modo è il prodotto di filtraggio per il punto del frame corrente. È chiaro che il risultato di tale elaborazione non dipende realmente dalla sequenza in cui gli elementi dell'immagine sono presentati nel campione di lavoro. Introduciamo la notazione formale per la procedura descritta nella forma:

x * =med(y 1 , y 2 ,…, y n) (1.1)

Diamo un'occhiata a un esempio. Supponiamo che il campione abbia la forma: Y=(136,110,99,45,250,55,158,104,75), e l'elemento 250, situato al suo centro, corrisponde al punto di filtraggio attuale (i 1, i 2) (Fig. 1.1) . Un valore di luminosità elevato in questo punto dell'inquadratura potrebbe essere il risultato di un rumore pulsato (puntiforme). Il campione ordinato in ordine crescente ha la forma (45,55,75,99,104,110,136,158,250), pertanto, secondo la procedura (1.1), si ottiene x * =med(y 1, y 2,…, y 9)=104. Vediamo che l'influenza dei “vicini” sul risultato del filtraggio nel punto attuale ha portato a “ignorare” l'impulso di luminosità pulsato, che dovrebbe essere considerato come un effetto di filtraggio. Se il rumore impulsivo non è puntiforme, ma copre una determinata area locale, è anche possibile sopprimerlo. Ciò accadrà se la dimensione di questa regione locale è inferiore alla metà della dimensione dell'apertura MF. Pertanto, per sopprimere il rumore impulsivo che interessa aree locali dell'immagine, è necessario aumentare la dimensione dell'apertura MF.

Dalla (1.1) ne consegue che l'azione della MF è quella di "ignorare" i valori estremi del campione di input - sia emissioni positive che negative. Questo principio di soppressione del rumore può essere utilizzato anche per ridurre il rumore in un'immagine. Tuttavia, la ricerca sulla riduzione del rumore utilizzando il filtraggio mediano mostra che la sua efficacia nel risolvere questo problema è inferiore a quella del filtraggio lineare.

I risultati sperimentali che illustrano il funzionamento della MF sono mostrati in Fig. 1.2. Negli esperimenti abbiamo utilizzato un MF avente un'apertura quadrata con lato pari a 3. La riga di sinistra mostra immagini distorte dal rumore, la riga di destra mostra i risultati del loro filtraggio mediano. Nella fig. 1.2 ae fig. 1.2.c mostra l'immagine originale distorta dal rumore impulsivo. Durante la sua applicazione è stato utilizzato un sensore di numeri casuali con una legge di distribuzione uniforme nell'intervallo, generando numeri casuali indipendenti in tutti i punti del fotogramma. L'intensità dell'interferenza è stata specificata dalla probabilità p della sua occorrenza in ciascun punto. Se per un numero casuale n i1i2 generato nel punto (i 1 , i 2), la condizione n i1i2

Riso. 1.2.

Riso. 1.2. e mostra un'immagine distorta dal rumore gaussiano indipendente con un rapporto segnale-rumore di q 2 = -5 dB, e la Fig. 1.2.e - il risultato del suo filtraggio con un filtro mediano. Le condizioni di questo esperimento ci permettono di confrontare i suoi risultati con i risultati del filtraggio lineare discusso sopra. La tabella 1.1 fornisce i dati che rendono possibile tale confronto. Per vari metodi di filtraggio, questa tabella fornisce i valori dell'errore quadratico medio relativo d 2 e il coefficiente di attenuazione del rumore r nel caso in cui il rapporto segnale-rumore all'ingresso del filtro sia -5 dB.

Tabella 1.1. Confronto dell'efficienza di riduzione del rumore durante il filtraggio delle immagini, q 2 = -5 dB.

Il più efficace è il filtro di Wiener bidimensionale, che riduce gli errori quadratici medi di 17 volte. Il filtro mediano ha l'efficienza più bassa tra tutti i filtri considerati; corrisponde a r = 5,86. Tuttavia, questo numero indica che con il suo aiuto è possibile ridurre significativamente il livello di rumore nell'immagine.

Allo stesso tempo, come accennato in precedenza, e come mostrato in Fig. 1.2.f, il filtraggio mediano smussa i confini dell'immagine in misura minore rispetto a qualsiasi filtraggio lineare. Il meccanismo di questo fenomeno è molto semplice ed è il seguente. Supponiamo che l'apertura del filtro si trovi vicino al confine che separa le aree chiare e scure dell'immagine, mentre il suo centro si trova nell'area scura. Quindi, molto probabilmente, il campione di lavoro conterrà un numero maggiore di elementi con valori di luminosità bassi e, quindi, la mediana sarà tra quegli elementi del campione di lavoro che corrispondono a quest'area dell'immagine. La situazione si inverte se il centro dell'apertura viene spostato in una regione di maggiore luminosità. Ma questo significa che l'MF è sensibile ai cambiamenti di luminosità. Esistono moltissime interpretazioni sui metodi di funzionamento della MF, consideriamone un'altra, usando l'esempio del suo utilizzo nell'elaborazione delle immagini delle cellule del sangue: i granulociti. Prima di misurare la dimensione dei granulociti, la sua immagine è stata uniformata con un filtro mediano per eliminare i granuli che potrebbero influenzare il risultato della misurazione. Tipicamente, nel processo di filtraggio mediano, i valori del segnale in una certa vicinanza del punto in cui viene calcolata la risposta del filtro vengono ordinati in ordine crescente o decrescente in una serie di variazioni. La risposta del filtro è definita come mediana: il valore del segnale della parte centrale (centro) della serie di variazioni. Nel seguito chiameremo questo quartiere la finestra del filtro. Inoltre, per semplicità, considereremo un filtro con una finestra quadrata di dimensione n?n.

Pertanto, quando si calcola la mediana nella finestra del filtro, il numero di operazioni sui dati, ad esempio il numero di operazioni di ordinamento, è uguale a n 2. Quando si elabora un'immagine di dimensioni M?N punti (pixel), il numero di operazioni con i dati sarà elevato e ammonterà a M?N?n 2. Operazioni diverse richiedono tempi di esecuzione diversi. Eseguendo la scansione sequenziale delle immagini, è possibile ridurre il numero delle operazioni di smistamento più impegnative in termini di manodopera. Pertanto, quando ci si sposta dal punto o1 con finestra w1 al punto o2 con finestra w2 in Fig. 1.3. puoi escludere i punti della colonna 1 dalla serie di variazioni della finestra w1, ordinare i punti della colonna 6 e combinare le due serie di variazioni risultanti in una sola. Questo algoritmo funziona più velocemente rispetto all'ordinamento indipendente in ciascuna finestra, ma il numero totale di manipolazioni dei dati (anche se meno laboriose), ad esempio, almeno l'ordinamento dei dati, rimane lo stesso, cioè piuttosto elevato. Pertanto, quando si filtrano mediamente le immagini, queste sono solitamente limitate a finestre di 3?3 o 5?5 e raramente di più, il che è abbastanza, ad esempio, per eliminare il rumore impulsivo.

Riso. 1.3. Scansione di un'immagine con una finestra di filtro mediana

Le stesse restrizioni devono essere accettate per varie operazioni non lineari di elaborazione morfologica eseguite nello spazio geometrico dell'immagine e che, a differenza delle operazioni lineari, non possono essere eseguite nello spazio di Fourier. Tuttavia, esistono numerosi problemi di elaborazione delle immagini che potrebbero essere risolti efficacemente utilizzando un filtro mediano, ma richiedono finestre di grandi dimensioni. Uno di questi problemi sarà discusso di seguito. Pertanto, un possibile aumento della velocità del filtraggio mediano rappresenta una grande promessa per le attività di elaborazione delle immagini.

I metodi di filtraggio mediano sono piuttosto vari. Possono essere migliorati. Uno di questi aggiornamenti è chiamato filtro mediano adattivo.

Anche il filtraggio mediano presenta i suoi svantaggi. In particolare, è stato stabilito sperimentalmente che questo metodo ha un'efficienza relativamente debole nel filtrare il cosiddetto rumore di fluttuazione. Inoltre, all'aumentare delle dimensioni della maschera, i contorni dell'immagine si sfumano e, di conseguenza, la nitidezza dell'immagine diminuisce. Questi svantaggi del metodo possono essere ridotti al minimo se si utilizza un filtraggio mediano con una dimensione della maschera dinamica (filtro mediano adattivo). Il principio del calcolo del riferimento centrale durante l'elaborazione locale dell'immagine con una finestra scorrevole rimane lo stesso. Questa è la mediana di un insieme di campioni ordinati che cadono nella finestra (maschera) e la dimensione della finestra scorrevole (maschera) è dinamica e dipende dalla luminosità dei pixel vicini.

Introduciamo un coefficiente di deviazione della luminosità di soglia S soglia = . I valori di deviazione della luminosità dei pixel vicini A(r, n, m) che cadono in una finestra di dimensione n?m rispetto alla luminosità del riferimento centrale A(r) saranno scritti nella forma (1.2):

Allora il criterio secondo il quale occorre aumentare la dimensione della maschera con riferimento centrale r avrà la forma:

Sulla base dell'algoritmo descritto, è stato sviluppato un programma per computer che ha confermato nella pratica i vantaggi del filtraggio mediano adattivo.

I migliori articoli sull'argomento