rft_genericrft_genericRftGenericRftGenericrft_generic (Operator)

Name

rft_genericrft_genericRftGenericRftGenericrft_generic — Schnelle reelle Fouriertransformation.

Signatur

rft_generic(Image : ImageFFT : Direction, Norm, ResultType, Width : )

Herror rft_generic(const Hobject Image, Hobject* ImageFFT, const char* Direction, const char* Norm, const char* ResultType, const Hlong Width)

Herror T_rft_generic(const Hobject Image, Hobject* ImageFFT, const Htuple Direction, const Htuple Norm, const Htuple ResultType, const Htuple Width)

void RftGeneric(const HObject& Image, HObject* ImageFFT, const HTuple& Direction, const HTuple& Norm, const HTuple& ResultType, const HTuple& Width)

HImage HImage::RftGeneric(const HString& Direction, const HString& Norm, const HString& ResultType, Hlong Width) const

HImage HImage::RftGeneric(const char* Direction, const char* Norm, const char* ResultType, Hlong Width) const

HImage HImage::RftGeneric(const wchar_t* Direction, const wchar_t* Norm, const wchar_t* ResultType, Hlong Width) const   (Nur Windows)

static void HOperatorSet.RftGeneric(HObject image, out HObject imageFFT, HTuple direction, HTuple norm, HTuple resultType, HTuple width)

HImage HImage.RftGeneric(string direction, string norm, string resultType, int width)

def rft_generic(image: HObject, direction: str, norm: str, result_type: str, width: int) -> HObject

Beschreibung

rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic berechnet die schnelle Fouriertransformation des Eingabebildes ImageImageImageImageimageimage. Dabei wird im Gegensatz zu fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic, fft_imagefft_imageFftImageFftImageFftImagefft_image und fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_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 ResultTypeResultTypeResultTypeResultTyperesultTyperesult_type erlaubt es, bei der Rücktransformation (DirectionDirectionDirectionDirectiondirectiondirection = 'from_freq'"from_freq""from_freq""from_freq""from_freq""from_freq") den Ergebnisbildtyp festzulegen. Bei der Hintransformation (DirectionDirectionDirectionDirectiondirectiondirection = 'to_freq'"to_freq""to_freq""to_freq""to_freq""to_freq") muss ResultTypeResultTypeResultTypeResultTyperesultTyperesult_type auf 'complex'"complex""complex""complex""complex""complex" gesetzt werden.

Der Parameter DirectionDirectionDirectionDirectiondirectiondirection legt fest, ob in den Frequenzraum oder aus dem Frequenzraum zurück transformiert werden soll. Für DirectionDirectionDirectionDirectiondirectiondirection = 'to_freq'"to_freq""to_freq""to_freq""to_freq""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_genericfft_genericFftGenericFftGenericFftGenericfft_generic). Für DirectionDirectionDirectionDirectiondirectiondirection = 'from_freq'"from_freq""from_freq""from_freq""from_freq""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 WidthWidthWidthWidthwidthwidth 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 NormNormNormNormnormnorm kann die gewünschte Normierung angegeben werden. Zulässige Werte sind 'none'"none""none""none""none""none", 'sqrt'"sqrt""sqrt""sqrt""sqrt""sqrt" und 'n'"n""n""n""n""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.

Achtung

Die Berechnung erfolgt immer für das gesamte Bild, d.h., der Definitionsbereich des Eingabebildes wird ignoriert.

Ausführungsinformationen

Parameter

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)

Eingabebild im Ortsraum.

ImageFFTImageFFTImageFFTImageFFTimageFFTimage_fft (output_object)  image(-array) objectHImageHObjectHImageHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)

Fouriertransformiertes Bild.

DirectionDirectionDirectionDirectiondirectiondirection (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Hin- oder Rücktransformation.

Defaultwert: 'to_freq' "to_freq" "to_freq" "to_freq" "to_freq" "to_freq"

Werteliste: 'from_freq'"from_freq""from_freq""from_freq""from_freq""from_freq", 'to_freq'"to_freq""to_freq""to_freq""to_freq""to_freq"

NormNormNormNormnormnorm (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Normierung des Ergebnisbildes.

Defaultwert: 'sqrt' "sqrt" "sqrt" "sqrt" "sqrt" "sqrt"

Werteliste: 'n'"n""n""n""n""n", 'none'"none""none""none""none""none", 'sqrt'"sqrt""sqrt""sqrt""sqrt""sqrt"

ResultTypeResultTypeResultTypeResultTyperesultTyperesult_type (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Bildtyp des Ausgabebildes.

Defaultwert: 'complex' "complex" "complex" "complex" "complex" "complex"

Werteliste: 'byte'"byte""byte""byte""byte""byte", 'complex'"complex""complex""complex""complex""complex", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic", 'direction'"direction""direction""direction""direction""direction", 'int1'"int1""int1""int1""int1""int1", 'int2'"int2""int2""int2""int2""int2", 'int4'"int4""int4""int4""int4""int4", 'real'"real""real""real""real""real", 'uint2'"uint2""uint2""uint2""uint2""uint2"

WidthWidthWidthWidthwidthwidth (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Ergebnis

Sind alle Parameterwerte korrekt, dann liefert rft_genericrft_genericRftGenericRftGenericRftGenericrft_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>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

optimize_rft_speedoptimize_rft_speedOptimizeRftSpeedOptimizeRftSpeedOptimizeRftSpeedoptimize_rft_speed, read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationDataReadFftOptimizationDataread_fft_optimization_data

Nachfolger

convol_fftconvol_fftConvolFftConvolFftConvolFftconvol_fft, correlation_fftcorrelation_fftCorrelationFftCorrelationFftCorrelationFftcorrelation_fft, phase_correlation_fftphase_correlation_fftPhaseCorrelationFftPhaseCorrelationFftPhaseCorrelationFftphase_correlation_fft, convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageTypeconvert_image_type, power_bytepower_bytePowerBytePowerBytePowerBytepower_byte, power_realpower_realPowerRealPowerRealPowerRealpower_real, power_lnpower_lnPowerLnPowerLnPowerLnpower_ln, phase_degphase_degPhaseDegPhaseDegPhaseDegphase_deg, phase_radphase_radPhaseRadPhaseRadPhaseRadphase_rad

Alternativen

fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic, fft_imagefft_imageFftImageFftImageFftImagefft_image, fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv

Modul

Foundation