smooth_image๐
Short description๐
smooth_image โ Smooth an image using various filters.
Signature๐
smooth_image( image Image, out image ImageSmooth, string Filter, real Alpha )
Description๐
smooth_image smooths gray images using recursive filters
originally developed by Deriche and Shen and using the non-recursive
Gaussian filter. The following filters can be chosen via the
parameter Filter:
โderiche1โ, โderiche2โ, โshenโ and โgaussโ.
The โfilter widthโ (i.e., the range of the filter and thereby
result of the filter) can be of any size. In the case that the
Deriche or Shen is chosen it decreases by increasing the filter
parameter Alpha and increases in the case of the Gauss
filter (and Alpha corresponds to the standard deviation
of the Gaussian function). An approximation of the appropriate size
of the filter width Alpha is performed by the operator
info_smooth.
Non-recursive filters like the Gaussian filter are often implemented using filter-masks. In this case the runtime of the operator increases with increasing size of the filter mask. The runtime of the recursive filters remains constant; except the border treatment becomes a little bit more time consuming. The Gaussian filter becomes slow in comparison to the recursive ones but is in contrast to them isotropic (the filter โderiche2โ is only weakly direction sensitive). A comparable result of the smoothing is achieved by choosing the following values for the parameter:
Alpha(deriche2) = Alpha(deriche1) / 2,
Alpha(shen) = Alpha(deriche1) / 2,
Alpha(gauss) = 1.77 / Alpha(deriche1).
For an explanation of the concept of smoothing filters see the introduction of chapter Filters / Smoothing.
Attention๐
Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.
Execution information๐
Execution information
-
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
-
Multithreading scope: global (may be called from any thread).
-
Automatically parallelized on tuple level.
-
Automatically parallelized on channel level.
-
Automatically parallelized on internal data level.
Parameters๐
Image (input_object) (multichannel-)image(-array) โ object (byte / uint2 / real)
Image to be smoothed.
ImageSmooth (output_object) (multichannel-)image(-array) โ object (byte / uint2 / real)
Smoothed image.
Filter (input_control) string โ (string)
Filter.
Default: 'deriche2'
List of values: 'deriche1', 'deriche2', 'gauss', 'shen'
Alpha (input_control) real โ (real)
Filter parameter: small values cause strong smoothing (vice versa by using 'gauss').
Default: 0.5
Suggested values: 0.1, 0.2, 0.3, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.0, 10.0
Minimum increment: 0.01
Recommended increment: 0.1
Restriction: Alpha > 0
Example๐
(HDevelop)
Result๐
If the parameter values are correct the operator smooth_image
returns the value 2 (H_MSG_TRUE). The behavior in case of empty input (no
input images available) is set via the operator
set_system('no_object_result',<Result>).
If necessary an exception is raised.
Combinations with other operators๐
Combinations
Possible predecessors
Possible successors
threshold, dyn_threshold, regiongrowing
Alternatives
binomial_filter, gauss_filter, mean_image, derivate_gauss, isotropic_diffusion
See also
info_smooth, median_image, sigma_image, anisotropic_diffusion
References๐
R.Deriche: โFast Algorithms for Low-Level Visionโ; IEEE Transactions on Pattern Analysis and Machine Intelligence; PAMI-12, no. 1; S. 78-87; 1990.
Module๐
Foundation