Filtro mediano uno dopo l'altro


8

Operare su un'immagine eseguendo il filtro mediano in una finestra 3x3. Operare sull'immagine risultante eseguendo, di nuovo, il filtro mediano in una finestra 3x3. L'immagine risultante può essere ottenuta da un singolo filtro mediano?

il mio pensiero iniziale è che può essere fatto con la maschera giusta. forse una mediana accanto a una mediana. ma non sono sicuro.


Il filtro mediano non è lineare. Non è possibile combinare più operazioni di filtro mediane in un'unica operazione.
sgarizvi,

@ sgar91 bene puoi, ma non sarebbe così semplice come la mediana della finestra di a5x5.
Oliver Charlesworth,

@ sgar91 non sono 3 operazioni. sono 2. prima fai la prima mediana e poi il risultato. fai il prossimo. per favore spiega perché è importante che non sia lineare?
Gilad,

@OliCharlesworth puoi dirmi come si può fare?
Gilad,

1
ragazzi, ci sono un paio di cose da sottolineare qui. 1. questa è una domanda di programmazione e il moderatore è un idiota. 2. c'è un punto in una singola operazione 5x5 anche se fosse semplicemente una cascata di due 3x3. questo perché è un singolo passaggio nell'immagine e offre una migliore localizzazione della cache rispetto a due passaggi separati.
Grazie,

Risposte:


2

La risposta è no:

Vedere i seguenti riordini di numeri da 1 a 81. Nel caso sinistro la mediana 3x3 di 3x3 mediane sarà

mediana ([77, 72, 67, 62, 57, 52, 47, 37]) = 57,

nel caso giusto mediana

([5, 15, 23, 32, 41, 50, 59, 68, 77]) = 41

Mentre la mediana dell'intero blocco 9x9 è 41 per entrambi i casi. inserisci qui la descrizione dell'immagine


2

ok quindi ecco la risposta del mio Prof. Hagit Hal-oppure:

se esiste una maschera del genere, deve essere 5x5.
Un contro esempio mostra che questo non può essere.
considera la regione 5x5 di un'immagine: la riempiamo con i valori 0 ... 0,1,2 ... 2 (12 0 e 12 2)
la mediana 5x5 su questa regione dà 1, indipendentemente da dove posizioni i numeri.
Ora costruiamo la regione 5x5 in modo che se applichiamo la mediana sulla mediana NON otteniamo 1.
Impostare quanto segue:

1 0 0 x x
0 0 0 x x
0 0 0 x x
x x x x x
x x x x x 

dove x sono il resto dei numeri.
Il primo passaggio con mediana imposta 3x3 in alto a sinistra su 0 e quindi l'1 viene "perso" e qualsiasi ordine
di posizionamento del resto dei numeri non riporterà l'1. Quindi la mediana su tutte le altre
regioni comporterà 0 o 2. In modo che il secondo passaggio della mediana guardi solo i numeri che sono 0 e 2 e quindi NON comporterà 1.

grazie a tutti per l'aiuto


1

Sì, mi spiace di aver sbagliato a parlare della media anziché della mediana.

Vediamo cosa succede nel filtro mediano. Supponiamo che la tua routine di filtraggio vada sull'immagine dalle righe IN GIÙ, riga dopo riga. Supponiamo anche che vada in ogni riga da sinistra a destra. Puoi definirlo per andare in qualsiasi ordine, non cambierà quel punto che provo a spiegare qui.

In tale camminata crea una nuova immagine, pixel per pixel che provengono dalla mediana 3 su 3.

1) Quando eseguiamo il primo filtro mediano, il pixel che si trova nella prima riga dall'alto, può spostarsi sulla seconda riga (nell'immagine risultante) e non sulla terza (poiché Meadian 3 su 3 può solo "spingere" i pixel per la distanza di uno) .

2) Quando eseguiamo il secondo filtro mediano, questo pixel può spostarsi di un altro gradino verso il basso, fino alla terza linea.

Ma cosa succede con la distanza di viaggio per i pixel che vorranno spostarsi SU in linea? Ad esempio all'inizio questo pixel è in quinta riga. Questa distanza per questo pixel è solo 1 e non di più, poiché la routine fuori va dall'alto verso il basso in linee.

E questa è solo proprietà dell'algoritmo.

Ora vorrai usare una maschera mediana più grande. Tale maschera ti darà una distanza di viaggio dal basso verso l'alto più lunga dal basso verso l'alto, non 1! Questo porterà i pixel in luoghi, dove non possono essere spostati usando 3 su 3 mediane, come abbiamo fatto nel primo caso! E questo significa che non importa quale sia la dimensione della mediana che prendi, tale problema presenterà.

Puoi definire qualsiasi ordine di lavoro per la tua routine mediana, il problema si presenterà ma con direzioni diverse (su-giù-sinistra-destra).

LINEA PRINCIPALE: è impossibile fare lo stesso lavoro con una maschera mediana più grande, poiché darà ai pixel più fredom da spostare, quindi avranno quando vengono applicati due filtri mediani successivi di 3 su 3.

Spero di essere stato abbastanza chiaro. Solo una direzione per pensarci. Il problema può essere che la mia soluzione non è realmente connessa al processind dell'immagine e più ad alcune funzionalità procedurali dell'algoritmo.

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.