Convolution-Filter: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Beispiel Faltungskerne)
(Beispiel Faltungskerne: Bilder und zusätzliche Beispiele)
Zeile 15: Zeile 15:
 
  1 1 1
 
  1 1 1
  
[[Bild:Conv_Mittelwert.jpg|350px|left]]
+
[[Bild:Conv_Mittelwert.jpg]]
 +
 
  
 
===Schärfung===
 
===Schärfung===
 
   0 -1  0
 
   0 -1  0
  -1  6 -1
+
  -1  5 -1
 
   0 -1  0
 
   0 -1  0
 +
 +
[[Bild:Conv_Schaerfung.jpg]]
 +
 +
 +
====Horizontale Schärfung====
 +
  -1 -1 -1
 +
  2  3  2
 +
  -1 -1 -1
 +
 +
[[Bild:Conv_Horizontal.jpg]]
 +
  
 
===Embossing (Kantenfindung)===
 
===Embossing (Kantenfindung)===
Richtung links oben
+
====Richtung links oben====
 
  1 0 0
 
  1 0 0
 
  0 0 0
 
  0 0 0
 
  0 0 -1
 
  0 0 -1
  
Richtung rechts unten
+
[[Bild:Conv_Embossing1.jpg]]
 +
 
 +
 
 +
====Richtung rechts unten====
 
  -1 0 0
 
  -1 0 0
 
   0 0 0
 
   0 0 0
 
   0 0 1
 
   0 0 1
 +
 +
[[Bild:Conv_Embossing2.jpg]]
 +
 +
 +
====Sobel-Filter====
 +
-1 -2 -1
 +
  0  1  0
 +
  1  2  1
 +
 +
[[Bild:Conv_Sobel.jpg]]
 +
 +
 +
===Gaussian Blur===
 +
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
 +
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
 +
0.00019117 0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117
 +
0.00038771 0.01330373 0.11098164 0.22508352 0.11098164 0.01330373 0.00038771
 +
0.00019117 0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117
 +
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
 +
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
 +
 +
[[Bild:Conv_GaussianBlur2.jpg]]
  
 
== OpenGL-Befehle ==
 
== OpenGL-Befehle ==

Version vom 13. Juni 2006, 18:35 Uhr

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

Conv Mittelwert.jpg


Schärfung

 0 -1  0
-1  5 -1
 0 -1  0

Conv Schaerfung.jpg


Horizontale Schärfung

 -1 -1 -1
  2  3  2
 -1 -1 -1 

Conv Horizontal.jpg


Embossing (Kantenfindung)

Richtung links oben

1 0 0
0 0 0
0 0 -1

Conv Embossing1.jpg


Richtung rechts unten

-1 0 0
 0 0 0
 0 0 1

Conv Embossing2.jpg


Sobel-Filter

-1 -2 -1
 0  1  0
 1  2  1 

Conv Sobel.jpg


Gaussian Blur

0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
0.00019117 0.00655965 0.05472157 0.11098164 0.05472157 0.00655965 0.00019117
0.00038771 0.01330373 0.11098164 0.22508352 0.11098164 0.01330373 0.00038771
0.00019117 0.00655965 0.05472157 0.11098164 0.05472157	0.00655965 0.00019117
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965	0.00078633 0.00002292
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067 

Conv GaussianBlur2.jpg

OpenGL-Befehle

glConvolutionFilter1D, glConvolutionFilter2D, glConvolutionParameter, glGetConvolutionFilter, glGetConvolutionParameter


Siehe Auch

Beschreibung einiger Faltungskerne (englisch)