gen_highpassgen_highpassGenHighpassGenHighpassgen_highpass (Operator)
Name
gen_highpassgen_highpassGenHighpassGenHighpassgen_highpass — Erzeugen eines idealen Hochpassfilters.
Signatur
Herror gen_highpass(Hobject* ImageHighpass, double Frequency, const char* Norm, const char* Mode, const Hlong Width, const Hlong Height)
Herror T_gen_highpass(Hobject* ImageHighpass, const Htuple Frequency, const Htuple Norm, const Htuple Mode, const Htuple Width, const Htuple Height)
void GenHighpass(HObject* ImageHighpass, const HTuple& Frequency, const HTuple& Norm, const HTuple& Mode, const HTuple& Width, const HTuple& Height)
void HImage::GenHighpass(double Frequency, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height)
void HImage::GenHighpass(double Frequency, const char* Norm, const char* Mode, Hlong Width, Hlong Height)
void HImage::GenHighpass(double Frequency, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height)
(Nur Windows)
Beschreibung
gen_highpassgen_highpassGenHighpassGenHighpassGenHighpassgen_highpass erzeugt einen idealen Hochpassfilter im
Frequenzraum. Die Frequenz gibt der Parameter FrequencyFrequencyFrequencyFrequencyfrequencyfrequency
vor. Die Frequenz wird als Bruchteil der maximalen (horizontalen
und vertikalen) Frequenz, die in einem Bild der Größe
WidthWidthWidthWidthwidthwidth x HeightHeightHeightHeightheightheight möglich ist,
angegeben, d.h. FrequencyFrequencyFrequencyFrequencyfrequencyfrequency sollte zwischen 0 und 1 liegen.
Um eine maximale Effizienz der gesamten Filterung zu erreichen, kann
mit NormNormNormNormnormnorm der Normierungsfaktor des Filters festgelegt
werden. Somit kann eine Normierung in der FFT unterbleiben, falls
fft_genericfft_genericFftGenericFftGenericFftGenericfft_generic verwendet wird, falls NormNormNormNormnormnorm =
'n'"n""n""n""n""n" verwendet wird. Mit ModeModeModeModemodemode 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_genericFftGenericFftGenericFftGenericfft_generic
verwendet wird, kann zur Effizienzsteigerung 'dc_edge'"dc_edge""dc_edge""dc_edge""dc_edge""dc_edge"
verwendet werden. Falls fft_imagefft_imageFftImageFftImageFftImagefft_image und fft_image_invfft_image_invFftImageInvFftImageInvFftImageInvfft_image_inv
zur Filterung verwendet werden, muss NormNormNormNormnormnorm =
'none'"none""none""none""none""none" und ModeModeModeModemodemode = 'dc_center'"dc_center""dc_center""dc_center""dc_center""dc_center" verwendet
werden. Falls rft_genericrft_genericRftGenericRftGenericRftGenericrft_generic verwendet wird, muss
ModeModeModeModemodemode = 'rft'"rft""rft""rft""rft""rft" verwendet werden. Das Ergebnis ist
ein Bild, das im inneren Bereich den Wert Null hat und außerhalb
dieses Bereiches auf den Normierungsfaktor 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
ImageHighpassImageHighpassImageHighpassImageHighpassimageHighpassimage_highpass (output_object) image → objectHImageHObjectHImageHobject * (real)
Hochpassfilter im Frequenzraum.
FrequencyFrequencyFrequencyFrequencyfrequencyfrequency (input_control) real → HTuplefloatHTupleHtuple (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
NormNormNormNormnormnorm (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Normierung des Filters.
Defaultwert:
'none'
"none"
"none"
"none"
"none"
"none"
Werteliste: 'n'"n""n""n""n""n", 'none'"none""none""none""none""none"
ModeModeModeModemodemode (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Position der Nullfrequenz im Frequenzraum.
Defaultwert:
'dc_center'
"dc_center"
"dc_center"
"dc_center"
"dc_center"
"dc_center"
Werteliste: 'dc_center'"dc_center""dc_center""dc_center""dc_center""dc_center", 'dc_edge'"dc_edge""dc_edge""dc_edge""dc_edge""dc_edge", 'rft'"rft""rft""rft""rft""rft"
WidthWidthWidthWidthwidthwidth (input_control) integer → HTupleintHTupleHtuple (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
HeightHeightHeightHeightheightheight (input_control) integer → HTupleintHTupleHtuple (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_highpass(Highpass,0.2,'n','dc_edge',Width,Height)
fft_generic(Image,ImageFFT,'to_freq',-1,'none','dc_edge','complex')
convol_fft(ImageFFT,Highpass,ImageConvol)
fft_generic(ImageConvol,ImageResult,'from_freq',1,'none','dc_edge','byte')
Ergebnis
Sind die Parameter korrekt, dann liefert gen_highpassgen_highpassGenHighpassGenHighpassGenHighpassgen_highpass
den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Nachfolger
convol_fftconvol_fftConvolFftConvolFftConvolFftconvol_fft
Siehe auch
convol_fftconvol_fftConvolFftConvolFftConvolFftconvol_fft,
gen_lowpassgen_lowpassGenLowpassGenLowpassGenLowpassgen_lowpass,
gen_bandpassgen_bandpassGenBandpassGenBandpassGenBandpassgen_bandpass,
gen_bandfiltergen_bandfilterGenBandfilterGenBandfilterGenBandfiltergen_bandfilter,
gen_gauss_filtergen_gauss_filterGenGaussFilterGenGaussFilterGenGaussFiltergen_gauss_filter,
gen_mean_filtergen_mean_filterGenMeanFilterGenMeanFilterGenMeanFiltergen_mean_filter,
gen_derivative_filtergen_derivative_filterGenDerivativeFilterGenDerivativeFilterGenDerivativeFiltergen_derivative_filter
Modul
Foundation