rft_generic
— Schnelle reelle Fouriertransformation.
rft_generic
berechnet die schnelle Fouriertransformation des
Eingabebildes Image
. Dabei wird im Gegensatz zu
fft_generic
, fft_image
und fft_image_inv
ausgenutzt, dass das Eingabebild der Hintransformation ein
reellwertiges Bild (d.h. kein komplexes Bild) ist. In diesem Fall
besitzt das komplexe Ausgabebild eine Redundanz. Die Werte in der
rechten Hälfte des komplexen Bildes sind die komplexen Konjugierten
der Werte an der entsprechenden Position in der linken Hälfte des
Bildes. Entsprechend kann Laufzeit und Speicher eingespart werden,
indem nur die linke Hälfte des komplexen Bildes berechnet und
ausgegeben wird.
Der Parameter ResultType
erlaubt es, bei der
Rücktransformation (Direction
= 'from_freq' )
den Ergebnisbildtyp festzulegen. Bei der Hintransformation
(Direction
= 'to_freq' ) muss ResultType
auf 'complex' gesetzt werden.
Der Parameter Direction
legt fest, ob in den Frequenzraum
oder aus dem Frequenzraum zurück transformiert werden soll. Für
Direction
= 'to_freq' muss das Eingabebild ein
reellwertiger Typ sein, d.h. es darf kein komplexes Bild als
Eingabe verwendet werden. Es werden alle Bildtypen unterstützt,
die sich in ein reelles Bild transformieren lassen. In diesem Fall
ist die Ausgabe ein komplexes Bild der Dimension
(w/2+1)*h, wobei w und h die Breite und
Höhe des Eingabebildes sind. In diesem Modus wird als Exponent der
Transformation -1 verwendet (siehe fft_generic
). Für
Direction
= 'from_freq' muss das Eingabebild ein
komplexes Bild sein. In diesem Fall kann nicht aus der Größe des
Eingabebildes entschieden werden, welche Größe das Ausgabebild
besitzen soll. Hierzu muss Width
korrekt gesetzt werden,
d.h. auf 2*w-2 oder auf 2*w-1, wobei w
die Breite des komplexen Eingabebildes ist. In diesem Modus wird
als Exponent der Transformation 1 verwendet.
Mit Norm
kann die gewünschte Normierung angegeben werden.
Zulässige Werte sind 'none' , 'sqrt' und
'n' . In jedem Fall ist auf die konsistente Verwendung der
Parameter zu achten. D.h., die Normierungsfaktoren bei der Hin- und
Rücktransformation müssen aufmultipliziert w*h ergeben.
Die Berechnung erfolgt immer für das gesamte Bild, d.h., der Definitionsbereich des Eingabebildes wird ignoriert.
Image
(input_object) (multichannel-)image(-array) →
object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)
Eingabebild im Ortsraum.
ImageFFT
(output_object) image(-array) →
object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)
Fouriertransformiertes Bild.
Direction
(input_control) string →
(string)
Hin- oder Rücktransformation.
Defaultwert: 'to_freq'
Werteliste: 'from_freq' , 'to_freq'
Norm
(input_control) string →
(string)
Normierung des Ergebnisbildes.
Defaultwert: 'sqrt'
Werteliste: 'n' , 'none' , 'sqrt'
ResultType
(input_control) string →
(string)
Bildtyp des Ausgabebildes.
Defaultwert: 'complex'
Werteliste: 'byte' , 'complex' , 'cyclic' , 'direction' , 'int1' , 'int2' , 'int4' , 'real' , 'uint2'
Width
(input_control) integer →
(integer)
Breite des Bildes, für die die Laufzeit optimiert werden soll.
Defaultwert: 512
Wertevorschläge: 128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048
Sind alle Parameterwerte korrekt, dann liefert rft_generic
den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine
Eingabebilder vorhanden) lässt sich mittels
set_system(::'no_object_result',<Result>:)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
optimize_rft_speed
,
read_fft_optimization_data
convol_fft
,
correlation_fft
,
phase_correlation_fft
,
convert_image_type
,
power_byte
,
power_real
,
power_ln
,
phase_deg
,
phase_rad
fft_generic
,
fft_image
,
fft_image_inv
Foundation