Impulsive Noise and Scratch Removal
with Preliminary Noise Detection
Noise becomes impulsive if most of the signal
values change slightly, and at the same time some signal
values change dramatically, in other words the change is
clearly visible. Impulses may have different amplitude values,
or all the same values. Noise commonly appears as black and/or
white spots in images, i.e. the noisy pixels have either
a very small or a very large value. This type of noise is
often called salt-and-pepper noise. Pure salt-and-pepper
is very easy to remove from images because the maximal value
occurs rarely in actual images and thus just checking whether
the pixel has a maximal or minimal value reveals if it is
corrupted or not. A more realistic noise is modeled as bit
errors in the signal values. Typical sources for this kind
of noise are channel errors in communication or storage.
A different variant of impulsive noise is
when the isolated scratches (usually truly white or truly
black) appear on the image.
The classical approach to removing impulsive
noise from images is to use the median filter or one of its
modifications.
As a result disposing of noise leads also
to a complete blurring of the image, i.e. it causes serious
problems with details and edge preservation. The explanation
of this fact is simple. Median filtering does not recognize
if it is necessary to correct a current pixel or not and
in general it corrects all the pixels.
To solve this general problem, it is necessary
to detect the noisy pixels, to differentiate them from the
other pixels and to correct only the detected noisy pixels.
To implement this detection, we propose the
following solution.
It is known that the median filter is a sliding
window filter, with the window N x N, where N is an odd number.
So before filtering we create a local histogram in this window.
As we know, impulsive noise is a “big” jump in brightness,
so the brightness value of the central pixel belongs to one
of the ends of the variation series created from the local
histogram. We analyze where the value of central pixel of
the window is positioned in the variation set. If it is positioned
close to the ends, we can assume that it is an impulsive
corruption and must be corrected.
This kind of analysis is used for the improvement
of many filters: median, rank-order, cellular neural, etc.
Nonlinear cellular neural filters for impulsive noise filtering
are quite different from median filters. They are more selective
in filtering impulsive noise. But in some cases they give
too many false responses in detection and removal of impulses.
As a result the filtered image may also be blurred or corrupted.
The supplement of this filter by the described detector gives
very good results.
So in general by implementing such preliminary
noise detection, we achieve excellent results. For example,
the median filter becomes gentler and less destructive to
the image, but still very effective against impulsive noise
and scratches.
Examples
(click on the images to enlarge,
make sure you don't have pop-ups disabled)
Scratch Removal
 |
 |
Scratch |
Removed scratch |
|