sigma_imageπ
Short descriptionπ
sigma_image β Non-linear smoothing with the sigma filter.
Signatureπ
sigma_image( image Image, out image ImageSigma, extent.y MaskHeight, extent.x MaskWidth, integer Sigma )
Descriptionπ
The operator sigma_image carries out a non-linear smoothing
of the gray values of all input images (Image). All
pixels in a rectangular window (MaskHeight x
MaskWidth) are used to determine
the new gray value of the central pixel of this window.
First, the gray value standard deviation
of all pixels in the window is calculated. Then, all pixels of the
window with a gray value that differs from the gray value of the
central pixel by less than Sigma times this standard
deviation are used to calculate the new gray value of the central
pixel. The gray value of the central pixel is the average of the
gray values of the selected pixels. If no pixel could be selected
for the averaging of the gray values, the gray value of the central
pixel remains unchanged.
For an explanation of the concept of smoothing filters see the introduction of chapter Filters / Smoothing.
Attentionπ
If even values instead of odd values are given for
MaskHeight or MaskWidth, the routine uses the next
larger odd values instead (this way the center of the filter mask is
always explicitly determined).
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 domain level.
Parametersπ
Image (input_object) (multichannel-)image(-array) β object (byte / cyclic / int1 / int2 / uint2 / int4 / real)
Image to be smoothed.
ImageSigma (output_object) (multichannel-)image(-array) β object (byte / cyclic / int1 / int2 / uint2 / int4 / real)
Smoothed image.
MaskHeight (input_control) extent.y β (integer)
Height of the mask (number of lines).
Default: 5
Suggested values: 3, 5, 7, 9, 11, 13, 15
Value range: 3 β€ MaskHeight
Minimum increment: 2
Recommended increment: 2
Restriction: odd(MaskHeight)
MaskWidth (input_control) extent.x β (integer)
Width of the mask (number of columns).
Default: 5
Suggested values: 3, 5, 7, 9, 11, 13, 15
Value range: 3 β€ MaskWidth
Minimum increment: 2
Recommended increment: 2
Restriction: odd(MaskWidth)
Sigma (input_control) integer β (integer)
Max. deviation to the average.
Default: 3
Suggested values: 3, 5, 7, 9, 11, 20, 30, 50
Value range: 0 β€ Sigma
Minimum increment: 1
Recommended increment: 2
Exampleπ
(HDevelop)
read_image(&Image,"fabrik")\;
sigma_image(Image,&ImageSigma,5,5,3)\;
disp_image(ImageSigma,WindowHandle)\;
Complexityπ
For each pixel: O(MaskHeight*MaskWidth).
Resultπ
If the parameter values are correct the operator sigma_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
anisotropic_diffusion, rank_image
See also
Referencesπ
R. Haralick, L. Shapiro; βComputer and Robot Visionβ; Addison-Wesley, 1992, Seite 325
Moduleπ
Foundation