picture.filter
Class GrayScale

java.lang.Object
  |
  +--picture.DefaultTransformation
        |
        +--picture.filter.GrayScale
All Implemented Interfaces:
ProgressViewableTransformation, java.io.Serializable, Transformation

public class GrayScale
extends DefaultTransformation

Grauskalierung. Diese Transformation implementiert zwei Arten der Grauwertskalierung:

Zum einen kann eine lineare Grauwertskalierung durchgefuehrt werden, indem zwei Parameter min und max angegeben werden. In diesem Fall werden alle Farbwerte, die groesser als max bzw. kleiner als min sind, auf max bzw min gesetzt.

Im allgemeineren Modus wird in Form einer Instanz der Klasse Term eine Skalierungsfunktion in x angegeben, vermoege derer die Skalierung durchgefuehrt werden soll.

Die Grauwertskalierung bezieht sich stets auf die aktuelle Praesentation.

See Also:
Serialized Form

Field Summary
static int LINEAR
           
static int TERM
           
 
Constructor Summary
GrayScale(double min, double max)
          Erzeugt einen linearen Grauwertskalierung.
GrayScale(Term t, long depth)
          Erzeugt eine Skalierung mit der angegebenen Skalierungsfunktion
 
Method Summary
 DialogPane filterOptionPane(javax.swing.JFrame owner, Picture pic)
          Liefert einen Optionendialog zurück.
 double[] getBounds()
          Gibt die Grenzen zurueck, wie sie mit getBounds(double, double) oder im Konstruktor angegeben wurde.
 int getMode()
          Gibt den aktuellen Modus zurueck.
 int getNumberOfProgressSteps(Picture p)
          Bestimmt die Anzahl der Schritte, die bei den aktuellen Einstellungen auf den ProgressHandler von p ausgeführt werden, wenn diese Transformation auf p ausgeführt wird.
 Term getScaleFunction()
          Gibt die aktuelle Skalierungsfunktion zurueck.
 Layer of(ProgressHandler ph, Layer p)
          Diese Methode liefert ein neues Layer-Objekt mit der folgenden Eigenschaft: 1.
 void setBounds(double min, double max)
          Legt neue Grenzen fest.
 void setScaleFunction(Term t, long depth)
          Legt die Skalierungsfunktion fest
 
Methods inherited from class picture.DefaultTransformation
createNewInstance, getDistance, getPreferredFileName, isPowerOfTwo, loadFrom, of, saveTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LINEAR

public static final int LINEAR

TERM

public static final int TERM
Constructor Detail

GrayScale

public GrayScale(Term t,
                 long depth)
Erzeugt eine Skalierung mit der angegebenen Skalierungsfunktion
Parameters:
t: - Skalierungsfunktion
depth: - Abtastrate der Funktion

GrayScale

public GrayScale(double min,
                 double max)
Erzeugt einen linearen Grauwertskalierung. Alles, was kleiner als min ist, wird auf min, alles, was groesser als max ist, wird auf max gesetzt. Diese Zahlen werden absolut zwischen 0 und 1 angegeben.
Parameters:
min - Untergrenze
max - Obergrenze
Method Detail

getMode

public int getMode()
Gibt den aktuellen Modus zurueck. Dieser ist GrayScale.LINEAR oder GrayScale.TERM

setScaleFunction

public void setScaleFunction(Term t,
                             long depth)
Legt die Skalierungsfunktion fest
Parameters:
t: - neue Skalierungsfunktion

getScaleFunction

public Term getScaleFunction()
Gibt die aktuelle Skalierungsfunktion zurueck.

setBounds

public void setBounds(double min,
                      double max)
Legt neue Grenzen fest.
Parameters:
min - neue Untergrenze
max - neue Obergrenze

getBounds

public double[] getBounds()
Gibt die Grenzen zurueck, wie sie mit getBounds(double, double) oder im Konstruktor angegeben wurde.

getNumberOfProgressSteps

public int getNumberOfProgressSteps(Picture p)
Description copied from interface: ProgressViewableTransformation
Bestimmt die Anzahl der Schritte, die bei den aktuellen Einstellungen auf den ProgressHandler von p ausgeführt werden, wenn diese Transformation auf p ausgeführt wird.
Following copied from interface: picture.ProgressViewableTransformation
Returns:
Anzahl der Schritte

of

public Layer of(ProgressHandler ph,
                Layer p)
         throws PictureException
Diese Methode liefert ein neues Layer-Objekt mit der folgenden Eigenschaft:

1. Fall: Diese Transformation ist linear. In der aktuellen Ansicht (Presentation) werden alle Grauwerte kleiner min auf min gesetzt und alle groesseren Grauwerte als max auf max gesetzt. Die anderen Praesentationen werden unveraendert uebernommen bzw so angepasst, dass darin keine (bzw. moeglichst wenig) Aenderung sichtbar wird.

2. Fall: Diese Transformation ist frei. Skaliert die Grauwerte dieses Bildes anhand der uebergebenen Skalierungsfunktion. Dazu wird diese Funktion auf dem Intervall [0, 1] ausgewertet: Habe (x, y) in der aktuellen Praesentation den Wert t, so wird dieser Wert auf f(t) gesetzt.

Diese Methode unterstuetzt die Funktion der ProgressHandler fuer die Verwendung von Fortschrittsanzeigen (z.B. JProgressBar). Es werden width Events ausgeworfen

Overrides:
of in class DefaultTransformation
Parameters:
p - Das Bild, das skaliert werden soll.
Returns:
Skalierte Funktion von p

filterOptionPane

public DialogPane filterOptionPane(javax.swing.JFrame owner,
                                   Picture pic)
                            throws PictureException
Liefert einen Optionendialog zurück.
Overrides:
filterOptionPane in class DefaultTransformation
Parameters:
owner - Parentframe
pic - zu berbeitendes Bild
Returns:
OptionenDialog