KlassenKlassenKlassenKlassen | | | | Operatoren

rft_genericrft_genericRftGenericrft_genericRftGenericRftGeneric (Operator)

Name

rft_genericrft_genericRftGenericrft_genericRftGenericRftGeneric — 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)

Herror rft_generic(Hobject Image, Hobject* ImageFFT, const HTuple& Direction, const HTuple& Norm, const HTuple& ResultType, const HTuple& Width)

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

HImageArray HImageArray::RftGeneric(const HTuple& Direction, const HTuple& Norm, const HTuple& ResultType, const HTuple& Width) const

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

void HOperatorSetX.RftGeneric(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageFFT, [in] VARIANT Direction, [in] VARIANT Norm, [in] VARIANT ResultType, [in] VARIANT Width)

IHImageX* HImageX.RftGeneric(
[in] BSTR Direction, [in] BSTR Norm, [in] BSTR ResultType, [in] Hlong Width)

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)

Beschreibung

rft_genericrft_genericRftGenericrft_genericRftGenericRftGeneric berechnet die schnelle Fouriertransformation des Eingabebildes ImageImageImageImageImageimage. Dabei wird im Gegensatz zu fft_genericfft_genericFftGenericfft_genericFftGenericFftGeneric, fft_imagefft_imageFftImagefft_imageFftImageFftImage und fft_image_invfft_image_invFftImageInvfft_image_invFftImageInvFftImageInv 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 ResultTypeResultTypeResultTypeResultTypeResultTyperesultType 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 ResultTypeResultTypeResultTypeResultTypeResultTyperesultType 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_genericFftGenericfft_genericFftGenericFftGeneric). 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.

Parallelisierung

Parameter

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

Eingabebild im Ortsraum.

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

Fouriertransformiertes Bild.

DirectionDirectionDirectionDirectionDirectiondirection (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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 HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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"

ResultTypeResultTypeResultTypeResultTypeResultTyperesultType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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 HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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_genericRftGenericrft_genericRftGenericRftGeneric 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

optimize_rft_speedoptimize_rft_speedOptimizeRftSpeedoptimize_rft_speedOptimizeRftSpeedOptimizeRftSpeed, read_fft_optimization_dataread_fft_optimization_dataReadFftOptimizationDataread_fft_optimization_dataReadFftOptimizationDataReadFftOptimizationData

Nachfolger

convol_fftconvol_fftConvolFftconvol_fftConvolFftConvolFft, correlation_fftcorrelation_fftCorrelationFftcorrelation_fftCorrelationFftCorrelationFft, phase_correlation_fftphase_correlation_fftPhaseCorrelationFftphase_correlation_fftPhaseCorrelationFftPhaseCorrelationFft, convert_image_typeconvert_image_typeConvertImageTypeconvert_image_typeConvertImageTypeConvertImageType, power_bytepower_bytePowerBytepower_bytePowerBytePowerByte, power_realpower_realPowerRealpower_realPowerRealPowerReal, power_lnpower_lnPowerLnpower_lnPowerLnPowerLn, phase_degphase_degPhaseDegphase_degPhaseDegPhaseDeg, phase_radphase_radPhaseRadphase_radPhaseRadPhaseRad

Alternativen

fft_genericfft_genericFftGenericfft_genericFftGenericFftGeneric, fft_imagefft_imageFftImagefft_imageFftImageFftImage, fft_image_invfft_image_invFftImageInvfft_image_invFftImageInvFftImageInv

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren