Medianfilter nacheinander

8

Bearbeiten Sie ein Bild, indem Sie die Medianfilterung in einem 3x3-Fenster durchführen. Bearbeiten Sie das resultierende Bild, indem Sie erneut die Medianfilterung in einem 3x3-Fenster durchführen. Kann das resultierende Bild aus einer einzelnen Medianfilterung erhalten werden?

Mein erster Gedanke ist, dass es mit der richtigen Maske gemacht werden kann. vielleicht ein Median neben einem Median. aber ich bin mir nicht sicher.

Gilad
quelle
Der Medianfilter ist nicht linear. Sie können nicht mehrere Medianfilteroperationen zu einer einzigen Operation kombinieren.
Sgarizvi
@ sgar91 gut können Sie, aber es wäre nicht so einfach wie der Median von a5x5 Fenster.
Oliver Charlesworth
@ sgar91 es sind nicht 3 Operationen. es ist 2. Zuerst machst du den ersten Median und danach das Ergebnis. du machst den nächsten. Bitte erklären Sie, warum es wichtig ist, dass es nicht linear ist.
Gilad
@OliCharlesworth kannst du mir sagen, wie das gemacht werden kann?
Gilad
1
Leute, hier gibt es ein paar Dinge zu beachten. 1. Dies ist eine Programmierfrage und der Moderator ist ein Idiot. 2. Es gibt einen Punkt in einer einzelnen 5x5-Operation, selbst wenn es nur eine Kaskade von zwei 3x3 wäre. Dies liegt daran, dass es sich um einen einzelnen Durchgang durch das Bild handelt und eine bessere Cache-Lokalisierung bietet als zwei separate Durchgänge.
Thang

Antworten:

2

Die Antwort ist nein:

Siehe die folgenden Umordnungen von Zahlen von 1 bis 81. Im linken Fall ist der 3x3-Median von 3x3-Medianen

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

im richtigen Fall Median

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

Während der Median des gesamten 9x9-Blocks in beiden Fällen 41 beträgt. Geben Sie hier die Bildbeschreibung ein


quelle
2

ok also hier ist die Antwort von meinem Prof. Hagit Hal - oder:

Wenn es eine solche Maske gibt, muss sie 5x5 sein.
Ein Gegenbeispiel zeigt, dass dies nicht sein kann.
Betrachten Sie den 5x5-Bereich eines Bildes: Wir füllen ihn mit den Werten 0 ... 0,1,2 ... 2 (12 0 und 12 2).
Der 5x5-Median in diesem Bereich ergibt 1, unabhängig davon, wo Sie die Zahlen platzieren.
Jetzt bauen wir die 5x5-Region so auf, dass wir NICHT 1 erhalten, wenn wir den Median auf den Median anwenden. Stellen Sie
Folgendes ein:

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 

Dabei ist x der Rest der Zahlen.
Der erste Durchgang mit Median setzt die obere linke 3x3 auf 0 und so ist die 1 "verloren" und jede Reihenfolge, in
der die restlichen Zahlen platziert werden, bringt die 1 nicht zurück. Der Median in allen anderen
Regionen führt also zu 0 oder 2. Der zweite Durchgang des Medians zeigt also nur Zahlen an, die 0 und 2 sind, und führt NICHT zu 1.

Vielen Dank für Ihre Hilfe

Gilad
quelle
1

Ja, tut mir leid, ich habe falsch über Mittelung statt Median gesprochen.

Mal sehen, was bei der Medianfilterung passiert. Angenommen, Ihre Filterroutine setzt das Bild Zeile für Zeile von oben nach unten fort. Angenommen, es geht in jeder Zeile von links nach rechts. Sie können es so definieren, dass es in beliebiger Reihenfolge abläuft. Es ändert nichts an dem Punkt, den ich hier zu erklären versuche.

Bei einem solchen Spaziergang entsteht ein neues Bild, Pixel für Pixel, das vom Median 3 zu 3 stammt.

1) Wenn wir die erste Medianfilterung durchführen, kann ein Pixel, das sich in der ersten Zeile von oben befindet, in die zweite Zeile (im resultierenden Bild) und nicht in die dritte Zeile wandern (da Meadian 3 gegen 3 nur Pixel für einen Abstand von eins "pushen" kann). .

2) Wenn wir die zweite Medianfilterung durchführen, kann dieses Pixel einen weiteren Schritt nach unten wandern - bis zur dritten Zeile.

Aber was ist mit der Reichweite für Pixel, die sich in Linien nach oben bewegen möchten? Zum Beispiel befindet sich dieses Pixel zu Beginn in der fünften Zeile. Dieser Abstand für dieses Pixel beträgt nur 1 und nicht mehr, da die Out-Routine in Zeilen von oben nach unten verläuft.

Und dies ist nur eine Eigenschaft des Algorithmus.

Jetzt möchten Sie eine größere Medianmaske verwenden. Eine solche Maske gibt Ihnen eine längere Entfernung von unten nach oben von unten nach oben, nicht 1! Dadurch werden Pixel an Stellen gebracht, an denen sie nicht wie im ersten Fall mit 3 zu 3 Medianwerten verschoben werden können! Und dies bedeutet, dass unabhängig von der Größe des Medians, den Sie nehmen, ein solches Problem auftritt.

Sie können eine beliebige Arbeitsreihenfolge für Ihre Medianroutine definieren. Das Problem wird angezeigt, jedoch mit unterschiedlichen Richtungen (oben-unten-links-rechts).

HAUPTLINIE: Es ist unmöglich, dieselbe Arbeit mit einer größeren Medianmaske auszuführen, da Pixel dadurch mehr Bewegungsfreiheit erhalten, als wenn zwei aufeinanderfolgende Medianfilter von 3 zu 3 angewendet werden.

Nun, ich hoffe ich war klar genug. Nur eine Richtung, um darüber nachzudenken. Das Problem kann sein, dass meine Lösung nicht wirklich mit dem Bildprozess und mehr mit einigen prozeduralen Merkmalen des Algorithmus verbunden ist.


quelle