picture
Class DefaultTransformation

java.lang.Object
  |
  +--picture.DefaultTransformation
All Implemented Interfaces:
ProgressViewableTransformation, java.io.Serializable, Transformation
Direct Known Subclasses:
FFT, GrayScale, Identity, MatrixFilter, MorphFilter, PassFilter, Reflection, Rotation, Wavelet

public abstract class DefaultTransformation
extends java.lang.Object
implements ProgressViewableTransformation

Eine Transformation bildet ein Layer auf ein anderes Layer ab. Beispiel: Die Bestimmung der Fouriertransformierten des Pictures p koennte mit Hilfe einer Unterklasse FFT etwa wie folgt realisiert werden:

  Layer fftVonP = (new FFT()).of(p);
 
Etwaige Parameter koennten z.B. im Konstruktor uebergeben werden. Haengt eine Transformation von zwei (oder mehr) Bildern ab, so ist eine Realisierung in folgender Gestalt denkbar:
  Layer a, b;
  Layer aSternB = (new Falter(a)).of(b);
 
DefaultTransformation ist die Standard-Implementation von Transformation.

See Also:
Serialized Form

Constructor Summary
DefaultTransformation()
           
 
Method Summary
protected  Layer createNewInstance(Layer p, double[][] data)
          Erzeugt ein Layer von der selben Instanz wie p mit dem Inhalt von data
 DialogPane filterOptionPane(javax.swing.JFrame owner, Picture pic)
          Liefert null zurück.
static double getDistance(Picture p, Picture q)
          Bestimmt den mittleren quadratischen Abstand zweier Bilder.
 java.lang.String getPreferredFileName()
          Gibt einen Dateinamen zurueck, der beim Speicher zunaechst vorgeschlagen wird.
static boolean isPowerOfTwo(int i)
          Prueft, ob die uebergebene Zahl eine Potenz von zwei ist.
static Transformation loadFrom(java.io.File f)
          Laedt einen Filter aus einer Datei
 Picture of(Picture p)
          Fuehrt die Transformation Ebenenweise auf dem uebergebenen Bild aus.
abstract  Layer of(ProgressHandler ph, Layer p)
          Fuehrt die Transformation auf einer Bildebene aus.
 void saveTo(java.io.File f)
          Speichert diese Transformation in der angegebenen Datei.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface picture.ProgressViewableTransformation
getNumberOfProgressSteps
 

Constructor Detail

DefaultTransformation

public DefaultTransformation()
Method Detail

getDistance

public static final double getDistance(Picture p,
                                       Picture q)
                                throws PictureException
Bestimmt den mittleren quadratischen Abstand zweier Bilder. Dieser Abstand wird fuer Real- und Imaginaerteil getrennt berechnet. Zurueckgegeben wird eine komplexe Zahl, bei der im Realteil das Ergebnis der reellen Bilder und im Imaginaerteil das Ergebnis der imaginaeren Bilder sitzt.
Parameters:
p: - das eine Bild
q: - das andere Bild
Returns:
mittlerer quadratischer Abstand zwischen p und q.
Throws:
PictureException, - falls die Bilder p und q nicht die gleiche Groesse haben.

isPowerOfTwo

public static final boolean isPowerOfTwo(int i)
Prueft, ob die uebergebene Zahl eine Potenz von zwei ist.
Parameters:
i - die zu pruefende Zahl
Returns:
true, falls es ein ganzes n gibt mit i=2n

createNewInstance

protected Layer createNewInstance(Layer p,
                                  double[][] data)
Erzeugt ein Layer von der selben Instanz wie p mit dem Inhalt von data
Parameters:
p: - Vorlage
data: - Inhalt des neuen Bildes
Returns:
ein Layer wie p, mit data als Inhalt.

filterOptionPane

public DialogPane filterOptionPane(javax.swing.JFrame owner,
                                   Picture pic)
                            throws PictureException
Liefert null zurück. Default für keinen Optionendialog.
Specified by:
filterOptionPane in interface Transformation
Following copied from interface: picture.Transformation
Parameters:
owner - Parentframe
pic - zu berbeitendes Bild
Returns:
Optionendialog

saveTo

public void saveTo(java.io.File f)
            throws java.io.IOException
Speichert diese Transformation in der angegebenen Datei. Klassen, die von DefaultTransformation erben, müssen beruecksichtigen, dass alle Referenz-Instanzvariablen entwender java.io.Seriazable implementieren oder transient deklariert sind, d.h. nicht mit abgespeichert werden.
Parameters:
file: - Zieldatei
Throws:
IOException, - falls ein Fehler auftritt.

loadFrom

public static Transformation loadFrom(java.io.File f)
                               throws java.io.IOException,
                                      java.lang.ClassNotFoundException
Laedt einen Filter aus einer Datei

of

public abstract Layer of(ProgressHandler ph,
                         Layer p)
                  throws PictureException
Fuehrt die Transformation auf einer Bildebene aus.

of

public Picture of(Picture p)
           throws PictureException
Fuehrt die Transformation Ebenenweise auf dem uebergebenen Bild aus.
Specified by:
of in interface Transformation
Following copied from interface: picture.Transformation
Parameters:
p: - Argument
Returns:
T(p), wobei T = this

getPreferredFileName

public java.lang.String getPreferredFileName()
Gibt einen Dateinamen zurueck, der beim Speicher zunaechst vorgeschlagen wird. Diese Implementierung liefert den String "filter*.jf", wobei * von 1 beginnend bei jedem Methodenaufruf eins hochzaehlt. Unterklassen moegen diese Methode ueberschreiben, indem sie z.B. "filter" durch spezifischere Bezeichnungen ersetzen. Von einer Aenderung der Dateiendung ".jf" sollte hingegen abgesehen werden.
Returns:
automatisch generierter Vorschlag fuer einen Dateinamen