Filtre médian l'un après l'autre

8

Opérez sur une image en effectuant un filtrage médian dans une fenêtre 3x3. Opérez sur l'image résultante en effectuant à nouveau le filtrage médian dans une fenêtre 3x3. L'image obtenue peut-elle être obtenue à partir d'un seul filtrage médian?

ma pensée initiale est que cela peut être fait avec le bon masque. peut-être une médiane à côté d'une médiane. mais je ne suis pas sur.

Gilad
la source
Le filtre médian n'est pas linéaire. Vous ne pouvez pas combiner plusieurs opérations de filtre médian en une seule opération.
sgarizvi
@ sgar91 vous pouvez bien, mais ce ne serait pas aussi simple que la médiane d'une fenêtre a5x5.
Oliver Charlesworth
@ sgar91 ce n'est pas 3 opérations. c'est 2. vous faites d'abord la première médiane et ensuite le résultat. vous faites le suivant. veuillez expliquer pourquoi est-ce important que ce ne soit pas linéaire?
Gilad
@OliCharlesworth pouvez-vous me dire comment cela peut être fait?
Gilad
1
les gars, il y a quelques choses à souligner ici. 1. c'est une question de programmation et le modérateur est un idiot. 2. Il y a un point dans une seule opération 5x5 même s'il ne s'agit que d'une cascade de deux 3x3. c'est parce qu'il s'agit d'un seul passage à travers l'image et offre une meilleure localisation du cache que deux passages distincts.
thang

Réponses:

2

La réponse est non:

Voir les réarrangements suivants des nombres de 1 à 81. Dans le cas de gauche, la médiane 3x3 des médianes 3x3 sera

médiane ([77, 72, 67, 62, 57, 52, 47, 37]) = 57,

dans le bon cas médiane

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

Alors que la médiane de l'ensemble du bloc 9x9 est de 41 pour les deux cas. entrez la description de l'image ici


la source
2

ok alors voici la réponse de mon professeur Hagit Hal-or:

s'il y a un tel masque alors il doit être 5x5.
Un contre-exemple montre que cela ne peut pas être.
considérons la région 5x5 d'une image: nous la remplissons avec les valeurs 0 ... 0,1,2 ... 2 (12 0 et 12 2)
la médiane 5x5 sur cette région donne 1, peu importe où vous placez les nombres.
Maintenant, nous construisons la région 5x5 de sorte que si nous appliquons la médiane à la médiane, nous n'obtenons PAS 1.
Définissez ce qui suit:

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 

où x sont les autres nombres.
La première passe avec médiane mettra le 3x3 supérieur gauche à 0 et donc le 1 est "perdu" et tout ordre
de placer le reste des nombres ne ramènera pas le 1. Ainsi, la médiane de toutes les autres
régions se traduira par 0 ou 2. De sorte que la deuxième passe de la médiane examinera uniquement les nombres qui sont 0 et 2 et ne donnera donc PAS 1.

merci à tous pour votre aide

Gilad
la source
1

Oui, désolé, j'avais tort de parler de la moyenne au lieu de la médiane.

Permet de voir ce qui se passe dans le filtrage médian. Supposons que votre routine de filtrage continue sur l'image à partir des lignes TOP vers le bas, ligne après ligne. Supposons également qu'il passe dans chaque ligne de gauche à droite. Vous pouvez le définir pour aller dans n'importe quel ordre, cela ne changera pas ce point que j'essaie d'expliquer ici.

Dans une telle marche, il crée une nouvelle image, pixel par pixel, qui vient de la médiane 3 sur 3.

1) Lorsque nous effectuons le premier filtrage médian, le pixel situé sur la première ligne par le haut peut se déplacer sur la deuxième ligne (dans l'image résultante) et non sur la troisième (puisque meadian 3 sur 3 ne peut que "pousser" les pixels pour une distance d'un)) .

2) Lorsque nous effectuons un deuxième filtrage médian, ce pixel peut parcourir un pas de plus - jusqu'à la troisième ligne.

Mais qu'en est-il de la distance de déplacement pour le pixel qui voudra se déplacer vers le haut en lignes? Par exemple, au début, ce pixel est en cinquième ligne. Cette distance pour ce pixel n'est que de 1 et pas plus, car la routine de sortie va de haut en bas en lignes.

Et c'est juste la propriété de l'algorithme.

Maintenant, vous voudrez utiliser un masque médian plus grand. Un tel masque vous donnera une distance de déplacement de bas en haut plus longue de bas en haut, pas 1! Cela apportera des pixels à des endroits où ils ne peuvent pas être déplacés en utilisant 3 à 3 médianes, comme nous l'avons fait dans le premier cas! Et cela signifie que peu importe la taille de la médiane que vous prenez, un tel problème se présentera.

Vous pouvez définir n'importe quel ordre de travail pour votre routine médiane, le problème se présentera mais avec des directions différentes (haut-bas-gauche-droite).

MAIN LINE: Il est impossible de faire le même travail avec un masque médian plus grand, car cela donnera aux pixels plus de liberté de mouvement, alors ils l'ont quand deux filtres médians ultérieurs de 3 sur 3 sont appliqués.

Eh bien, j'espère avoir été assez clair. Juste une direction pour y penser. Le problème peut être que ma solution n'est pas vraiment connectée au processus d'image et plus à certaines fonctionnalités procédurales de l'algorithme.


la source