From: jle@dam.brown.edu (Jon Elion)
Subject: Noise-Reducing Edge Enhancement
Originator: jle@rufus
Organization: Brown University / Cardiac Image Processing Lab
Date: Wed, 19 Aug 1992 13:38:16 GMT

A short time ago, I posted the following request to the net:

> Would be interested in from anyone who has experience with image
> filtering techniques for noise reduction that simultaneously ENHANCE
> edges.  Normally, these two operations are mutually exclusive (as
> noise reduction can tend to BLUR edges, not sharpen them).  There
> exist non-linear approaches that achieve this goal (although
> tending to be computationally very intensive).

> Application is x-ray fluoroscopy (noise is Poisson).  Goal is to reduce
> the Poisson noise while providing edge enhancement.

This is an interesting and challenging problem.  You cannot (as one
respondant suggests) simply do a noise reduction following by an edge
enhancement.  This is also a potentially different problem than a simple
edge-PRESERVING noise reduction process (such as a median filter).

The the case of x-ray fluoroscopy, it is possible to use the motion 
information to help.  See what moved between two subsequent frames.
Anything moving is interesting signal and should not be smoothed.  Anything
stationary can be smoothed by your favorite method (temporal recursive
filtering would work well).  I wonder if a 3-D median filter would work?

The can also be approached as a 2-D spatial problem (working with a
single, static image).  This is the approach referred to by most
respondants.  Thanks to all who help -- here is a summary of the replies:

===========================================================================

Have you tried the Frei-Chen basis functions?  See, for example,
Ballard & Brown.

----------

I have studied this problem and written software to do it.
It is a morphological approach...  The paper this refers to is:

    Peters, R. A. II, ``A New Algorithm for Image Noise Reduction using 
    Mathematical Morphology,'' IEEE Trans. Image Processing, in review.

----------

The noise is Poisson distributed?  Perhaps a low-pass filter to eliminate
the impulse-like noise, and then a edge enhancer to bring out the outline?

Perhaps a filter, like the LOG (Laplacian of the Gaussian) would do?

----------

David Donoho at Berkeley (on leave this year at Stanford)
and Iain Johnstone at Stanford have written several papers on nonlinear
wavelet techniques for noise removal and function estimation that
can be applied to image processing.  Ron DeVore and I have written
an overview of how to derive near-optimal (in various mathematical senses)
linear and nonlinear wavelet-based algorithms for image compression and
noise removal.  These noise removal algorithms tend to preserve sharp edges;
basically they preserve as signal high amplitude-low frequency, low amplitude-
low frequency, and high amplitude-high frequency artifacts as signal, and
discard only low amplitude-high frequency artifacts as noise.  Thus, there
is much less blurring of the images.

The paper is available via anonymous ftp to math.purdue.edu in postscript
format (300dpi), without the images, as pub/lucier/nearoptimal.ps.
It will appear as an invited paper at MILCOM '92, in San Diego in
October.  The image compression results appear in a paper by DeVore,
Bjorn Jawerth, and me entitled ``Image compression through wavelet transform
coding'' that appeared in the March 1992 special issue of the IEEE Transactions
on Information Theory devoted to wavelets and multiresolution analysis.

----------

How did you determine the specific distribution of the
noise?  I am working with cervical x-ray images that are bi-modal.
I have a good idea of where the break point occurs using an 
automated technique (average pixel intensity of background noise
regions) but it is not the ideal threshold.  The ideal threshold
might be a std. dev up from the mean.  In any case, I would like
to analyze the statistics of the noise more, any reccomendations?

----------

I've had real good luck with a median filter.  It's kind of like
neighborhood averaging, but has the effects you're looking for.

The algorithm is:  For each pixel in the src image, collect all the
pixel values in an MxN area around the pixel, sort them, and assign the
median value to the pixel in the dst image.

The advantage of using the median value is that on one hand, it
discards noise because 'bad' values collect at the ends of the sorted
list.  On the other hand, it's very sensitive to edges because as the
neighborhood moves across the edge, the median shifts quickly.

Stated as I did, it sounds expensive, but there are a number of
optimizations.  The neighborhood changes only incrementally as you scan
across the image.  The pixel lists don't need to be sorted if the
values can be kept in 'buckets' counting the number of pixels of each
value.

----------

I found a technique several years ago that works very well in
reducing noise and preserving edges.  It is called the SNN filter
SNN stands for symmetric nearest neighbor.  It was developed at the
University of Maryland, I don't have the tech paper anymore, but 
I believe it was work done under Dr. Rosenfeld. 

   To compute a 3x3 SNN filter
   
      -------------------
      |  A  |  B  |  C  |     Take opposing pixels:
      |-----------------|      A and I, B and H, C and G, and D and F,
      |  D  |  X  |  F  |      of these opposing pairs save the one that
      |-----------------|      is closest in value to X.  Take the  
      |  G  |  H  |  I  |      mean or median of the 4 closest neighbors
      -------------------      and replace the center pixel.
      
      You do the same for a 5x5.  a b c d e   a and y, b and x, c and w, ...
                                  f g h i j   g and s, h and r, i and q ...
                                  k l m n o
                                  p q r s t   save the nearest 12 pixels 
                                  u v w x y   and compute mean or median

----------

Try:

D.T. Kuan et al., "Adaptive noise smoothing filter for images with
signal-dependent noise,"  IEEE Trans Patt. Anal. Mach. Intel., vol 7,
pp 653-665, Mar 1985

S.S. Jiang and A.A. Sawchuk, "Noise updating repeated Wiener filter
and other adaptive noise smoothing filters using local image
statistics," Appl Optics, vol 25, pp 2326-2337, Jul 1986

By using the appropriate windows, these local filters will leave noise
at the edges while smoothing only the homogeneous regions.  Both
address Poisson noise as well.

----------

I understand you are interested in techniques for de-blurring images
obtained by X-ray fluoroscopy.  <advertising deleted> quantified maximum
entropy package has been used for a very wide range of image
reconstruction applications, including de-blurring.  Poisson statistics
are included as standard.

----------

Well, this is not exactly what you're asking for, but your question
reminds me of a homomorphic filtering technique in [1] for
"simultaneous dynamic range reduction and contrast enhancement."  The
technique may be adaptable to your problem.  A figure demonstrating
the effect is reproduced in [2, pp. 183-187] and [3, pp. 213-218].

If the method *does* turn out to be useful to you, I'd appreciate
hearing about it.

[1] Stockham, T. G., Jr.  (1972).  "Image Processing in the Context of
a Visual Model."  Proc. IEEE, vol. 60, no. 7, pp. 828-842.

[2] Gonzalez, R. C., and Wintz, P. (1987).  Digital Image Processing,
2nd ed., Addison-Wesley.

[3] Gonzalez, R. C., and Woods, R. E. (1992).  Digital Image
Processing, Addison-Wesley.

----------

I had good success with the modified trimmed mean (MTM) filter :

   Y H Lee & S A Kassam - Generalized Median Filtering and Related Nonlinear
   Filtering Techniques, IEEE Trans. Acoustics Speech & Signal Processing,
   vol. 33, no. 3, June 1985, pp 672 - 683.

This is compared with other, similar, techniques in :

   Y-H Lee & S Tantaratana - Decision-Based Order Statistics, IEEE Trans.
   ASSP, vol. 38, no. 3, March 1990, pp 406 - 420.

As originally formulated the filter is one dimensional (and this is the
form in which I used it), but the second paper shows results of its use in 2-D,
presumably by applying it in one direction and then the other.

----------

For SAR speckle reduction the goal (in general) is to remove the
"noise" that results from coherent illumination of surfaces "rough"
at the illumination wavelength. Most techniques are either based on
multiple looks (different angles or different frequencies), where
the signal reinforces and the "noise" averages out, or on filters
that effectively smooth the image (causing edges and point features
to smooth/blur as well). The speckle tends to be complex Gaussian.

An approach we found to work well is the Crimmins filter. It is
morphological (and non-linear) and seems to be good for reducing the
graininess while preserving high frequency features. The reference
I know of is

  T.R. Crimmins, "Geometric Filter for Speckle Reduction", Applied
  Optics, Vol. 24, pp. 1438-1443, 1985.

----------

How about: Edge preserving smoothing
Proc, 4th Int. Conf on Pattern Recognition
Nov 7-10 1978 Kyoto
Nagao & Matsuyama


Basically, compute variance and mean in 4 quadrants in the neighbourhood
around a point and take the mean of the quadrant with the lowest vaariance.
In TCL-Image on a Quadra: 1.9 seconds for a 256*256 image independent of
neighbourhoodsize.

----------

|> How about: Edge preserving smoothing
|> Proc, 4th Int. Conf on Pattern Recognition
|> Nov 7-10 1978 Kyoto
|> Nagao & Matsuyama
|> 
|> Basically, compute variance and mean in 4 quadrants in the neighbourhood
|> around a point and take the mean of the quadrant with the lowest vaariance.
|> In TCL-Image on a Quadra: 1.9 seconds for a 256*256 image independent of
|> neighbourhoodsize.

Yep, probably a good technique but howcome "independent of neighbourhood
size". I don't know that Quadra system but I get size independence only
on a vectorizing machine like a cray by careful splitting up the summations
over rows and then columns (and then CPU time is peanuts).

For other filter techniques see:
du Buf, J.M.H. and Campbell, T.G. (1990) A quantitative evaluation of edge-preserving smoothing techniques. Signal Processing 21, pp 289-301.

Contains also methods which enhance edges.

----------

Back a few years ago when I was working for CCSP at NC State
University, Simulated Annealing was all the rage among some of the
faculty.  Griff Bilbro et al. were using SA, as opposed to relaxation
techniques, to clean up extremely noisy images, i.e., signal ~= noise.
The results seemed impressive, but I was working on something else
entirely, and I don't remember any more than this.