Next: Hierarchical adaptive filtering
Up: Noise reduction from the
Previous: Hierarchical Wiener filtering
Adaptive filtering from the wavelet transform
In the preceding algorithm we have assumed the properties of the
signal and the noise to be stationary. The wavelet transform was first
used to obtain an algorithm which is faster than classical Wiener
Filtering. Then we took into account the correlation between two
different scales. In this way we got a filtering with stationary
properties. In fact, these hypotheses were too simple, because in
general the signal may not arise from a Gaussian stochastic
process. Knowing the noise distribution, we can determine the
statistically significant level at each scale of the measured wavelet
coefficients. If wi(x) is very weak, this level is not significant
and could be due to noise. Then the hypothesis that the value
Wi(x) is null is not forbidden. In the opposite case where
wi(x) is significant, we keep its value. If the noise is Gaussian,
we write:
Wi = |
0 |
|
(14.90) |
Wi = |
wi |
|
(14.91) |
Generally, we choose k = 3.
With a filter bank we have a biunivocity between the image and its
transform, so that the thresholded transform leads to only one restored
image. Some experiments show us that uncontrolled artifacts
appear for high level thresholding (k=3). The decimation done at
each step on the wavelet transform takes into account the
knowledge of the coefficients at further resolutions. The
thresholding sets to zero the intrinsic small terms which play their part in
the reconstruction. With the lattice filter the situation is very
different. No decimation is done and the thresholding keeps all
significant coefficients. Where the coefficients are set to zero, we
do not put zero, but we say that these values are unknown. The redundancy
is used to restore them. Before the thresholding we have a
redundant transform, which can be decimated, after the
thresholding we get a set of coefficients from which we wish to
restore in image.
If one applies the reconstruction algorithm, then it is not guaranteed
that the wavelet transform of the restored image will give the same
values for the coefficients. This is not important in the case where
they are not significant, but otherwise the same values must be
found. If W(s)i are the coefficients obtained by the
thresholding, then we require Wi(x) such that:
P.Wi(x) = W(s)i(x) |
|
|
(14.92) |
where P is the non linear operator which performs the inverse
transform, the wavelet transform, and the thresholding. An
alternative is to use the following iterative solution which is
similar to Van Cittert's algorithm:
W(n)i(x) = Wi(s)(x) + Wi(n-1)(x) - P.Wi(n-1)(x) |
|
|
(14.93) |
for the significant coefficients (
)
and:
Wi(n)(x) = Wi(n-1)(x) |
|
|
(14.94) |
for the non significant coefficients (
Wi(s)(x) = 0).
The algorithm is the following one:
- 1.
- Compute the wavelet transform of the data. We get wi.
- 2.
- Estimate the standard deviation of the noise B0 of the first plane
from the histogram of w0.
- 3.
- Estimate the standard deviation of the noise Bi from B0
at each scale.
- 4.
- Estimate the significant level at each scale, and threshold.
- 5.
- Initialize:
W(0)i(x) = Wi(s)(x)
- 6.
- Reconstruct the picture by using the iterative method.
The thresholding may introduce negative values in the resulting image.
A positivity constraint can be introduced in the iterative process,
by thresholding the restored image. The algorithm converges after
five or six iterations.
Next: Hierarchical adaptive filtering
Up: Noise reduction from the
Previous: Hierarchical Wiener filtering
http://www.eso.org/midas/midas-support.html
1999-06-15