matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenComputergraphikGauss Filter
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Computergraphik" - Gauss Filter
Gauss Filter < Computergraphik < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Computergraphik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Gauss Filter: Verständnis
Status: (Frage) beantwortet Status 
Datum: 13:14 Do 13.02.2014
Autor: starki

Ich hab mich in das Thema Gauss Filter eingearbeitet, jedoch habe ich noch eine Frage, deren Antwort ich irgendwie nicht finden kann.

Ich nehm jetzt mal als Beispiel eine 3 x 3 Matrix:
1 2 1
2 4 2
1 2 1

Was hat diese Matrix mit der Formel zu tun:

G(x, y) = [mm] \frac{1}{2 \pi \sigma^2} e^{\frac{x^2 * y^2}{2 \sigma^2}} [/mm]

Berechne ich erst G(x,y), lege dann die 3x3-Matrix drauf und wende dann die neu berechnete Matrix auf das Bild an? Oder was haben die beiden Matrizen eigentlich miteinander zu tun? Ich bin da leider noch nicht ganz dahinter gekommen ... :-/

        
Bezug
Gauss Filter: Antwort
Status: (Antwort) fertig Status 
Datum: 15:38 Do 13.02.2014
Autor: Event_Horizon

Hallo!

Stell dir ein schwarz-weiß bild vor, das  nur einen einzelnen weißen Pixel (Helligkeit [mm] B_0=1) [/mm] an der Stelle [mm] (x_0;y_0) [/mm] hat, der Rest soll schwarz (Helligkeit =0) sein.


Der Gaußfilter wird das Bild so verschmieren, daß der weiße Pixel etwas dunkler wird, und die Nachbarpixel etwas heller.

Rechnerisch machst du dir nun ein neues, völlig schwarzes Bild mit genau den gleichen Ausmaßen, und addierst zu jedem einzelnen Pixel mit den Koordinaten (x;y) den Wert [mm] B_0*G(x-x_0;y-y_0) [/mm]  . Also: jeder Pixel bekommt eine Helligkeit, die vom Abstand zu dem ursprünglich weißen Pixel abhängt, wobei das Abstandsgesetz von der Gaußfunktion beschrieben wird.

Beispiel mit [mm] \sigma=\sqrt{\frac{2}{\pi}} [/mm] : Die Gaußfunktion liefert für den Pixel selbst den Wert 1/4 , für die direkten Nachbarpixel links, rechts, drüber  und drunter (Abstand 1 zu dem mittleren Pixel) jeweils den Wert 1/8, und für die direkten diagonalen Nachbarpixel (Abstand [mm] \sqrt{2} [/mm] ) den Wert 1/16. Betrachtet man die nächsten Nachbarn, so bekommen die übernächsten Pixel in horizontaler/vertikaler Richtung (Abstand 2) einen Wert von ca 1/100. und so weiter.

Du siehst, für den einen Pixel des Ursprungsbildes mußt du die Gaußfunktion so oft ausrechnen, wie das Bild Pixel hat.
Schlimmer noch: Hat das Bild nicht nur einen weißen Pixel, mußt du für jeden Pixel des urpsrünglichen Bildes jeweils (!) die  Gaußfunktion für JEDEN Pixel des neuen Bildes ausrechnen. Das ist ein enormer Rechenaufwand.

Aber es gibt zwei Vereinfachungen:
1.: Im Prinzip mußt du nur die acht direkten Nachbarn betrachten, alle Pixel, die weiter entfernt sind, bekommen fast nix mehr ab.
2.: Du weißt jetzt, welcher Anteil der Helligkeit des ursprünglichen Pixels wie auf die Nachbarpixel übertragen wird. Dieser Anteil wird eben m´durch [mm] {\frac {1}{16}}{\begin{bmatrix}1&2&1\\2&4&2\\1&2&1\end{bmatrix}} [/mm] beschrieben: Der Pixel mit den gleichen Koordinaten wie im Ursprungsbild erhält 4/16=1/4 der Helligkeit, die rechts und links daneben 2/16=1/8 und so weiter.


Tatsächlich kann man sich das noch einfacher machen:

Nimm eine Kopie des Urprungbildes, und multipliziere die Helligkeit jedes Pixels mit 1/4. Das ist dein(unfertiges) neues Bild. Dann multipliziere eine Kopie des Urpsungsbildes mit 1/8, und addiere diese Bild auf das neue. Und zwar einmal um 1 Pixel nach links, einmal um 1 Pixel nach rechts, ... oben...unten verschoben. Und dann das gleiche nochmal mit 1/16 und jeweils diagonal verschoben. Sowas geht rasend schnell!


Bezug
                
Bezug
Gauss Filter: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:22 Do 13.02.2014
Autor: starki

OK, mir ist jetzt einiges klarer geworden. Danke :)

Nun will ich mal ein eigenes Beispiel machen, um zu zeigen, was ich kapiert habe:

also ich habe folgende Bildmatrix:

5 3 8
2 1 7
6 9 9

Nun will ich ja den Gaußfilter darauf anwenden. Wenn ich also die Formel G(x, y) anwenden will, müsste ich quasi 9 neue Bilder ausrechnen, und jedes Bild hat eine Laufzeit von 9 Einheiten => Laufzeit $ [mm] O(n^n) [/mm] $.

Aber man kann es sich einfacher machen, wie du ja schon erklärt hast, da je weiter ein Punkt vom Ursprung entfernt ist, desto geringer fällt der Summand auf, der zu dem Pixel hinzuaddiert wird.

D.h. wir verwenden nun die Matrix:

1 2 1
2 4 2
1 2 1

(In diesem Fall nur dir 3x3-Matrix, wie die anderen Matrizen aussehen, das weiß ich ;)).

Aber d.h. nun, ich berechne diese wie einen normalen Filter, d.h. meine Matrix mit den Rändern sieht nun so aus:

5 5 3 8 8
5 5 3 8 8
2 2 1 7 7
6 6 9 9 9
6 6 9 9 9

Also ich hab die Ränder jetzt so gewählt. Nun Berechne ich den Punkt (0, 0):

1 * 5 + 2 * 5 + 1 * 3 +
2 * 5 + 4 * 5 + 2 * 3 +
1 * 2 + 2 * 2 + 1 * 1 = 62

Und diesen Wert teilen wir durch 16 => ergibt 3,875, also ungefähr 4. D.h. meine neue Matrix nach der ersten Berechnung sieht so aus:

5 5 3 8 8
5 4 3 8 8
2 2 1 7 7
6 6 9 9 9
6 6 9 9 9

Das es auch einfacher geht, hab ich auch gelesen, aber ich wollte auch wissen, ob der Weg, den ich eingeschlagen habe, auch richtig ist ...

EDIT:
Noch eine Frage. Jetzt hab ich im Internet gelesen, man kann aus der G(x,y)-Formel auch eine 3x3-Matrix erstellen. Kann ich die nicht auch auf die Weise auf meine Bildmatrix anwenden wie ich das gerade eben auch getan hab?

Bezug
                        
Bezug
Gauss Filter: Antwort
Status: (Antwort) fertig Status 
Datum: 17:58 Do 13.02.2014
Autor: Event_Horizon

Hallo!

ich würde sagen, du hast es verstanden.
Nur, um sicher zu gehen: Für diese längere Rechnung  "...=62" verwendest du natürlich immer die Werte aus dem ursprünglichen Bild


Zu deinem EDIT: Man kann nicht nur, sondern diese Matrix hier IST bereits die Matrix aus der Funktion G(x;y). man hat quasi für x und y die Werte -1, 0 und +1 eingesetzt, und diese Werte als Tabelle aufgeschrieben. Setzt man [mm] \sigma [/mm] auf den Wert, den ich oben benutzt habe, kommt das recht genau hin.

Ganz genau genommen sind die Zahlen in deiner Matrix nicht exakt die, die bei der Berechnung von G(x,y) 'raus kommen, aber der Unterschied ist gering, und diese Werte sind schön glatt.



Für andere [mm] \sigma [/mm] sieht die Matrix auch anders aus. Für ein extrem keines Sigma erhälst du irgendwann [mm] \pmat{0&0&0 \\ 0&1&0 \\ 0&0&0} [/mm] , womit der Filter keinen Effekt hat. Für große [mm] \sigma [/mm] dagegen kann es sein, daß ein Pixel nicht nur seine direkten Nachbarn beeinflusst, sondern daß auch die übernächsten Nachbarn was abbekommen. In dem Fall reicht eine 3x3-Matrix nicht mehr, du brauchst 5x5 oder gar 7x7.

Übrigens, eine wichtige Eigenschaft sollte sein, daß der Filter das Bild nicht heller oder dunkler macht. Die Helligkeit eines ursprünglichen Pixels wird zwar in seiner Umgebung verteilt, die Summe soll aber gleich bleiben. Vor deiner Matrix steht [mm] \frac{1}{16}. [/mm] Das bedeutet, daß auf die verschiedenen Pixel eben 4/16, 2/16 und 1/16 der Helligkeit des ursprünglichen Pixels addiert wird. In der Summe ist das =1, wie es sein sollte.

Ich hab mal ein Bild für verschiedene [mm] \sigma [/mm] gemacht. Die blauen Werte sind die Funktionswerte G(x,y). Die Farbe stellt die Helligkeit dar, allerdings anhand einer logarithmischen Skala. Im ersten Bild ist [mm] \sigma [/mm] klein, es gibt nur eine geringe Verschmierung. Im mittleren habe ich für [mm] \sigma [/mm] den Wert von oben genommen, daher erkennst du halbwegs die Zahlenwerte der Matrix wieder (den Faktor 1/16 nicht vergessen!)

Im letzten Fall ist [mm] \sigma [/mm] recht groß, hier siehst du, daß ggf eine 5x5-Matrix besser wäre.

[Dateianhang nicht öffentlich]

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Computergraphik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]