Remove horizontal or vertical stripes/noise from a cube
Overview
Parameters
Example 1
Description
This program uses a combination of lowpass and highpass filters to remove horizontal or vertical stripes in a cube. The steps
behind the noise removal technique are:
output = input - noise
where noise = highpass(lowpass(input))
Suppose an input image had vertical striping noise,
like in the example below. The noise can be removed or suppressed by
applying a sequence of lowpass and highpass filters. The idea is to
create an image containing only the noise and subtract that noise image
from the original.
First, we apply a tall (1xNL) lowpass filter to the input image. This
produces an image that is essentially a column average. The high
frequency information has been suppressed and the vertical noise is
left behind. Note however, the average of the lowpass filter
matches the original input so we can not subtract the noise quite yet.
Second, we appy a (NSx1) highpass filter to the lowpass image. This
effectively suppress the albedo information in the noise leaving only the
noise behind. Note that the noise (third) histogram is centered
about zero.
Finally, the noise image is subtracted from the original input image
resulting in the desired noise-free image. All the steps the program
goes through (along with their respective histograms) are illustrated
below:
From left to right: Input, Lowpass, Highpass, Output