gen_gabor ( : ImageFilter : Angle, Frequency, Bandwidth, Orientation, Norm, Mode, Width, Height : )

Generate a Gabor filter.

gen_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 Angle, Frequency, Bandwidth und Orientation such that a certain frequency band and a certain direction range in the spatial domain is filtered out in the frequency domain.

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

The parameters Angle and Bandwidth are used to determine the range of frequencies and angles being passed by the filter. The larger Angle is, the smaller the range of angles passed by the filter gets (because the ``crescent'' gets narrower). The larger Bandwidth is, the smaller the frequency band being passed gets (because the ``crescent'' gets thinner).

To achieve a maximum efficiency of the filtering operation, the parameter Norm can be used to specify the normalization factor of the filter. If fft_generic and Norm = 'n' is used the normalization in the FFT can be avoided. Mode can be used to determine where the DC term of the filter lies. If fft_generic is used, 'dc_edge' can be used to gain efficiency. If fft_image and fft_image_inv are used for filtering, Norm = 'none' and Mode = 'dc_center' must be used. Note that gen_gabor cannot create a filter that can be used with rft_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.


Parameters

ImageFilter (output_object)
multichannel-image -> object : real
Gabor and Hilbert filter.

Angle (input_control)
real -> real
Angle range, inversely proportional to the range of orientations.
Default value: 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
Typical range of values: 1.0 <= Angle <= 500.0
Minimum increment: 0.001
Recommended increment: 0.1

Frequency (input_control)
real -> real
Distance of the center of the filter to the DC term.
Default value: 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
Typical range of values: 0.0 <= Frequency <= 0.7
Minimum increment: 0.00001
Recommended increment: 0.005

Bandwidth (input_control)
real -> real
Bandwidth range, inversely proportional to the range of frequencies being passed.
Default value: 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
Typical range of values: 0.05 <= Bandwidth <= 100.0
Minimum increment: 0.001
Recommended increment: 0.1

Orientation (input_control)
real -> real
Angle of the principal orientation.
Default value: 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
Typical range of values: 0.0 <= Orientation <= 3.1416
Minimum increment: 0.0001
Recommended increment: 0.05

Norm (input_control)
string -> string
Normalizing factor of the filter.
Default value: 'none'
List of values: 'none', 'n'

Mode (input_control)
string -> string
Location of the DC term in the frequency domain.
Default value: 'dc_center'
List of values: 'dc_center', 'dc_edge'

Width (input_control)
integer -> integer
Width of the image (filter).
Default value: 512
List of values: 128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048, 4096, 8192

Height (input_control)
integer -> integer
Height of the image (filter).
Default value: 512
List of values: 120, 128, 144, 240, 256, 288, 480, 512, 576, 1024, 2048, 4096, 8192


Example
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,'dc_edge')
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_gabor returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception handling is raised.


Parallelization Information

gen_gabor is reentrant and processed without parallelization.


Possible Predecessors

fft_image, fft_generic


Possible Successors

convol_gabor


Alternatives

gen_bandpass, gen_bandfilter, gen_highpass, gen_lowpass


See also

fft_image_inv, energy_gabor


Module

Foundation



Copyright © 1996-2008 MVTec Software GmbH