Smoothing
List of Operators ↓
This chapter contains operators for smoothing filters.
Further information about filtering can be found at
the introduction to the chapter Filters.
General information about smoothing filters
Smoothing operators are filters that help to suppress noise in an
image. For this purpose it is assumed, that in the undisturbed or true image
the gray value of a given data point does not completely differ from
its surroundings, ideally even varies only little.
Thus, to suppress noise, it can be useful to replace the measured gray value
with an estimate based on surrounding data points.
Such an estimate can be done in different ways, so HALCON provides
different smoothing operators.
The operators differ in speed and suitability for different kinds of noise.
Information like the complexity (runtime dependence on the image size)
is, if available, given in the operator reference.
While most operators treat a single image,
some can process depending images
(e.g., multichannel filters like mean_n
mean_n
MeanN
MeanN
MeanN
mean_n
and rank_n
rank_n
RankN
RankN
RankN
rank_n
,
or edge-preserving filters like guided_filter
guided_filter
GuidedFilter
GuidedFilter
GuidedFilter
guided_filter
and
bilateral_filter
bilateral_filter
BilateralFilter
BilateralFilter
BilateralFilter
bilateral_filter
, which additionally use guidance images).
Please note that some filters have both possibilities and more information
is given in the specific operator reference.
Smoothing filters for single images with random noise
These smoothing filters apply their smoothing function on each channel
of the input image separately and return a smoothed image with the
same number of channels.
In the following table we list implemented variants of smoothing filters
for a single image with random noise and apply them for three different
variants of random noise.
The images in the table shall give an idea of the operators capability,
but please note that the smoothed images highly depend on the
input parameters and the individual image for every operator.
For comparison, the different noisy images without filtering are given
in the first row of the table. The undisturbed image without noise is
shown in the following figure ((1) the full image as well as (2) its
part by means of which possible effects on edges and remains from Salt
& Pepper noise are visualized more clearly).
|
(1) Undisturbed image,
(2) part of the image chosen for the visualization of the filter
capabilities
|
We marked filters recommended due to their special suitability
concerning speed (S), edge-preservation (E), or a compromise between
these two (C).
The numbers in square brackets refer to further information
that is given in a list below the table.
White Noise |
Gaussian Noise
|
Salt & Pepper Noise |
Time[1] |
Alternatives |
noisy image |
|
|
|
|
|
Further information related to the numbers in square brackets used in
the table above:
-
The numbers in the column 'Time' are indications about the time
the operator uses to process an image.
The numbers are obtained from averaging over multiple runs on
the three different noise images and given in arbitrary units.
Note also that the runtime of an operator depends on many factors,
not at least on the used parameters and the image size.
For each filter, the first number is for an image of size 800x600,
the second for an image of size 1497x1160.
The shown images are parts of the smaller image with parameters
reasonable to us (we do not claim to have
found the parameters resulting neither necessarily
in the best image smoothing nor the smallest runtime).
Even if two filters have the same parameter name as input, we did not
necessarily use the same parameter value for both of them.
Therefore, these numbers are to be understood as an indicator only.
-
This operator can be used iteratively.
-
This operator uses a guidance image
(which can be the Image
Image
Image
Image
image
image
itself).
Smoothing filters for single images with systematic noise
Video images composed of two half images can have systematic errors.
In such a case, the operator fill_interlace
fill_interlace
FillInterlace
FillInterlace
FillInterlace
fill_interlace
can help.
Operators designed for smoothing over multiple channels
These smoothing filters take an image with multiple channels
as input and return a single channel (gray value) image.
In HALCON, the following filters of this group are implemented:
Further operators
In addition to the smoothing filters, this chapter contains the following
operator:
info_smooth
info_smooth
InfoSmooth
InfoSmooth
InfoSmooth
info_smooth
, which returns information related to the different
filters used by the operator smooth_image
smooth_image
SmoothImage
SmoothImage
SmoothImage
smooth_image
.
Glossary
In the following, the most important terms that are used in the context of
smoothing filters are described:
- smoothing
-
Smoothing means to apply a filter function on the
given data to capture the main data patterns while
removing noise.
- random noise
-
Random noise is a
stationary variation of brightness or color information by a small
random amount for every pixel with an assumed mean of 0 over the
total image.
- systematic noise
-
Systematic noise is predictable noise, caused, e.g., by the specific
setup used to acquire the images.
List of Operators
anisotropic_diffusionAnisotropicDiffusionanisotropic_diffusionAnisotropicDiffusionanisotropic_diffusion
- Perform an anisotropic diffusion of an image.
bilateral_filterBilateralFilterbilateral_filterBilateralFilterbilateral_filter
- bilateral filtering of an image.
binomial_filterBinomialFilterbinomial_filterBinomialFilterbinomial_filter
- Smooth an image using the binomial filter.
eliminate_min_maxEliminateMinMaxeliminate_min_maxEliminateMinMaxeliminate_min_max
- Smooth an image in the spatial domain to suppress noise.
eliminate_spEliminateSpeliminate_spEliminateSpeliminate_sp
- Replace values outside of thresholds with average value.
fill_interlaceFillInterlacefill_interlaceFillInterlacefill_interlace
- Interpolate 2 video half images.
gauss_filterGaussFiltergauss_filterGaussFiltergauss_filter
- Smooth using discrete Gauss functions.
guided_filterGuidedFilterguided_filterGuidedFilterguided_filter
- Guided filtering of an image.
info_smoothInfoSmoothinfo_smoothInfoSmoothinfo_smooth
- Information on smoothing filter
smooth_image
smooth_image
SmoothImage
SmoothImage
SmoothImage
smooth_image
.
isotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusion
- Perform an isotropic diffusion of an image.
mean_imageMeanImagemean_imageMeanImagemean_image
- Smooth by averaging.
mean_nMeanNmean_nMeanNmean_n
- Average gray values over several channels.
mean_spMeanSpmean_spMeanSpmean_sp
- Suppress salt and pepper noise.
median_imageMedianImagemedian_imageMedianImagemedian_image
- Compute a median filter with various masks.
median_rectMedianRectmedian_rectMedianRectmedian_rect
- Compute a median filter with rectangular masks.
median_separateMedianSeparatemedian_separateMedianSeparatemedian_separate
- Separated median filtering with rectangle masks.
median_weightedMedianWeightedmedian_weightedMedianWeightedmedian_weighted
- Weighted median filtering with different rank masks.
midrange_imageMidrangeImagemidrange_imageMidrangeImagemidrange_image
- Calculate the average of maximum and minimum inside any mask.
rank_imageRankImagerank_imageRankImagerank_image
- Compute a rank filter with arbitrary masks.
rank_nRankNrank_nRankNrank_n
- Return gray values with given rank from multiple channels.
rank_rectRankRectrank_rectRankRectrank_rect
- Compute a rank filter with rectangular masks.
sigma_imageSigmaImagesigma_imageSigmaImagesigma_image
- Non-linear smoothing with the sigma filter.
smooth_imageSmoothImagesmooth_imageSmoothImagesmooth_image
- Smooth an image using various filters.
trimmed_meanTrimmedMeantrimmed_meanTrimmedMeantrimmed_mean
- Smooth an image with an arbitrary rank mask.