picture.filter
Class LayerKLT

java.lang.Object
  |
  +--picture.filter.LayerKLT

public class LayerKLT
extends java.lang.Object

Klasse zur Berechnung der Karhunen-Loeve-Transformation für ein mehrschichtiges Bild.

Sei p ein Picture mit n == p.getNumberOfLayers(). Dann dienen die Vektoren v mit

  v[i] = p.getLayer(i).getDoubleValue(x, y);
 
als Eingabe fuer die KLT, wobei (x, y) das gesamte Bild durchlauft.

Ein KLT-Objekt wird initialisiert aus einem Picture p und dient dann zur Basistransformation beliebiger Pictures (mit gleicher Ebenenzahl wie p) in die KLT-Basis von p und wieder zurück.


Constructor Summary
LayerKLT(Picture p)
          Erzeugt eine neue Instanz bezüglich des angegebenen Pictures.
 
Method Summary
 double[] getEigenValues()
          Gibt die bestimmten Eigenwerte in absteigender Reihenfolge aus.
 double[][] getEigenVectors()
          Gibt die bestimmten Eigenvektoren der KLT-Basis aus.
 Picture kltToStandard(Picture p)
          Führt einen Basiswechsel durch.
 Picture kltToStandard(Picture p, double[] weights)
          Wie kltToStandard(p), jedoch mit zusätzlicher Gewichtung der Dimensionen.
 Picture standardToKlt(Picture p)
          Führt einen Basiswechsel durch.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LayerKLT

public LayerKLT(Picture p)
         throws PictureException
Erzeugt eine neue Instanz bezüglich des angegebenen Pictures.
Parameters:
p: - Picture mit den Eingabevektoren für die KLT.
Method Detail

getEigenValues

public double[] getEigenValues()
Gibt die bestimmten Eigenwerte in absteigender Reihenfolge aus. Der i-te Eigenwert gehört dabei zum i-ten Basisvektor der errechneten KLT-Basis. Insbesondere ist die Anzahl der Eigenwerte gleich der Anzahl der Ebenen des urspünglichen Bildes.
Returns:
Eigenwerte

getEigenVectors

public double[][] getEigenVectors()
Gibt die bestimmten Eigenvektoren der KLT-Basis aus. Die Reihenfolge der Vektoren stimmt mit der Reihenfolge der Eigenwerte überein, die die Methode getEigenValues() ausgibt:
  double[] v = getEigenVectors()[i]
 
ist Eigenvektor zum Eigenwert getEigenValues()[i].
Returns:
Eigenvektoren

standardToKlt

public Picture standardToKlt(Picture p)
                      throws PictureException
Führt einen Basiswechsel durch. Es wird angenommen, daß das angegebene Bild zur Standardbasis dargestellt ist. Hierzu wird eine Darstellung der gleichen Daten zur KLT-Basis errechnet. Diese Darstellung wird zurückgegeben.

Diese Methode ist invers zu kltToStandard, d.h. es gilt p == standardToKlt(kltToStandard(p)) == kltToStandard(standardToKlt(p)) für jedes Picture p.

Parameters:
p: - Bild zur Standardbasis
Returns:
das gleiche Bild zur KLT-Basis
See Also:
kltToStandard(picture.Picture)

kltToStandard

public Picture kltToStandard(Picture p)
                      throws PictureException
Führt einen Basiswechsel durch. Es wird angenommen, daß das angegebene Bild zur KLT-Basis dargestellt ist. Hierzu wird die korrespondierende Darstellung zur Standardbasis berechnet. Diese Darstellung wird als Ergebnisbild zurueckgegeben.

Diese Methode ist invers zu standardToKlt, d.h. es gilt p == standardToKlt(kltToStandard(p)) == kltToStandard(standardToKlt(p)) für jedes Picture p.

Parameters:
p: - Bild zur KLT-Basis
Returns:
das gleiche Bild zur Standard-Basis
See Also:
standardToKlt(picture.Picture)

kltToStandard

public Picture kltToStandard(Picture p,
                             double[] weights)
                      throws PictureException
Wie kltToStandard(p), jedoch mit zusätzlicher Gewichtung der Dimensionen.