HISTORY OF THE METHODS/FLOW CHART
ABOUT THE AUTHOR/CV
Noise Removal from Images
Imagine an image with noise. For example, the image on the left
below is a corrupted
binary (black and white) image of some letters; 60% of the pixels are
thrown away and replaced by random gray values ranging from black to white.
A "noisy" image
One goal in image restoration is to remove the noise from the image in
such a way that the "original" image is discernible. Of course,
"noise" is in the eye of the beholder; removing the "noise" from a
Jackson Pollack painting would considerably reduce its value.
Nonetheless, one approach is to decide that features that
exist on a very small scale in the image are noise, and that removing these
while maintaining larger features might help "clean things up".
One well-traveled approach is to smooth the image.
The simplest such version is replace each pixel it by the average of the
neighboring pixel values.
If we do this a few times we get the image in the middle above;
if we do it many times, we get the image on the right.
On the plus side, much of the spotty noise has been muted out. On the
downside, the sharp boundaries that make up the letters have been smeared
due to the averaging.
While many more sophisticated approaches exist, the goal is the
same: to remove the noise, and keep the real image sharp.
The trick is to not do too much, and to "know when to stop".
A Level Set Approach to Noise Removal
Level Set Methods
offer an appealing approach to noise removal.
In particular, they exploit the fact that curves
moving under their curvature
smooth out and disappear.
The idea is to view the pixel values as a topographic map; the intensity
(somewhere between white and black) at each pixel is the height of the
surface at that point. Suppose we then let each contour undergo
motion by curvature. Then very
small contours, corresponding to spikes of noise, will disappear
quickly. Better yet, the boundaries will remain sharp, since they
will not blur under this motion, and instead only move according to their
Movies of Noise Removal under a Level Set Approach
(So that the process can be observed, the movies are much slower than
the actual execution time)
Advantages of this Approach
First of all, since the method evolves contours, boundaries remain
essentially sharp and do not blur. Second, a "min/max" switch
is used to control whether or not curvature flow is applied; this
results in an algorithm that stops automatically once the smallest
features are removed.
An Interactive Java Applet:
The algorithm treats an image as an array of pixel values, and,
tracks the evolution of iso-intensity contours using a level set method.
The key idea lies in a "min/max" speed function of the form
F = min(K,0) or F=max(K,0), where K is the curvature and F is the
speed in the normal direction. The choice of
the min or max is controlled by a switch which
depends the local average pixel value at any point.
This results in an extremely robust and straightforward algorithm which
relies only on a local nearest neighbor stencil, has a hierarchical
scale of noise removal, and, most importantly, stops automatically.
Continued application of the scheme once the noise is removed
causes no further degradation in the larger features.
Malladi, R., and Sethian, J.A.,
Image Processing via Level Set Curvature Flow ,
Proceedings of the National Academy of Sciences,
Vol. 92(15), pp. 7046--7050, July 1995.
List of downloadable publications