Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 05, 2025 13:29

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Gaussian Blur
BeitragVerfasst: Mi Jun 08, 2011 16:35 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich implementiere grad einen Gaussian Blur Filter, klappt vom grund prinzip her auch wunderbar.

Habe mich dabei an Wikipedia Orientiert:
http://en.wikipedia.org/wiki/Gaussian_blur

In der Formel oben gibt es diese "standard deviation", da verstehe ich nicht so ganz was das ist, bzw wie diese sich ergibt..
Ich würde den GaussianBlur gern einfach so ähnlich wie in Photoshop haben, das man einen Radius angibt und dementsprechend das Bild geblur'ed wird.

Ich denke der Radius ergibt sich einfach aus dem x in der obersten Formel, also wenn ich einen Radius von 5 habe, geht der x-wert von -5 bis +5.

Aber, egal wie hoch ich den Radius dann einstelle, das bild wird kaum unschärfer. Das ist aber wenn man sich das was als Kernel rauskommt anschaut auch nicht verwunderlich... alles ausser die mittleren drei werte sind zahlen niedriger als 0.01..

Hab schon mit der "standard deviation" rumgespielt, aber irgendwie bekomme ich keinen brauchbareren Kernel heraus.

Weiß jemand wie Photoshop den Kernel für den GaussBlur berechnet?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Gaussian Blur
BeitragVerfasst: Mi Jun 08, 2011 17:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Schon http://wiki.delphigl.com/index.php/shader_blur2 angeschaut? Die Gauss-Funktion basiert auf der e-Funktion und wird daher niemals Null. Streng genommen musst du sie immer von -oo bis oo auswerten. Trotzdem, das Sigma in der Gauss-Funktion ist im wesentlichen der Radius, nur eben nicht 1:1. Lass dir die Funktion ausgeben und dann musst du überlegen wo die Werte so klein sind das du sie abschneidest. Im obigen Shader habe ich sigma = 3.2 für einen -5...5 Kernel genommen.

Zitat:
alles ausser die mittleren drei werte sind zahlen niedriger als 0.01..

Zeig mal deinen Quellcode, vielleicht wertest du ja die Funktion falsch aus oder sowas.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Gaussian Blur
BeitragVerfasst: Mi Jun 08, 2011 17:18 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Aah.. okay, dann war das einfach mein fehler. Ich ging irgendwie davon aus das dieses Sigma nicht über 1.0 sein darf.

Dann klappt doch alles, tausend dank! :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]