Vektor-Medianfilter
# Vektor-Medianfilter

Der Vektor-Medianfilter ist ein Glättungsfilter, der in der Digitalen Bildverarbeitung für Farbbilder verwendet wird. Beim Vektor-Medianfilter wird jedes Pixel als ein Vektor angesehen, der die Werte aller Farbkanäle an dieser Stelle enthält. Er findet z. B. zur Reduktion von Rauschen in geophysikalischen Daten oder zur Bildrestauration von Farbbildern Verwendung. In der Fernsehtechnik wird er zur Reduktion von Cross Luminance und Cross Color verwendet.

## Berechnung

Der Median ist eine Kennzahl aus der Statistik, der nur sinnvoll ist, wenn die zu untersuchenden Elemente in eine nach Werten geordnete Reihenfolge gebracht werden können. Bei Grautonbildern ist dies gegeben, wodurch sich der Medianfilter als eine mögliche Operation darstellt. Bei mehrkanäligen Bildern ist es nur möglich, den Medianfilter auf alle Farbkanäle separat anzuwenden und anschließend die Kanäle zu einem Bild zusammenzuführen. Dabei können jedoch neue Farben entstehen und dadurch das Bild verfälschen. Eine Möglichkeit, dieses Problem zu lösen, ist die Pixel der Farbkanäle als zusammenhängenden Vektor zu sehen und von diesen Vektoren den Vektor-Median zu ermitteln. Da sich mehrdimensionale Elemente in keine sinnvolle Werte-Reihenfolge bringen lassen, wird eine alternative Berechnung des Median als Grundlage genommen.
Dabei wird ein Datensatz $X$ mit $N$ Elementen betrachtet. Aus diesem Datensatz wird von einem Wert $x_{j}$, der an jeder Stelle in $X$ liegen kann, jeder Wert $x_{i}$ abgezogen. Der Betrag dieser Differenz wird aufsummiert. Das $x_{j}$, welches die Summe minimiert, ist der Median ${\tilde {x}}$.
    ${\begin{aligned}\sum _{i=1}^{N}{|{\tilde {x}}-x_{i}|}\leq \sum _{i=1}^{N}{|x_{j}-x_{i}|}\end{aligned}}$
    ${\begin{aligned}{\tilde {x}}=\arg \min _{x_{j}\in X}\sum _{i=1}^{N}{|x_{j}-x_{i}|}\end{aligned}}$
Die erste Formel, nach Burger und Burge, beschreibt die Relation des Median zu den anderen Werten aus dem Datensatz $X$. Die zweite Formel, nach Vardavoulia und Andreadis, ist die explizite Darstellung des Medians. Dabei muss $N$ ungerade sein, um ein eindeutiges Ergebnis zu erhalten.
Diese Art der Berechnung lässt sich auf mehrdimensionale Fälle verallgemeinern. Der Vektor ${\vec {x}}_{i}$ wird wie bei der Medianberechnung von dem beliebig gewählten Element ${\vec {x}}_{j}$ abgezogen. Im mehrdimensionalen Fall wird die Differenz bezüglich einer p-Norm normiert und über alle $i$ aufsummiert. Der Vektor-Median ${\vec {x}}_{\text{VM}}$ ist dabei dasjenige Element aus $X$, das die Summe aus normierten Differenzen minimiert.
    ${\begin{aligned}\sum _{i=1}^{N}{\|{\vec {x}}_{\text{VM}}-{\vec {x}}_{i}\|_{p}}\leq \sum _{i=1}^{N}{\|{\vec {x}}_{j}-{\vec {x}}_{i}\|_{p}}\end{aligned}}$
    ${\begin{aligned}{\vec {x}}_{\text{VM}}=\arg \min _{{\vec {x}}_{j}\in X}\sum _{i=1}^{N}{\|{\vec {x}}_{j}-{\vec {x}}_{i}\|_{p}}\end{aligned}}$
Die p-te Norm ist dabei ein Parameter, der je nach Anwendung gewählt wird. Am Häufigsten werden von der $L_{p}$-Norm die Normen $L_{1}$, $L_{2}$ und $L_{\infty }$ verwendet.

## Variationen

Der Vektor-Medianfilter ist ein sehr rechenintensiver Operator. Es gibt aber mehrere Ansätze, einen beschleunigten Algorithmus bezüglich einer Norm zu erhalten, wie z. B. nach Barni.
Darüber hinaus gibt es noch Variationen, die für spezielle Aufgabenstellungen sinnvoll sind.

### Erweiterter Vektor-Medianfilter

Der Vektor-Median ist per Definition immer ein Wert aus dem Filterbereich. Es ist jedoch möglich, dass er die Summe nicht minimiert. Eine sinnvolle Erweiterung ist der Mittelwertfilter, da er optimal zur Reduktion von weißem Rauschen geeignet ist. Deswegen wird die Rechnung auch bezüglich des vektoriellen Mittelwertes ${\vec {x}}_{\text{ave}}$ berechnet. Die Rechnung erfolgt mit dem vektoriellen Mittelwert in gleicher Weise wie mit den übrigen Elementen aus dem Datensatz. Der erweiterte Vektor-Median ${\vec {x}}_{\text{EVM}}$ ist dann der vektorielle Mittelwert, wenn die Summe kleiner ist als die des Vektor-Median. Der vektorielle Mittelwert berechnet sich aus der Summe der Vektoren, dividiert durch deren Anzahl.
    ${\vec {x}}_{\text{EVM}}={\begin{cases}{\vec {x}}_{\text{ave}}&{\text{für }}\sum _{i=1}^{N}{\|{\vec {x}}_{\text{ave}}-{\vec {x}}_{i}\|}\leq \sum _{i=1}^{N}{\|{\vec {x}}_{\text{VM}}-{\vec {x}}_{i}\|}\\{\vec {x}}_{\text{VM}}&{\text{sonst}}\end{cases}}$
    ${\begin{aligned}{\vec {x}}_{\text{ave}}={\frac {1}{N}}\sum _{i=1}^{N}{\vec {x}}_{i}\end{aligned}}$

### Gewichteter Vektor-Medianfilter

Um die Variabilität zu erhöhen, werden die Werte im Filterbereich mit Gewichten $w_{i}$ belegt, wobei $i$ die Position im Datensatz repräsentiert. Die Berechnung des gewichteten Vektor-Medianfilters ${\vec {x}}_{\text{WVM}}$ erfolgt analog zum gewöhnlichen Vektor-Medianfilter.
    ${\begin{aligned}\sum _{i=1}^{N}{w_{i}\|{\vec {x}}_{\text{WVM}}-{\vec {x}}_{i}\|}\leq \sum _{i=1}^{N}{w_{i}\|{\vec {x}}_{j}-{\vec {x}}_{i}\|}\end{aligned}}$