gen_lowpassgen_lowpassGenLowpassGenLowpass (Operator)
Name
gen_lowpassgen_lowpassGenLowpassGenLowpass
— Erzeugen eines idealen Tiefpassfilters.
Signatur
Herror gen_lowpass(Hobject* ImageLowpass, double Frequency, const char* Norm, const char* Mode, const Hlong Width, const Hlong Height)
Herror T_gen_lowpass(Hobject* ImageLowpass, const Htuple Frequency, const Htuple Norm, const Htuple Mode, const Htuple Width, const Htuple Height)
void GenLowpass(HObject* ImageLowpass, const HTuple& Frequency, const HTuple& Norm, const HTuple& Mode, const HTuple& Width, const HTuple& Height)
void HImage::GenLowpass(double Frequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height)
void HImage::GenLowpass(double Frequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height)
void HImage::GenLowpass(double Frequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height)
(Nur Windows)
Beschreibung
gen_lowpassgen_lowpassGenLowpassGenLowpassGenLowpass
erzeugt einen idealen Tiefpassfilter im
Frequenzraum. Die Frequenz gibt der Parameter FrequencyFrequencyFrequencyFrequencyfrequency
vor. Die Frequenz wird als Bruchteil der maximalen (horizontalen
und verikalen) Frequenz, die in einem Bild der Größe
WidthWidthWidthWidthwidth
x HeightHeightHeightHeightheight
möglich ist,
angegeben, d.h. FrequencyFrequencyFrequencyFrequencyfrequency
sollte zwischen 0 und 1 liegen.
Um eine maximale Effizienz der gesamten Filterung zu erreichen, kann
mit NormNormNormNormnorm
der Normierungsfaktor des Filters festgelegt
werden. Somit kann eine Normierung in der FFT unterbleiben, falls
fft_genericfft_genericFftGenericFftGenericFftGeneric
verwendet wird, falls NormNormNormNormnorm
=
'n'"n""n""n""n" verwendet wird. Mit ModeModeModeModemode
kann festgelegt
werden, wo der Nullfrequenz der FFT liegen soll bzw. ob der Filter
für die reelle FFT erzeugt werden soll. Falls fft_genericfft_genericFftGenericFftGenericFftGeneric
verwendet wird, kann zur Effizienzsteigerung 'dc_edge'"dc_edge""dc_edge""dc_edge""dc_edge"
verwendet werden. Falls fft_imagefft_imageFftImageFftImageFftImage
und fft_image_invfft_image_invFftImageInvFftImageInvFftImageInv
zur Filterung verwendet werden, muss NormNormNormNormnorm
=
'none'"none""none""none""none" und ModeModeModeModemode
= 'dc_center'"dc_center""dc_center""dc_center""dc_center" verwendet
werden. Falls rft_genericrft_genericRftGenericRftGenericRftGeneric
verwendet wird, muss
ModeModeModeModemode
= 'rft'"rft""rft""rft""rft" verwendet werden. Das Ergebnis ist
ein Bild, das im inneren Bereich als Wert den Normierungsfaktor hat
und außerhalb dieses Bereiches auf 0 gesetzt ist.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ImageLowpassImageLowpassImageLowpassImageLowpassimageLowpass
(output_object) image →
objectHImageHImageHobject * (real)
Tiefpass im Frequenzraum.
FrequencyFrequencyFrequencyFrequencyfrequency
(input_control) real →
HTupleHTupleHtuple (real) (double) (double) (double)
Trennfrequenz.
Defaultwert: 0.1
Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriktion: Frequency >= 0
NormNormNormNormnorm
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Normierung des Filters.
Defaultwert:
'none'
"none"
"none"
"none"
"none"
Werteliste: 'n'"n""n""n""n", 'none'"none""none""none""none"
ModeModeModeModemode
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Position der Nullfrequenz im Frequenzraum.
Defaultwert:
'dc_center'
"dc_center"
"dc_center"
"dc_center"
"dc_center"
Werteliste: 'dc_center'"dc_center""dc_center""dc_center""dc_center", 'dc_edge'"dc_edge""dc_edge""dc_edge""dc_edge", 'rft'"rft""rft""rft""rft"
WidthWidthWidthWidthwidth
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Breite des Bildes (Filters).
Defaultwert: 512
Wertevorschläge: 128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048, 4096, 8192
HeightHeightHeightHeightheight
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Höhe des Bildes (Filters).
Defaultwert: 512
Wertevorschläge: 120, 128, 144, 240, 256, 288, 480, 512, 576, 1024, 2048, 4096, 8192
Beispiel (HDevelop)
* Filtering with maximum efficiency with fft_generic.
gen_lowpass(Lowpass,0.2,'n','dc_edge',Width,Height)
fft_generic(Image,ImageFFT,'to_freq',-1,'none','dc_edge','complex')
convol_fft(ImageFFT,Lowpass,ImageConvol)
fft_generic(ImageConvol,ImageResult,'from_freq',1,'none','dc_edge','byte')
Ergebnis
Sind die Parameter korrekt, dann liefert gen_lowpassgen_lowpassGenLowpassGenLowpassGenLowpass
den
Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Nachfolger
convol_fftconvol_fftConvolFftConvolFftConvolFft
Siehe auch
gen_highpassgen_highpassGenHighpassGenHighpassGenHighpass
,
gen_bandpassgen_bandpassGenBandpassGenBandpassGenBandpass
,
gen_bandfiltergen_bandfilterGenBandfilterGenBandfilterGenBandfilter
,
gen_gauss_filtergen_gauss_filterGenGaussFilterGenGaussFilterGenGaussFilter
,
gen_mean_filtergen_mean_filterGenMeanFilterGenMeanFilterGenMeanFilter
,
gen_derivative_filtergen_derivative_filterGenDerivativeFilterGenDerivativeFilterGenDerivativeFilter
Modul
Foundation