; MWFLT
;---------------------------------------------------------------
;! applies linear & non-linear filters to images
;# Task Analysis Imaging
;-----------------------------------------------------------------------
;; Copyright (C) 1995, 1998, 2004, 2006
;; Associated Universities, Inc. Washington DC, USA.
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2 of
;; the License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public
;; License along with this program; if not, write to the Free
;; Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
;; MA 02139, USA.
;;
;; Correspondence concerning AIPS should be addressed as follows:
;; Internet email: aipsmail@nrao.edu.
;; Postal address: AIPS Project Office
;; National Radio Astronomy Observatory
;; 520 Edgemont Road
;; Charlottesville, VA 22903-2475 USA
;-----------------------------------------------------------------------
MWFLT LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
MWFLT Applies a nonlinear low/high pass filter to an image.
INNAME Input image name (name)
INCLASS Input image name (class)
INSEQ 0.0 9999.0 Input image name (seq. #)
INDISK 0.0 9.0 Input image disk unit #
OUTNAME Output image name (name)
OUTCLASS Output image name (class)
OUTSEQ -1.0 9999.0 Output image name (seq. #)
OUTDISK 0.0 9.0 Output image disk unit #.
BLC Bottom left corner of input
TRC Top right corner of input
OPCODE Operation codes: 'ROW '
'MW ','ALFA','MODE','NRML'
;MAX ', 'MIN '
CPARM 1,2: Filter Box width, height
('ROW' 2: "Median" pixel
3: include fraction
4: >0 => Print progress
5: 'ROW' pixel increment
6: 'ROW' Saturation Limit
7: 'ROW' Saturation Value
DPARM 1:Data Scale, 2:Filter scale
3:'NRML' background scale
----------------------------------------------------------------
MWFLT
Task: Task which applies various high or lowpass filters to images.
Handles blanking and data cubes. MWFLT is based on the TAFFY
paraform, and uses its scrolling buffer ability. It implements
five filters which work on a matrix of pixels surrounding and
containing each input pixel. The dimensions of this matrix are
passed to the task via CPARM.
Adverbs:
INNAME.....Input image name (name). Standard defaults.
INCLASS....Input image name (class). Standard defaults.
INSEQ......Input image name (seq. #). 0 => highest.
INDISK.....Disk drive # of input image. 0 => any.
OUTNAME....Output image name (name). Standard defaults.
OUTCLASS...Output image name (class). Standard defaults.
OUTSEQ.....Output image name (seq. #). 0 => highest unique.
OUTDISK....Disk drive # of output image. 0 => highest disk
number with sufficient space.
BLC........Bottom right corner in input image of desired
subimage. Default is entire image.
TRC........Top right corner in input image of desired
subimage. Default is entire image.
OPCODE.....User specified operation code:
'ROW' => Median window filter for rows. Result is
data +/- Median filter of pixels in the
CPARM(1) pixels on the row surrounding and
containing each input point. CPARM(2) is
the Nth point of the CPARM(1) pixels to
used for the sky. A true median is
CPARM(2)=CPARM(1)/2 The output values
are scaled by DPARM()s (D() below):
output = D(1)*input + D(2)*MW(input)
Highpass, sky removal: D(1)=1,D(2)=-1
Low pass, star removal: D(1)=0,D(2)=1
'MW' => Median window filter. Result is data
+/- Median filter of pixels in the
CPARM(1)xCPARM(2) window surrounding and
containing each input point.
output = D(1)*input + D(2)*MW(input)
(Much slower than 'ROW')
'MAX '=> Take maximum value in the CPARM(1)xCPARM(2)
window surrounding the pixel
output = D(1)*input + D(2)*MWMax(input)
'MIN '=> Take minimum value in the CPARM(1)xCPARM(2)
window surrounding the pixel
output = D(1)*input + D(2)*MWMin(input)
'ALFA'=> Alpha trim filter. Median, but extreama
are excluded. Each result point is
the mean of all the values in the
CPARM(1)xCPARM(2) window surrounding and
containing each input points which are
greater than CPARM(3) percent of the
values in the window and less than
CPARM(3) percent of the values.
(ie C(3)=25 => points 25 to 75 %)
output = D(1) * input + D(2) * MW(input)
'MODE'=> Mode window filter. Similar to Median
except Mode used. The mode approximated
as 3 times the median of the distribution
minus twice the mean.
'NRML'=> Normalization filter. This filter is an
extension of the alpha trim and mode
filters. It is mainly used to reduce the
dynamic range of an image. Each result
point is the sum of the square root of the
normalized mode of the distribution of
pixels and a normalization function. This
function is simply the original data point
minus the mode of the pixels in the window
that are within the given alpha trim range
(see above) times a scale factor based on
the RMS of the distribution of pixels. The
scale factor is inversely proportional to
the RMS so that lighter features are
enhanced while brighter features are
reduced. The formula is:
RESULT(I)=(DATA(I)-MODE(I))*(D(1)-D(2))*
(ABS(MODE(I))/DATAMAX)+D(2))/RMS(I)
+ D(3)*SQRT(ABS(MODE(I)/DATAMAX))
CPARM......CPARM(1) is the width of the window.
For 'ROW' CPARM(1) the maximum value is the length.
CPARM(2) is the Nth brightest value to use as
the median. (True median is CPARM(2)=C(1)/2)
For other opcodes CPARM(2) is the window height.
The window values must be odd, greater than 0,
and less than or equal 201.
For 'ALFA' or 'NRML' CPARM(3) is the fraction of
points in the window which define the cutoffs.
This value must be between zero and 0.5.
CPARM(4) specifies whether row numbers should be
output as the task is running (-1 => no)
DPARM......If OPCODE is not 'NRML', DPARM(1) is the scale for
the input image in calculating the output image.
DPARM(2) is the scale for the median.
output = input*DPARM(1) + median*DPARM(2)
Median highpass, sky subtraction:
D(1)=1,D(2)=-1
Median lowpass, star removal:
D(1)=0,D(2)=1
If image is a negative, to remove sky and
make positive:
D(1)=-1,D(2)=1
Default: DPARM(*)=0 => DPARM(1)=1,DPARM(2)=-1
'NRML', DPARM(1) is the maximum RMS to be in
the output image, DPARM(2) is the minimum RMS
to be in the output image, and DPARM(3) is the
weight of the square root of the background in
the calculation of the output image.
----------------------------------------------------------------
MWFLT: Task which applies Median Filters
DOCUMENTOR: Glen Langston, Thad A. Polk/Don Wells NRAO.
RELATED PROGRAMS: All AIPS image tasks.
PURPOSE
MWFLT is designed to apply lowpass or highpass filters to images.
It uses the 'scrolling buffer' concept with space for a 201-row buffer.
It allows a framework which allows the implementation of any operator
which depends on the pixels within a window of user specified size.
MWFLT can handle up to 7 dimensional images and supports blanking. A
subimage of the
input image may be selected.
Since optical images often do not have correct coordinate info,
MWFLT also will update the coordinate type increment, reference pixel
and reference location via the CPARM adverb. If the input image has
blanks for the axis types, the axis type is assume to be a tangent
projection of Ra and Dec.
DETAILS ABOUT SPECIFIC OPCODES
ROW: Median filter of data in one row. Considerably faster than MW.
CPARM(1) is the width of the median filter (no maximum).
CPARM(2) is the Nth value of the sorted list of pixels to use as
the filter output. A true median is CPARM(2)=CPARM(1)/2. If the
image is full of objects, then the sky is better subtracted by a
smaller CPARM(2). For negative images, make CPARM(2) bigger.
MW: Median window filter. The median calculation uses a two
dimensional merge sort algorithm to keep all the pixels within
the window in sorted order. The result is the pixel value in the
middle of this sorted array.
MAX: Uses the MW code, but returns the max in the window
MIN: Uses the MW code, but returns the min in the window
See L Rudnick, (2002), PASP, 114, 427 for uses that may be made
of this simple filter. Larry recommends setting CPARM(1) and
CPARM(2) to at least 3x beam extent in pixels and DPARM = 0,1.
Then run OPCODE='MIN' on the input image and OPCODE='MAX' on the
output of 'min' to get all emission larger than 3x beam. This
can be subtracted from the original image with COMB to get only
more compact emission.
ALFA: Alpha-trimmed mean filter, which is formed by taking the average
of a subset of the data points in the window. The subset is
defined as all those data points greater than CPARM(3) percent of
the data and less than CPARM(3) percent of the data.
MODE: Mode filter. The mode of the distribution is approximated as 3
times the median of the distribution minus twice the mean. In
addition, outliers of the distribution are excluded by
calculating the standard deviation of the sample and using the
Chauvenet rule to calculate a normal distribution cutoff value
for the sample. Only those pixels whose values are between the
two cutoff limits are allowed to enter the median, mean, and
standard deviation calculations. This result is a much closer
estimate of the true background than is the mean.
NRML: Normalization filter. It calculates the result as the sum of the
square root of the mode of the distribution and a normalization
function. This function is simply the original data point minus
the mode of the pixels in the window that are within the given
alpha trim range times a scale factor that is inversely
proportional to the r.m.s. of the distribution of pixels. This
operator is mainly useful in reducing the dynamic range of images
while enhancing lighter features.