Convolution-Filter: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K (→Convolution-Filter) |
Flash (Diskussion | Beiträge) K (→Convolution-Filter) |
||
Zeile 1: | Zeile 1: | ||
== Convolution-Filter == | == Convolution-Filter == | ||
− | Ein ''Convolution-Filter'' ist ein ein- bzw. zweidimensionales Array, dessen Werte ''Gewichtungen'' darstellen | + | In der Bildverarbeitung spricht man auch von ''Faltungskernen'', in Gimp ist der Begriff ''Faltungsmatrix'' üblich. |
+ | |||
+ | Ein ''Convolution-Filter'' ist ein ein- bzw. zweidimensionales Array, dessen Werte ''Gewichtungen'' darstellen. | ||
Bei Ausführung der Filterung wird das Array Pixel für Pixel auf ein Bild bzw. eine Textur anwendet. Dabei werden die Werte im Array mit den Farben des Bildes multipliziert und zusammenaddiert. | Bei Ausführung der Filterung wird das Array Pixel für Pixel auf ein Bild bzw. eine Textur anwendet. Dabei werden die Werte im Array mit den Farben des Bildes multipliziert und zusammenaddiert. | ||
+ | |||
Ist z.B. ein 3x3-Array als Filterkernel gesetzt, so wird dieser auf jedes Pixel und seine 8 Nachbarpixel um diesen herum angewendet. | Ist z.B. ein 3x3-Array als Filterkernel gesetzt, so wird dieser auf jedes Pixel und seine 8 Nachbarpixel um diesen herum angewendet. | ||
Damit lassen sich interessante Effekte wie z.B. Kontraste, Schärfung, Weichzeichnen, finden von Kanten, [[Embossing]] oder [[Glowing]] erzielen. | Damit lassen sich interessante Effekte wie z.B. Kontraste, Schärfung, Weichzeichnen, finden von Kanten, [[Embossing]] oder [[Glowing]] erzielen. | ||
+ | |||
+ | |||
+ | == Beispiel Faltungskerne == | ||
+ | |||
+ | ===Tiefpass / Mittelwert=== | ||
+ | 1 1 1 | ||
+ | 1 1 1 | ||
+ | 1 1 1 | ||
+ | |||
+ | ===Schärfung=== | ||
+ | 0 -1 0 | ||
+ | -1 6 -1 | ||
+ | 0 -1 0 | ||
+ | |||
+ | ===Embossing (Kantenfindung)=== | ||
+ | Richtung links oben | ||
+ | 1 0 0 | ||
+ | 0 0 0 | ||
+ | 0 0 -1 | ||
+ | |||
+ | Richtung rechts unten | ||
+ | -1 0 0 | ||
+ | 0 0 0 | ||
+ | 0 0 1 | ||
== OpenGL-Befehle == | == OpenGL-Befehle == | ||
[[glConvolutionFilter1D]], [[glConvolutionFilter2D]], [[glConvolutionParameter]], [[glGetConvolutionFilter]], [[glGetConvolutionParameter]] | [[glConvolutionFilter1D]], [[glConvolutionFilter2D]], [[glConvolutionParameter]], [[glGetConvolutionFilter]], [[glGetConvolutionParameter]] |
Version vom 10. Januar 2006, 11:26 Uhr
Inhaltsverzeichnis
Convolution-Filter
In der Bildverarbeitung spricht man auch von Faltungskernen, in Gimp ist der Begriff Faltungsmatrix üblich.
Ein Convolution-Filter ist ein ein- bzw. zweidimensionales Array, dessen Werte Gewichtungen darstellen. Bei Ausführung der Filterung wird das Array Pixel für Pixel auf ein Bild bzw. eine Textur anwendet. Dabei werden die Werte im Array mit den Farben des Bildes multipliziert und zusammenaddiert.
Ist z.B. ein 3x3-Array als Filterkernel gesetzt, so wird dieser auf jedes Pixel und seine 8 Nachbarpixel um diesen herum angewendet. Damit lassen sich interessante Effekte wie z.B. Kontraste, Schärfung, Weichzeichnen, finden von Kanten, Embossing oder Glowing erzielen.
Beispiel Faltungskerne
Tiefpass / Mittelwert
1 1 1 1 1 1 1 1 1
Schärfung
0 -1 0 -1 6 -1 0 -1 0
Embossing (Kantenfindung)
Richtung links oben
1 0 0 0 0 0 0 0 -1
Richtung rechts unten
-1 0 0 0 0 0 0 0 1
OpenGL-Befehle
glConvolutionFilter1D, glConvolutionFilter2D, glConvolutionParameter, glGetConvolutionFilter, glGetConvolutionParameter