Convolution-Filter: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Convolution-Filter)
K (Beispiel Faltungskerne: Versuch durch direktes Nebeneinander den Effekt besser zu verdeutlichen)
Zeile 19: Zeile 19:
 
  1/9 1/9 1/9
 
  1/9 1/9 1/9
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_Mittelwert.jpg]]
 
[[Bild:Conv_Mittelwert.jpg]]
  
Zeile 26: Zeile 27:
 
   0 -1  0
 
   0 -1  0
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_Schaerfung.jpg]]
 
[[Bild:Conv_Schaerfung.jpg]]
  
Zeile 34: Zeile 36:
 
   -1 -1 -1  
 
   -1 -1 -1  
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_Horizontal.jpg]]
 
[[Bild:Conv_Horizontal.jpg]]
  
Zeile 43: Zeile 46:
 
  0 0 -1
 
  0 0 -1
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_Embossing1.jpg]]
 
[[Bild:Conv_Embossing1.jpg]]
  
Zeile 51: Zeile 55:
 
   0 0 1
 
   0 0 1
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_Embossing2.jpg]]
 
[[Bild:Conv_Embossing2.jpg]]
  
Zeile 59: Zeile 64:
 
   1  2  1  
 
   1  2  1  
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_Sobel.jpg]]
 
[[Bild:Conv_Sobel.jpg]]
  
Zeile 71: Zeile 77:
 
  0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067  
 
  0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067  
  
 +
[[Bild:Anaconda.jpg|Originalbild ohne Filter]]
 
[[Bild:Conv_GaussianBlur2.jpg|frame|none|Gaussian Blur mit Bias 0.01]]
 
[[Bild:Conv_GaussianBlur2.jpg|frame|none|Gaussian Blur mit Bias 0.01]]
  

Version vom 19. September 2007, 00:30 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 der Mittelpunkt auf jedes Pixel gesetzt und die 8 Nachbarpixel um diesen herum mit den Werten in der Matrix verrechnet. Das Ergebnis dieser Rechnung wird in das Pixel gespeichert was im Zentrum der Matrix lag.

Damit lassen sich interessante Effekte wie z.B. Kontraste, Schärfung, Weichzeichnen, Kantenextraktion(Embossing) oder Glowing erzielen.

Beispiel Faltungskerne

Originalbild ohne Filter


Tiefpass / Mittelwert

1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9

Originalbild ohne Filter Conv Mittelwert.jpg

Schärfung

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

Originalbild ohne Filter Conv Schaerfung.jpg


Horizontale Schärfung

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

Originalbild ohne Filter Conv Horizontal.jpg


Embossing (Kantenfindung)

Richtung links oben

1 0 0
0 0 0
0 0 -1

Originalbild ohne Filter Conv Embossing1.jpg


Richtung rechts unten

-1 0 0
 0 0 0
 0 0 1

Originalbild ohne Filter Conv Embossing2.jpg


Sobel-Filter

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

Originalbild ohne Filter 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 

Originalbild ohne Filter

Gaussian Blur mit Bias 0.01

OpenGL-Befehle

glConvolutionFilter1D, glConvolutionFilter2D, glConvolutionParameter, glGetConvolutionFilter, glGetConvolutionParameter


Siehe Auch

Beschreibung einiger Faltungskerne (englisch)