FILT_MMSE Function
Performs 1D, 2D or 3D adaptive minimum mean-squared error filtering.
Usage
result = FILT_MMSE(image, noise_var, wxdim[, wydim[, wzdim]])
Input Parameters
image—A 1D, 2D, or 3D array containing a signal; point or signal-interleaved signals; an image; image, row or pixel interleaved images; or a volume.
noise_var—A scalar float data type that is the variance of the noise in image.
wxdim—The width of the filtering window.
wydim—(optional) The height of the filtering window. (Used for images and volumes only.)
wzdim—(optional) The depth of the 3D median filtering window. (Used for volumes only.)
Returned Value
result—An array of the same size and dimensions as image, unless otherwise affected by using the Edge keyword.
Keywords
Edge—A scalar string indicating how edge effects are handled. (Default: 'zero') Valid strings are:
*'pad'—The input image is padded before the filtering operation with the value specified using the Pad_Value keyword.
*'zero'—Sets the border of the output image to zero. (Default)
*'copy'—Copies the border of the input image to the output image.
*'reduce'—Returns a reduced-size image that is smaller than the input image by the kernel dimensions.
Intleave—A scalar string indicating the type of interleaving of 2D input signals and 3D image arrays. Valid strings and the corresponding interleaving methods are:
*'point'—The 2D input array arrangement is (px) for p  point-interleaved signals of length x.
*'signal'—The 2D input image array arrangement is (xp) for p  signal-interleaved signals of length x.
*'pixel'—The input array arrangement is (pxy) for p  pixel-interleaved images of x-by-y.
*'row'—The 3D image array arrangement is (xpy) for p  row-interleaved images of x-by-y.
*'image'—The 3D image array arrangement is (xyp) for p  image-interleaved images of x-by-y.
*'volume'—The input image array is treated as a single entity.
Pad_Value—The value to use for the image padding. (Default: 0)
 
note
The Pad_Value keyword is valid only when Edge = 'pad'.
Spot—This keyword specifies explicit positioning of the element number of the filter window “sweet spot.” The Spot keyword default depends on the setting of the Edge keyword as shown in Table 10-1: Edge and Spot Keywords Relationships.
Zero_Negatives—If set, all negative values in the result image are set to zero.
Discussion
The adaptive minimum mean-squared error (MMSE) filter is useful for removing Gaussian or Rayleigh noise. Each pixel in the filtered result is computed from the input image pixels in the filter window as follows:
where local_var and local_mean are the variance and mean, respectively, of the pixels in the filter window.
Example
; Read an image.
image = IMAGE_READ(!IP_Data + 'face.tif')
; Corrupt image with Rayleigh noise that has a variance of 15.0.
noise_var = 15.0
noise = NOISE_RAYLEIGH(noise_var, image('width'), $
image('height'))
noise = noise + 128
noise_image = IPMATH(image('pixels'), '+', noise, /No_Clip)
; Remove the noise using the MMSE filter.
mmse_image = FILT_MMSE(noise_image, noise_var, 3, 3)
; Display the image.
TVSCL, mmse_image
See Also