FreakLab: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
== Einleitung ==
 
== Einleitung ==
   
FreakLab ist ein Matlab-GUI zur Bearbeitung von JPG-Bildern. Es können mathematische Transformationen der Bildgeometrie und der RotGrünBlau-Farbwerte vorgenommen werden.
+
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.
   
 
== 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.
Zur Bearbeitung der Bilder stehen 4 verschiedene Bedienfelder zur Verfügung:
 
   
  +
Hier nun eine Beschreibung der hinter den 4 verschiedene 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 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.
   
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.
 
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.
Zeile 19: Zeile 21:
 
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
   
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.
 
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.
   
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. 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.
   
 
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. Die Zeile verfügt über eine Sicherung gegen 'zu lang werden'.
Zeile 29: Zeile 31:
 
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.
 
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
+
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.
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.
 
   
 
Die Logik ist also [Farbwert an einem Pixel nachher] = f_beliebig([Farbwert an einem Pixel vorher])
 
Die Logik 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
+
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.
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.
 
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.

Version vom 25. Februar 2011, 13:02 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.

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.

Hier nun eine Beschreibung der hinter den 4 verschiedene 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 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.

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.

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.

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

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.

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.

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'.

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

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.

Die Logik 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