9.2. Faltungsmatrix

9.2.1. Wirkungsweise

Dies ist eher die Domäne von Mathematikern, denn die meisten Filter verwenden eine Faltungsmatrix. Mit dem Faltungsmatrix-Filter können Sie, Fantasie vorausgesetzt, ein eigenes Filter bauen.

Was ist nun aber eine Faltung? Eine ungefähre Vorstellung können Sie auch ohne die mathematischen Werkzeuge bekommen, die nur wenigen Eingeweihten zugänglich sind: Eine Faltung ist eine Anwendung einer Matrix auf eine andere, die Kern genannt wird.

Das Faltungsmatrix-Filter verwendet eine erste Matrix, auf welche das Bild angewendet wird. Das Bild ist eine zweidimensionale Pixelmenge in einem rechtwinkligen Koordinatensystem. Der verwendete Kern hängt vom gewünschten Ergebnis ab.

GIMP uses 5×5 or 3×3 matrices. We will consider only 3×3 matrices, they are the most used and they are enough for all effects you want. If all border values of a kernel are set to zero, then system will consider it as a 3×3 matrix.

Das Filter betrachtet nacheinander jedes Pixel des Bildes. Für das aktive Pixel, das wir hier Initialpixel nennen wollen, und seine 8 Nachbarpixel wird eine Multiplikation mit den entsprechenden Elementen des Kernes durchgeführt. Die Ergebnisse dieser Multiplikationen werden aufsummiert und als neuer Wert des Initialpixels übernommen.

Die nachfolgende Abbildung verdeutlicht den Ablauf:

Auf der linken Seite sehen Sie das Bild, als Matrix dargestellt. Die Farbwerte werden durch Zahlen repräsentiert. Das aktuell bearbeitete Pixel ist rot umrandet. Der Bereich, auf den der Kern angewendet wird, ist grün umrandet. In der Mitte des Bildes sehen Sie den Kern. Auf der rechten Seite das bearbeitete Pixel nach Anwendung des Kerns, also das Ergebnis der Faltung.

Was ist nun genau passiert? Das Filter liest, von links nach rechts, Zeile für Zeile alle Werte des Bereiches, auf das der Kern angewendet wird. Dabei werden die Werte der Bildmatrix mit den korrespondierenden Werten des Kerns multipliziert und die Ergebnisse addiert. Welchen Wert erhält also das aktuell bearbeitete Pixel? Nun, die Antwort ist 42: (40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42. (Natürlich führt das Filter die Berechnungen mit Hilfe einer Kopie durch). Das sichtbare Ergebnis bei diesem Kern ist, dass jedes Pixel eine Position nach unten verschoben wird.

9.2.2. Activating the Filter

This filter is found in the main menu under FiltersGenericConvolution Matrix….

9.2.3. Eigenschaften

Abbildung 17.172. Eigenschaften für das Filter Faltungsmatrix

Eigenschaften für das Filter „Faltungsmatrix“

Presets, Input Type, Clipping, Blending Options, Vorschau, Merge filter, Split view
[Anmerkung] Anmerkung

These options are described in Abschnitt 2, „Gemeinsame Funktionsmerkmale“.

Matrix

This is the 5×5 kernel matrix: you enter wanted values directly into boxes.

Divisor

The result of previous calculation will be divided by this divisor. You will hardly use anything else than 1, which leaves results unchanged, and 9 or 25 according to matrix size, which gives the average of pixel values. The divisor can only be changed when Normalize is unchecked.

Versatz

This value is added to the division result. This is useful if result may be negative. This offset may be negative. It can only be changed when Normalize is unchecked.

Kanäle

Here you can select which channels the filter should change.

Normalize

Wenn diese Eigenschaft des Filters aktiviert ist, werden die Werte für Divisor und Versatz automatisch optimal gewählt.

Alpha-Gewichtung

Wenn diese Eigenschaft nicht aktiviert ist, wird ein im Bild vorhandener Alphakanal nicht in die Berechnung einbezogen. Dies kann zu Artefakten im Bild führen, wenn eine Weichzeichnung durch die Faltungsmatrix vorgenommen wird.

Rand

When the initial pixel is on a border, a part of the kernel is outside the image. You have to decide what the filter should do:

Abbildung 17.173. Border examples

Border examples

Source image

Border examples

None border

Border examples

Clamp border

Border examples

Loop border


None

This part of the kernel is not taken into account.

Clamp

Die Pixel am Rand werden nicht bearbeitet und abgeschnitten.

Loop

This part of the kernel will be affected by pixels of the opposite border, so pixels disappearing from one side reappear on the other side.

Black

Pixels on borders are changed to black.

White

Pixels on borders are changed to white.

9.2.4. Anwendungsbeispiele

Der Entwurf von Kernen erfordert spezielle mathematische Kenntnisse. Die folgenden Beispiele enthalten Kerne, die Sie ausprobieren können, auch wenn Sie kein Diplom in höherer Mathematik erworben haben:

Abbildung 17.174. Schärfen

Schärfen
Schärfen

Abbildung 17.175. Weichzeichnen

Weichzeichnen
Weichzeichnen

Abbildung 17.176. Kanten verstärken

Kanten verstärken
Kanten verstärken

Abbildung 17.177. Kanten erkennen

Kanten erkennen
Kanten erkennen

Abbildung 17.178. Relief

Relief
Relief