FreakLab: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
Zeile 2: Zeile 2:
   
 
FreakLab ist ein Matlab-GUI zur Bearbeitung von JPG-Bildern. Es können mathematische Transformationen der Bildgeometrie und der RGB-Farbwerte vorgenommen werden. Dabei entstehen 'freakige' Resultate, daher der Name dieses Tools.
 
FreakLab ist ein Matlab-GUI zur Bearbeitung von JPG-Bildern. Es können mathematische Transformationen der Bildgeometrie und der RGB-Farbwerte vorgenommen werden. Dabei entstehen 'freakige' Resultate, daher der Name dieses Tools.
  +
  +
''Anmerkung: Dieses Tool wurde unter Matlab 7.1.0.246 Service Pack 3 entwickelt und ist daher für diese Version optimiert.''
   
 
== Funktionsweise ==
 
== Funktionsweise ==
   
Es können JPG-Bilder geöffnet, bearbeitet und abgespeichert werden. Das Resultat einer eingegebenen Transformation ist im 'Preview'-Fenster sichtbar. Mit 'Anwenden' wird das Bild im Haupt-Fenster ans Preview angeglichen. Dieses Resultat kann mit 'Okay' übernommen und mit 'Rückgängig verworfen werden. Ansonsten ist die Bedienung des Tools selbsterklärend.
+
Es können JPG-Bilder geöffnet, bearbeitet und abgespeichert werden. Das Resultat einer eingegebenen Transformation ist im ''''Preview''''-Fenster sichtbar. Mit ''''Anwenden'''' wird das Bild im Hauptfenster ans Preview angeglichen. Dieses Resultat kann mit ''''Okay'''' übernommen und mit 'Rückgängig verworfen werden. Ansonsten ist die Bedienung des Tools selbsterklärend.
   
Hier nun eine Beschreibung der hinter den 4 verschiedene Bedienfeldern stehenden Mathematik:
+
Hier nun eine Beschreibung der hinter den 4 verschiedenen '''Bedienfeldern''' stehenden Mathematik:
   
 
'''1) Lineare Abbildung'''
 
'''1) Lineare Abbildung'''
   
Jedem Pixel eines Bildes entspricht ein Element eines 2D-Vektorraumes. Isomorphismen zwischen zwei solchen Räumen können durch 2 x 2 Matrizen dargestellt werden. Dementsprechend kann eine Matrix auf ein Bild eine Lineare Transformation ausüben. Dies kann Stauchungen, Streckungen,Verdrehungen oder Spiegelungen des Bildes bedeuten. Auch Mischungen dieser Elementaroperationen sind möglich. In diesem Bedienfeld kann der Benutzer verschiedene Elemtaroperationen ausüben, deren Stärke durch Slider regelbar ist. Die zugehörige Abbildungsmatrix wird angezeigt und kann auch modifiziert werden, sodass auch allgemeinere Mischabbildungen möglich sind.
+
Jedem Pixel eines Bildes entspricht ein Element eines 2D-Vektorraumes. Isomorphismen zwischen zwei solchen Räumen können durch 2 x 2 Matrizen dargestellt werden. Dementsprechend kann eine Matrix auf ein Urbild eine Lineare Transformation ausüben. Dies kann Stauchungen, Streckungen,Verdrehungen oder Spiegelungen des Bildes bedeuten. Auch Mischungen dieser Elementaroperationen sind möglich. In diesem Bedienfeld kann der Benutzer verschiedene Elemtaroperationen ausüben, deren Stärke durch Slider regelbar ist. Die zugehörige Abbildungsmatrix wird angezeigt und kann auch modifiziert werden, sodass allgemeinere Mischabbildungen möglich sind.
   
 
'''2) Holomorphe Abbildung'''
 
'''2) Holomorphe Abbildung'''
   
In FreakLab_opt1.m entspricht jedem Pixel eines Bildes ein Element eines 2D-Vektorraumes. Hier werden den Pixeln Elemente der komplexen Zahlenebene zugewiesen. Abbildungen zwischen komplexen Zahlenebenen sind komplexe Funktionen. Darunter zeichnen sich die differenzierbaren Funktionen besonders aus. Sie führen zwar keine Linearen Abbildungen mehr aus, jedoch folgt aus der Stetigkeit des Urbildes die (fast-überall-) Stetigkeit des Bildes. Man nennt solche Funktionen auch holomorph. Dieses Skript führt also nunmehr nichtlineare aber weiterhin stetige Bildtransformationen mit interessanten Resultaten aus.
+
Hier werden den Pixeln Elemente der komplexen Zahlenebene zugewiesen. Abbildungen zwischen komplexen Zahlenebenen sind komplexe Funktionen. Darunter zeichnen sich die differenzierbaren Funktionen besonders aus. Sie führen zwar keine Linearen Abbildungen mehr aus, jedoch folgt aus der Stetigkeit des Urbildes die (fast-überall-) Stetigkeit des Bildes. Man nennt solche Funktionen auch holomorph.
   
Eine holomorphe Funktion ist immer unendlich oft differenzierbar und lässt sich durch Potenzreihen darstellen (Laurent-Reihen), also als Summe von Polynomen mit unterschiedlichen Exponenten. Hier kann jede holomorphe Funktion in der Weise approximiert werden, dass bis zu 9 Summanden als Polynome mit unterschiedlichem Vorfaktor, Nullstelle und Exponent eingegeben werden können.
+
Eine holomorphe Funktion ist immer unendlich oft differenzierbar und lässt sich durch Potenzreihen darstellen (Laurent-Reihen), also als Summe von Polynomen mit unterschiedlichen Exponenten. Im Programm kann jede holomorphe Funktion in der Weise approximiert werden, dass bis zu 9 Summanden als Polynome mit unterschiedlichem Vorfaktor, Nullstelle und Exponent eingegeben werden können.
   
 
Der Exponent darf darüber hinaus sogar nichtganzzahlig sein. Außerdem können der Urbild- und der Bild-Zoomfaktor über Slider und Textboxen eingegeben werden. Desweiteren kann auf ein Bild umgeschalten werden, das sich aus einem Urbild ergibt, das periodisch fortgesetzt wird
 
Der Exponent darf darüber hinaus sogar nichtganzzahlig sein. Außerdem können der Urbild- und der Bild-Zoomfaktor über Slider und Textboxen eingegeben werden. Desweiteren kann auf ein Bild umgeschalten werden, das sich aus einem Urbild ergibt, das periodisch fortgesetzt wird
Zeile 23: Zeile 25:
 
'''3) Allgemeine komplexe Abbildung'''
 
'''3) Allgemeine komplexe Abbildung'''
   
In FreakLab_opt2.m wird das Konzept der komplexen Abbildung erklärt und verwendet. Dieses Skript funktioniert im Prinzip gleich, nur das hier statt holomorphen Funktionen, die die Stetigkeit des Urbildes erhalten, hier in Formelzeilen beliebige komplexe Funktionen in Matlab-Syntax eingegeben werden können, also auch nichtstetige. Das macht ist weniger anschaulich, jedoch nimmt die Vielfalt an erzielbaren Effekten erheblich zu.
+
Funktioniert im Prinzip gleich, wie das vorige Bedienfeld, nur das statt holomorphen Funktionen, die die Stetigkeit des Urbildes erhalten, hier in Formelzeilen beliebige komplexe Funktionen in Matlab-Syntax eingegeben werden können, also auch nichtstetige. Das ist weniger anschaulich, jedoch nimmt die Vielfalt an erzielbaren Effekten erheblich zu.
 
Die Formel setzt sich aus bis zu 9 Formelzeilen zusammen, zunächst ist nur eine Zeile vorhanden, je nach Bedarf können dann aber bis zu 8 weitere Zeilen erzeugt werden. Der Inhalt einer Zeile wird einfach nahtlos an die vordere Zeile angehängt. Das Handling der Zeilen funktioniert gleich wie das Handling der Summanden in FreakLab_opt2.m. Die Formelzeile wird rot hinterlegt, sobald bei der Ausführung der Gesamtformel ein Fehler auftritt. Wie man das Argument der Formel nennt, ist egal, wichtig ist nur, dass es nur einen Variablenname innerhalb der ganzen Formel gibt. Sobald eine gültige Formel eingegeben wurde erfolgt der Update des Preview Bildes.
 
   
  +
Die Formel setzt sich aus bis zu 9 Formelzeilen zusammen, zunächst ist nur eine Zeile vorhanden, je nach Bedarf können dann aber bis zu 8 weitere Zeilen erzeugt werden. Der Inhalt einer Zeile wird einfach nahtlos an die vordere Zeile angehängt. Die Formelzeile wird rot hinterlegt, sobald bei der Ausführung der Gesamtformel ein Fehler auftritt.
Aus einem 'Formelbaukasten' können durch Klick Standardfunktionen am rechten Ende der Formel in der Zeile hinzugefügt werden. Die Zeile verfügt über eine Sicherung gegen 'zu lang werden'.
 
   
  +
Aus einem 'Formelbaukasten' können durch Klick Standardfunktionen am rechten Ende der Formel in der Zeile hinzugefügt werden.
Auch hier können der Urbild- und der Bild-Zoomfaktor über Slider und Textboxen eingegeben werden. Ebenso kann auf ein Bild umgeschalten werden, das sich aus einem Urbild ergibt, das periodisch fortgesetzt wird.
 
   
 
'''4) Farbabbildung'''
 
'''4) Farbabbildung'''
   
In den Skripten FreakLab_opt2.m bis FreakLab_opt3.m ging es um Geometrische Transformationen der Bilder. Dabei wurden den einzelnen Pixeln komplexe Zahlen oder Vektoren zugeordnet. Da auch die Farben des Bildes durch Zahlentripel an jedem Pixel repräsentiert werden, können auch diese einer Transformation unterzogen werden, was in diesem Fall auf interessante Farbeffekte führt.
+
Bislang ging es um Geometrische Transformationen der Bilder. Dabei wurden den einzelnen Pixeln komplexe Zahlen oder Vektoren zugeordnet. Da die Farben des Bildes durch Zahlentripel an jedem Pixel repräsentiert werden, können auch diese einer Transformation unterzogen werden, was auf interessante Farbeffekte führt.
   
Die Logik ist also [Farbwert an einem Pixel nachher] = f_beliebig([Farbwert an einem Pixel vorher])
+
Die Überlegung ist also: [Farbwert an einem Pixel nachher] = f_beliebig([Farbwert an einem Pixel vorher])
   
 
Dazu gibt es gleich wie in FreakLab_opt3.m Zeilen für die Eingabe einer Formel, ein Drop-Down-Menü zur Auswahl der Zeile und Buttons zum Löschen oder Hinzufügen von Zeilen sowie einen Formelbaukasten. Allerdings treten 3 unterschiedliche Formeln auf, da für jeden Farbkanal (Rot, Grün oder Blau) eine eigene Formel festlegbar sein soll. Durch das popupmenu4 wird der Farbkanal ausgewählt.
 
Dazu gibt es gleich wie in FreakLab_opt3.m Zeilen für die Eingabe einer Formel, ein Drop-Down-Menü zur Auswahl der Zeile und Buttons zum Löschen oder Hinzufügen von Zeilen sowie einen Formelbaukasten. Allerdings treten 3 unterschiedliche Formeln auf, da für jeden Farbkanal (Rot, Grün oder Blau) eine eigene Formel festlegbar sein soll. Durch das popupmenu4 wird der Farbkanal ausgewählt.

Version vom 25. Februar 2011, 12:31 Uhr

Einleitung

FreakLab ist ein Matlab-GUI zur Bearbeitung von JPG-Bildern. Es können mathematische Transformationen der Bildgeometrie und der RGB-Farbwerte vorgenommen werden. Dabei entstehen 'freakige' Resultate, daher der Name dieses Tools.

Anmerkung: Dieses Tool wurde unter Matlab 7.1.0.246 Service Pack 3 entwickelt und ist daher für diese Version optimiert.

Funktionsweise

Es können JPG-Bilder geöffnet, bearbeitet und abgespeichert werden. Das Resultat einer eingegebenen Transformation ist im 'Preview'-Fenster sichtbar. Mit 'Anwenden' wird das Bild im Hauptfenster ans Preview angeglichen. Dieses Resultat kann mit 'Okay' übernommen und mit 'Rückgängig verworfen werden. Ansonsten ist die Bedienung des Tools selbsterklärend.

Hier nun eine Beschreibung der hinter den 4 verschiedenen Bedienfeldern stehenden Mathematik:

1) Lineare Abbildung

Jedem Pixel eines Bildes entspricht ein Element eines 2D-Vektorraumes. Isomorphismen zwischen zwei solchen Räumen können durch 2 x 2 Matrizen dargestellt werden. Dementsprechend kann eine Matrix auf ein Urbild eine Lineare Transformation ausüben. Dies kann Stauchungen, Streckungen,Verdrehungen oder Spiegelungen des Bildes bedeuten. Auch Mischungen dieser Elementaroperationen sind möglich. In diesem Bedienfeld kann der Benutzer verschiedene Elemtaroperationen ausüben, deren Stärke durch Slider regelbar ist. Die zugehörige Abbildungsmatrix wird angezeigt und kann auch modifiziert werden, sodass allgemeinere Mischabbildungen möglich sind.

2) Holomorphe Abbildung

Hier werden den Pixeln Elemente der komplexen Zahlenebene zugewiesen. Abbildungen zwischen komplexen Zahlenebenen sind komplexe Funktionen. Darunter zeichnen sich die differenzierbaren Funktionen besonders aus. Sie führen zwar keine Linearen Abbildungen mehr aus, jedoch folgt aus der Stetigkeit des Urbildes die (fast-überall-) Stetigkeit des Bildes. Man nennt solche Funktionen auch holomorph.

Eine holomorphe Funktion ist immer unendlich oft differenzierbar und lässt sich durch Potenzreihen darstellen (Laurent-Reihen), also als Summe von Polynomen mit unterschiedlichen Exponenten. Im Programm kann jede holomorphe Funktion in der Weise approximiert werden, dass bis zu 9 Summanden als Polynome mit unterschiedlichem Vorfaktor, Nullstelle und Exponent eingegeben werden können.

Der Exponent darf darüber hinaus sogar nichtganzzahlig sein. Außerdem können der Urbild- und der Bild-Zoomfaktor über Slider und Textboxen eingegeben werden. Desweiteren kann auf ein Bild umgeschalten werden, das sich aus einem Urbild ergibt, das periodisch fortgesetzt wird

3) Allgemeine komplexe Abbildung

Funktioniert im Prinzip gleich, wie das vorige Bedienfeld, nur das statt holomorphen Funktionen, die die Stetigkeit des Urbildes erhalten, hier in Formelzeilen beliebige komplexe Funktionen in Matlab-Syntax eingegeben werden können, also auch nichtstetige. Das ist weniger anschaulich, jedoch nimmt die Vielfalt an erzielbaren Effekten erheblich zu.

Die Formel setzt sich aus bis zu 9 Formelzeilen zusammen, zunächst ist nur eine Zeile vorhanden, je nach Bedarf können dann aber bis zu 8 weitere Zeilen erzeugt werden. Der Inhalt einer Zeile wird einfach nahtlos an die vordere Zeile angehängt. Die Formelzeile wird rot hinterlegt, sobald bei der Ausführung der Gesamtformel ein Fehler auftritt.

Aus einem 'Formelbaukasten' können durch Klick Standardfunktionen am rechten Ende der Formel in der Zeile hinzugefügt werden.

4) Farbabbildung

Bislang ging es um Geometrische Transformationen der Bilder. Dabei wurden den einzelnen Pixeln komplexe Zahlen oder Vektoren zugeordnet. Da die Farben des Bildes durch Zahlentripel an jedem Pixel repräsentiert werden, können auch diese einer Transformation unterzogen werden, was auf interessante Farbeffekte führt.

Die Überlegung ist also: [Farbwert an einem Pixel nachher] = f_beliebig([Farbwert an einem Pixel vorher])

Dazu gibt es gleich wie in FreakLab_opt3.m Zeilen für die Eingabe einer Formel, ein Drop-Down-Menü zur Auswahl der Zeile und Buttons zum Löschen oder Hinzufügen von Zeilen sowie einen Formelbaukasten. Allerdings treten 3 unterschiedliche Formeln auf, da für jeden Farbkanal (Rot, Grün oder Blau) eine eigene Formel festlegbar sein soll. Durch das popupmenu4 wird der Farbkanal ausgewählt.

Desweiteren ist es interessant die Farbkanäle zu vertauschen. Das geschieht mit beim Klick auf das popupmenu5. Bei drei Farbkanälen gibt es 6 Vertauschungspermutationen, dementsprechend verfügt das Menü über 6 Einträge.

Download

Quellen, Literatur