This type of filter applies a smoothing filter adaptively
over the image. For each pixel the variance of the sur
rounding hexagon values is calculated, and the amount of
smoothing is made inversely proportional to it. The idea
is that if the variance is small then it is due to noise
in the image, while if the variance is large, it is
because of "wanted" image features. As usual the radius
parameter controls the effective radius, but it probably
advisable to leave the radius between 0.8 and 1.0 for the
variance calculation to be meaningful. The alpha parame
ter sets the noise threshold, over which less smoothing
give the most subtle filtering effect, while large values
will tend to smooth all parts of the image. You could
start with values like alpha = 1.2, radius = 1.0 and try
increasing or decreasing the alpha parameter to get the
desired effect. This type of filter is best for filtering
out dithering noise in both bitmap and color images.
Edge enhancement. (-0.1 >= alpha >= -0.9)
This is the opposite type of filter to the smoothing fil
ter. It enhances edges. The alpha parameter controls the
amount of edge enhancement, from subtle (-0.1) to blatant
(-0.9). The radius parameter controls the effective radius
as usual, but useful values are between 0.5 and 0.9. Try
starting with values of alpha = 0.3, radius = 0.8
Combination use.
The various modes of pnmnlfilt can be used one after the
other to get the desired result. For instance to turn a
monochrome dithered image into a grayscale image you could
try one or two passes of the smoothing filter, followed by
a pass of the optimal estimation filter, then some subtle
edge enhancement. Note that using edge enhancement is only
likely to be useful after one of the non-linear filters
(alpha trimmed mean or optimal estimation filter), as edge
enhancement is the direct opposite of smoothing.
For reducing color quantization noise in images (ie. turn
ing .gif files back into 24 bit files) you could try a
pass of the optimal estimation filter (alpha 1.2, radius
1.0), a pass of the median filter (alpha 0.5, radius
0.55), and possibly a pass of the edge enhancement filter.
Several passes of the optimal estimation filter with
declining alpha values are more effective than a single
pass with a large alpha value. As usual, there is a
tradeoff between filtering effectiveness and loosing
detail. Experimentation is encouraged.
References:
The alpha-trimmed mean filter is based on the description
in IEEE CG&A May 1990 Page 23 by Mark E. Lee and Richard
A. Redner, and has been enhanced to allow continuous alpha
adjustment.
The optimal estimation filter is taken from an article
"Converting Dithered Images Back to Gray Scale" by Allen
Stenger, Dr Dobb's Journal, November 1992, and this arti
cle references "Digital Image Enhancement and Noise Fil
tering by Use of Local Statistics", Jong-Sen Lee, IEEE
Transactions on Pattern Analysis and Machine Intelligence,
March 1980.
The edge enhancement details are from pgmenhance(1), which
is taken from Philip R. Thompson's "xim" program, which in
Diffusion", D. E. Knuth, ACM Transaction on Graphics Vol.
6, No. 4, October 1987, which in turn got it from two 1976
papers by J. F. Jarvis et. al.
SEE ALSO
pgmenhance(1), pnmconvol(1), pnm(5)
BUGS
Integers and tables may overflow if PPM_MAXMAXVAL is
greater than 255.
AUTHOR
Graeme W. Gill graeme@labtam.oz.au
Man(1) output converted with
man2html