# Laplace-Filter

Der Laplace-Filter bzw. diskrete Laplace-Operator ist ein Filter zur Kantendetektion, der den Laplace-Operator (Summe der beiden reinen zweiten Ableitungen) approximiert:
    $\Delta f={\frac {\partial ^{2}f}{\partial x^{2}}}+{\frac {\partial ^{2}f}{\partial y^{2}}}$
Unter einer Kante versteht man nun eine Kurve ${\vec {g}}(t)$, entlang derer der Gradient des Bildes $f$ immer in Normalenrichtung zeigt (das heißt eine Isolinie):
    $f({\vec {g}}(t))\implies {\frac {df}{dt}}=\nabla f|_{{\vec {g}}(t)}\cdot {\frac {\partial {\vec {g}}}{\partial t}}=0$
Das Vektorfeld $\nabla f$ ist also im Bereich der Kante quellenfrei. Eine Kante kann sich also nur einstellen, falls folgende Gleichung erfüllt ist:
    $0=\nabla \cdot (\nabla f)=\Delta f$
Man sucht also die Nulldurchgänge eines Laplace-gefilterten Bildes. Allerdings ist hierbei zu beachten, dass auch $\Delta f$ homogener Flächen gleich null sind. Der Laplace-Filter liefert also nur eine Obermenge der möglichen Kanten.

## Funktionsweise

In der nebenstehenden Abbildung ist ein verrauschtes Signal gezeigt, von dem die zweite Ableitung berechnet wurde. Die Kante taucht hier als Nulldurchgang des Signals auf. Auf ein diskretes Signal g$_n$ bzw. g$_{nm}$ wird der Laplace-Operator über eine Faltung angewendet. Dabei kann man folgende einfache Faltungsmasken verwenden (siehe Diskreter Laplace-Operator):
    1D: $\quad {\vec {D}}_{x}^{2}\;={\begin{bmatrix}1&-2&1\end{bmatrix}}$
    2D: $\quad \mathbf {D} _{xy}^{2}={\begin{bmatrix}0&1&0\\1&-4&1\\0&1&0\end{bmatrix}}$
Für das 2D-Filter gibt es noch eine zweite Variante, welche im Unterschied zur oberen Variante zusätzlich auf 45°-Kanten anspricht:
    2D: $\quad \mathbf {D} _{xy}^{2}={\begin{bmatrix}1&1&1\\1&-8&1\\1&1&1\end{bmatrix}}$
Diese Faltungsmasken erhält man durch die Diskretisierung der Differenzenquotienten. Am Ende des Artikels sieht man Beispiele für die Anwendung des Laplace-Filters.

## Übertragungsfunktion und Isotropie des Filters

Die Übertragungsfunktion (Fourier-Transformierte) des idealen Laplace-Operators Δ lautet:
    $\Delta ={\frac {\partial ^{2}}{\partial x^{2}}}+{\frac {\partial ^{2}}{\partial y^{2}}}\ \ \ \ \circ -\bullet \ \ \ \ -4\pi ^{2}|{\vec {k}}|^{2}$
Ein diskretisierter Laplace-Operator muss diese parabolische Übertragungsfunktion möglichst gut approximieren.
Die Abbildung rechts zeigt die Übertragungsfunktion des ersten 2D-Laplace-Filters. Man sieht deutlich die Anisotropie und den Hochpass-Charakter der Übertragungsfunktion. Als Formel lautet sie:
    ${\hat {l}}({\vec {k}})=-4\sin ^{2}(\pi k_{x}/2)-4\sin ^{2}(\pi k_{y}/2)$
Sie zeigt um ${\vec {k}}=0$ Ähnlichkeit zur idealen Übertragungsfunktion des Laplace-Operators.
Man kommt zu einer isotroperen Approximation des Laplace-Operator, wenn man eine etwas andere Darstellung des Laplace-Filters wählt:
    $4({\mathcal {B}}^{2}-{\mathcal {I}})={\frac {1}{4}}{\begin{bmatrix}1&2&1\\2&-12&2\\1&2&1\end{bmatrix}}$
Dabei ist ${\mathcal {B}}^{2}$ der 3×3-Binomialfilter (Glättungsfilter) und ${\mathcal {I}}$ ein „Einheits-Filter“/δ-Puls, der das Bild auf sich selbst abbildet (Die Punktantwort ist überall null, bis auf das zentrale Pixel. Dort ist sie 1). Die Übertragungsfunktion dieses Filters lautet:
    ${\hat {l}}({\vec {k}})=-4\cos ^{2}(\pi k_{x}/2)\cdot \cos ^{2}(\pi k_{y}/2)-4$
Diese Übertragungsfunktion ist ebenfalls in der Abbildung rechts enthalten. Es zeigt sich, dass sie wesentlich isotroper ist als die erste Version.

## Beispielbilder

* Originalbild
* Bild gefiltert mit der einfachsten Filtermaske (Anklicken zum Vergrößern)
* Bild gefiltert mit der zweiten Filtermaske (Anklicken zum Vergrößern)

## Software

Der Laplace-Filter kann mit dem Grafikprogramm GIMP über die Menüaufrufe Filter → Kanten finden → Kanten ausgeführt werden. In den freien Bildverarbeitungsbibliotheken Scikit-image und OpenCV ist er ebenfalls implementiert.