TIME_REQUIREMENTS · BUGS · SEE_ALSO
mode -- modal filter a list of images
mode input output xwindow ywindow
- List of input images.
- List of filtered images. The number of input images must be the same as the number of output images. If the input image name is the same as the output image name the original image is replaced by the filtered image.
- xwindow, ywindow
- The size of the modal filter. Xwindow and ywindow are assumed to be odd integers. Even values will be rounded up to the nearest odd integer.
- zloreject = INDEF, zhireject = INDEF
- The minimum and maximum good data values. Zloreject and zhireject default to -MAX_REAL and MAX_REAL respectively.
- boundary = "nearest"
- The type of boundary extension. The options are:
- Use the value of the nearest boundary pixel.
- Use a constant value.
- Reflect pixel values around the boundary.
- Wrap pixel values around the boundary.
- constant = 0.
- The value for constant value boundary extension.
MODE takes a list of input images input and produces a set of filtered output images output . The modal filter consists of a sliding rectangular window of dimensions xwindow by ywindow . The center pixel of the window is replaced by the mode of all the pixels in the window where the mode of a sequence of numbers is defined below.
mode = 3. * median - 2. * mean
The median of a sequence of pixels is defined as the value of the (n + 1) / 2 number in the ordered sequence. Out of bounds pixel references are handled by setting the parameter boundary .
The zloreject and zhireject parameters may be used to reject bad data from the modal filtering box. If no good data is left in the filtering box, then the mode is set to zloreject if the majority of the pixels are less than zloreject, or to zhireject if the majority of pixels are greater than zhireject.
A derivation of the expression for the mode used here can be found in "Statistics in Theory and Practice", Robert Lupton, 1993, Princeton University Press, problem 2.
1. Modal filter an image using a 5 by 5 window and nearest pixel boundary extension.
im> mode m74 m74.5by5 5 5
2. Modal filter an image using a 3 by 3 window and constant boundary extension.
im> mode m74 m74.5by5 3 3 boun=const const=0.
3. Modal filter the test image, rejecting pixels < 5 and > 19935 from the modal filter.
im> mode dev$pix pix77 7 7 zlo=5 zhi=19935
Mode requires approximately 11 and 19 CPU seconds to filter a 512 by 512 integer image using a 5 by 5 and 7 by 7 filter window respectively (SPARCStation2).
The sort routine for the smaller kernels has been optimized. It may be desirable to optimize higher order kernels in future.
The IRAF task FMODE is significantly more efficient than MODE and should be used if the data can be quantized.