• Geometry
  • Soap Bubbles
  • Medical Imaging
  • Robotics
  • Fluids
  • Semiconductors
  • Wave Propagation
  • Image Denoising
  • Optimal Design
  • Seismic Analysis
  • Tumor Modeling
  • Optimal Control
  • InkJet Plotters
  • Traveling Salesmen
  • ViscoElastic Flow
  • Pinching Droplets
  • Chemical Pathways







    J.A. Sethian
  • 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 Smoothed Continued smoothing

    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 curvature.
    (236K) (102K)
    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:

    Design your own image, add noise, and then let the Min/Max algorithm automatically denoise it


    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.
    This paper List of downloadable publications