Operator Reference

gen_gaborgen_gaborGenGaborGenGaborgen_gabor (Operator)

gen_gaborgen_gaborGenGaborGenGaborgen_gabor — Generate a Gabor filter.

Signature

Herror gen_gabor(Hobject* ImageFilter, double Angle, double Frequency, double Bandwidth, double Orientation, const char* Norm, const char* Mode, const Hlong Width, const Hlong Height)

Herror T_gen_gabor(Hobject* ImageFilter, const Htuple Angle, const Htuple Frequency, const Htuple Bandwidth, const Htuple Orientation, const Htuple Norm, const Htuple Mode, const Htuple Width, const Htuple Height)

void GenGabor(HObject* ImageFilter, const HTuple& Angle, const HTuple& Frequency, const HTuple& Bandwidth, const HTuple& Orientation, const HTuple& Norm, const HTuple& Mode, const HTuple& Width, const HTuple& Height)

void HImage::GenGabor(double Angle, double Frequency, double Bandwidth, double Orientation, const HString& Norm, const HString& Mode, Hlong Width, Hlong Height)

void HImage::GenGabor(double Angle, double Frequency, double Bandwidth, double Orientation, const char* Norm, const char* Mode, Hlong Width, Hlong Height)

void HImage::GenGabor(double Angle, double Frequency, double Bandwidth, double Orientation, const wchar_t* Norm, const wchar_t* Mode, Hlong Width, Hlong Height)   ( Windows only)

static void HOperatorSet.GenGabor(out HObject imageFilter, HTuple angle, HTuple frequency, HTuple bandwidth, HTuple orientation, HTuple norm, HTuple mode, HTuple width, HTuple height)

void HImage.GenGabor(double angle, double frequency, double bandwidth, double orientation, string norm, string mode, int width, int height)

def gen_gabor(angle: float, frequency: float, bandwidth: float, orientation: float, norm: str, mode: str, width: int, height: int) -> HObject

Description

gen_gaborgen_gaborGenGaborGenGaborgen_gabor generates a Gabor filter with a user-definable bandpass frequency range and sign for the Hilbert transform. This is done by calculating a symmetrical filter in the frequency domain, which can be adapted by the parameters AngleAngleAngleangleangle, FrequencyFrequencyFrequencyfrequencyfrequency, BandwidthBandwidthBandwidthbandwidthbandwidth and OrientationOrientationOrientationorientationorientation such that a certain frequency band and a certain direction range in the spatial domain is filtered out in the frequency domain.

The parameters FrequencyFrequencyFrequencyfrequencyfrequency (central frequency = distance from the DC term) and OrientationOrientationOrientationorientationorientation (direction) determine the center of the filter. Larger values of FrequencyFrequencyFrequencyfrequencyfrequency result in higher frequencies being passed. A value of 0 for OrientationOrientationOrientationorientationorientation generates a horizontally oriented “crescent” (the bulge of the crescent points upward). Higher values of OrientationOrientationOrientationorientationorientation result in the counterclockwise rotation of the crescent.

The parameters AngleAngleAngleangleangle and BandwidthBandwidthBandwidthbandwidthbandwidth are used to determine the range of frequencies and angles being passed by the filter. The larger AngleAngleAngleangleangle is, the smaller the range of angles passed by the filter gets (because the “crescent” gets narrower). The larger BandwidthBandwidthBandwidthbandwidthbandwidth is, the smaller the frequency band being passed gets (because the “crescent” gets thinner).

To achieve a maximum overall efficiency of the filtering operation, the parameter NormNormNormnormnorm can be used to specify the normalization factor of the filter. If fft_genericfft_genericFftGenericFftGenericfft_generic and NormNormNormnormnorm = 'n'"n""n""n""n" is used the normalization in the FFT can be avoided. ModeModeModemodemode can be used to determine where the DC term of the filter lies. If fft_genericfft_genericFftGenericFftGenericfft_generic is used, 'dc_edge'"dc_edge""dc_edge""dc_edge""dc_edge" can be used to gain efficiency. If fft_imagefft_imageFftImageFftImagefft_image and fft_image_invfft_image_invFftImageInvFftImageInvfft_image_inv are used for filtering, NormNormNormnormnorm = 'none'"none""none""none""none" and ModeModeModemodemode = 'dc_center'"dc_center""dc_center""dc_center""dc_center" must be used. Note that gen_gaborgen_gaborGenGaborGenGaborgen_gabor cannot create a filter that can be used with rft_genericrft_genericRftGenericRftGenericrft_generic.

The resulting image is a two-channel real-image, containing the Gabor filter in the first channel and the corresponding Hilbert filter in the second channel.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

ImageFilterImageFilterImageFilterimageFilterimage_filter (output_object)  multichannel-image objectHImageHObjectHObjectHobject * (real)

Gabor and Hilbert filter.

AngleAngleAngleangleangle (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Angle range, inversely proportional to the range of orientations.

Default: 1.4

Suggested values: 1.0, 1.2, 1.4, 1.6, 2.0, 2.5, 3.0, 5.0, 6.0, 10.0, 20.0, 30.0, 50.0, 70.0, 100.0

Value range: 1.0 ≤ Angle Angle Angle angle angle ≤ 500.0

Minimum increment: 0.001

Recommended increment: 0.1

FrequencyFrequencyFrequencyfrequencyfrequency (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Distance of the center of the filter to the DC term.

Default: 0.4

Suggested values: 0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.50, 0.55, 0.60, 0.65, 0.699

Value range: 0.0 ≤ Frequency Frequency Frequency frequency frequency ≤ 0.7

Minimum increment: 0.00001

Recommended increment: 0.005

BandwidthBandwidthBandwidthbandwidthbandwidth (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Bandwidth range, inversely proportional to the range of frequencies being passed.

Default: 1.0

Suggested values: 0.1, 0.3, 0.7, 1.0, 1.5, 2.0, 3.0, 5.0, 7.0, 10.0, 15.0, 20.0, 30.0, 50.0

Value range: 0.05 ≤ Bandwidth Bandwidth Bandwidth bandwidth bandwidth ≤ 100.0

Minimum increment: 0.001

Recommended increment: 0.1

OrientationOrientationOrientationorientationorientation (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Angle of the principal orientation.

Default: 1.5

Suggested values: 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.14

Value range: 0.0 ≤ Orientation Orientation Orientation orientation orientation ≤ 3.1416

Minimum increment: 0.0001

Recommended increment: 0.05

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

Normalizing factor of the filter.

Default: 'none' "none" "none" "none" "none"

List of values: 'n'"n""n""n""n", 'none'"none""none""none""none"

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

Location of the DC term in the frequency domain.

Default: 'dc_center' "dc_center" "dc_center" "dc_center" "dc_center"

List of values: 'dc_center'"dc_center""dc_center""dc_center""dc_center", 'dc_edge'"dc_edge""dc_edge""dc_edge""dc_edge"

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

Width of the image (filter).

Default: 512

Suggested values: 128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048, 4096, 8192

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

Height of the image (filter).

Default: 512

Suggested values: 120, 128, 144, 240, 256, 288, 480, 512, 576, 1024, 2048, 4096, 8192

Example (HDevelop)

gen_gabor(Filter,1.4,0.4,1.0,1.5,'n','dc_edge',512,512)
fft_generic(Image,ImageFFT,'to_freq',-1,'none','dc_edge','complex')
convol_gabor(ImageFFT,Filter,Gabor,Hilbert)
fft_generic(Gabor,GaborInv,'from_freq',1,'none','dc_edge','byte')
fft_generic(Hilbert,HilbertInv,'from_freq',1,'none','dc_edge','byte')
energy_gabor(GaborInv,HilbertInv,Energy)

Result

gen_gaborgen_gaborGenGaborGenGaborgen_gabor returns 2 ( H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Possible Predecessors

fft_imagefft_imageFftImageFftImagefft_image, fft_genericfft_genericFftGenericFftGenericfft_generic

Possible Successors

convol_gaborconvol_gaborConvolGaborConvolGaborconvol_gabor

Alternatives

gen_bandpassgen_bandpassGenBandpassGenBandpassgen_bandpass, gen_bandfiltergen_bandfilterGenBandfilterGenBandfiltergen_bandfilter, gen_highpassgen_highpassGenHighpassGenHighpassgen_highpass, gen_lowpassgen_lowpassGenLowpassGenLowpassgen_lowpass

See also

fft_image_invfft_image_invFftImageInvFftImageInvfft_image_inv, energy_gaborenergy_gaborEnergyGaborEnergyGaborenergy_gabor

Module

Foundation