# FourierGaussFltImg

## DESCRIPTION

Applies a Gaussian frequency domain filter to a frequency domain image. The effect is to convolve a filter with the image in the spatial domain. The frequency domain representation of the filter is as follows:
```H(u,v) = HF Gain + (DC Gain - HF Gain) *
```
```exp {-[(a11 u + a12 v)2 + (a21 u + a22 v)2 ]}
```

where

```H( )     = transfer function of the filter
u,v      = 2D frequency coordinates
HF Gain  = gain of filter at the Nyquist frequency
(highest)
DC Gain  = gain of the filter at zero frequency (DC)
Min Half = frequency of half power point along the
minor elliptical axis
Maj Half = frequency of half power point along the
major elliptical axis
Theta    = angle in degrees of the filter's orientation
xSize    = x dimension of the source image
ySize    = y dimension of the source image
sigmaL   = sqrt (0.693147 / (minHalf*minHalf))
sigmaS   = sqrt (0.693147 / (majHalf*majHalf))
phi      = 0.017453 * Theta
a11      =  sigmaS * cos(phi) / xSize
a12      =  sigmaS * sin(phi) / ySize
a21      = -sigmaL * sin(phi) / xSize
a22      =  sigmaL * cos(phi) / ySize
```

The input must be a frequency domain image in the packed format produced by the ForwardFFTImg module (see format description in ForwardFFTImg documentation). The Fourier transformation and the cross correlation are discussed in:

Digital Image Processing, Gonzales, R.C., Wintz, P., Addison Wesley, Second Edition, 1987, pp 61--137.

## INPUTS

Port: Img In
Type: Lattice
Constraints: 1..3-D
Source frequency domain image.

## WIDGETS

Port: HF Gain
Type: Dial
HF Gain constant value.

Port: DC Gain
Type: Dial
DC Gain constant value.

Port: Min Half
Type: Dial
Min Half constant value.

Port: Maj Half
Type: Dial
Maj Half constant value.

Port: Theta
Type: Dial
Theta constant value.

## OUTPUTS

Port: Img Out
Type: Lattice
Constraints: 1..3-D
Filtered frequency domain image.

## KNOWN PROBLEMS

Selecting MajHalf = 0 or MinHalf = 0 will cause a NaN to be generated in the filter kernel, which will result in NaNs throughout the inverse transformed image downstream. Mathematically, the correct value would be a zero instead of a NaN, but the inputs are not tested for this condition.