Generate a Gabor filter.
gen_gabor generates a Gabor filter with a user-definable bandpass frequency range and sign for the Hilbert transformation. 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).
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.
|
ImageFilter (output_object) |
multichannel-image(-array) -> 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 |
| Bandwith 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 being passed. | |
| 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 | |
|
Size (input_control) |
integer -> integer |
| Size (dimension) of the image (filter). | |
| Default value: 512 | |
| List of values: 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 | |
fft_image(Image,&FFT); gen_gabor(&Filter,1.4,0.4,1.0,1.5,512); convol_gabor(FFT,Filter,&Gabor,&Hilbert); fft_image_inv(Gabor,&GaborInv); fft_image_inv(Hilbert,&HilbertInv); energy_gabor(GaborInv,HilbertInv,&Energy);
gen_gabor returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception handling is raised.
gen_gabor is reentrant and processed without parallelization.
gen_bandpass, gen_bandfilter, gen_highpass, gen_lowpass
Image filters