'**SUMMARY**
Creates a gaussian filter of 64x64 pixels, resizes it to fit
image, applies DFT on image using the filter.
Returns image with DFT applied on it
**PARAMETERS**
* *dia* -  int - diameter of Gaussian filter
* *highpass*: BOOL True: highpass filter False: lowpass filter
* *grayscale*: BOOL
**EXAMPLE**
>>> im = Image("lenna")
>>> img = im.applyGaussianfilter(dia=400,highpass=True,grayscale=False)
Output image: http://i.imgur.com/DttJv.png
>>> img = im.applyGaussianfilter(dia=400,highpass=False,grayscale=False)
Output img: http://i.imgur.com/PWn4o.png
>>> im = Image("grayscale_lenn.png") #take image from here: http://i.imgur.com/O0gZn.png
>>> img = im.applyGaussianfilter(dia=400,highpass=True,grayscale=True)
Output img: http://i.imgur.com/9hX5J.png
>>> img = im.applyGaussianfilter(dia=400,highpass=False,grayscale=True)
Output img: http://i.imgur.com/MXI5T.png
**SEE ALSO**
:py:meth:`rawDFTImage`
:py:meth:`getDFTLogMagnitude`
:py:meth:`applyDFTFilter`
:py:meth:`highPassFilter`
:py:meth:`lowPassFilter`
:py:meth:`bandPassFilter`
:py:meth:`InverseDFT`
:py:meth:`applyButterworthFilter`
:py:meth:`InverseDFT`
:py:meth:`applyGaussianFilter`
:py:meth:`applyUnsharpMask`'

def applyGaussianFilter(self, dia=400, highpass=False, grayscale=False):

    (w, h) = self.size()
    intensity_scale = ((2 ** 8) - 1)
    sz_x = 64
    sz_y = 64
    x0 = (sz_x / 2.0)
    y0 = (sz_y / 2.0)
    (X, Y) = np.meshgrid(np.arange(sz_x), np.arange(sz_y))
    D = np.sqrt((((X - x0) ** 2) + ((Y - y0) ** 2)))
    flt = (intensity_scale * np.exp(((-0.5) * ((D / dia) ** 2))))
    if highpass:
        flt = (intensity_scale - flt)
    flt = Image(flt)
    flt_re = flt.resize(w, h)
    img = self.applyDFTFilter(flt_re, grayscale)
    return img
