sigma_imagesigma_imageSigmaImageSigmaImagesigma_image (算子名称)

名称

sigma_imagesigma_imageSigmaImageSigmaImagesigma_image — Non-linear smoothing with the sigma filter.

参数签名

sigma_image(Image : ImageSigma : MaskHeight, MaskWidth, Sigma : )

Herror sigma_image(const Hobject Image, Hobject* ImageSigma, const Hlong MaskHeight, const Hlong MaskWidth, const Hlong Sigma)

Herror T_sigma_image(const Hobject Image, Hobject* ImageSigma, const Htuple MaskHeight, const Htuple MaskWidth, const Htuple Sigma)

void SigmaImage(const HObject& Image, HObject* ImageSigma, const HTuple& MaskHeight, const HTuple& MaskWidth, const HTuple& Sigma)

HImage HImage::SigmaImage(Hlong MaskHeight, Hlong MaskWidth, Hlong Sigma) const

static void HOperatorSet.SigmaImage(HObject image, out HObject imageSigma, HTuple maskHeight, HTuple maskWidth, HTuple sigma)

HImage HImage.SigmaImage(int maskHeight, int maskWidth, int sigma)

def sigma_image(image: HObject, mask_height: int, mask_width: int, sigma: int) -> HObject

描述

该算子 sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image carries out a non-linear smoothing of the gray values of all input images (ImageImageImageImageimageimage). 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 SigmaSigmaSigmaSigmasigmasigma 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.

注意

If even values instead of odd values are given for MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height or MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width, 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 过滤器.

运行信息

参数表

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / cyclic / int1 / int2 / uint2 / int4 / real)

Image to be smoothed.

ImageSigmaImageSigmaImageSigmaImageSigmaimageSigmaimage_sigma (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / cyclic / int1 / int2 / uint2 / int4 / real)

Smoothed image.

MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of the mask (number of lines).

Default: 5

Suggested values: 3, 5, 7, 9, 11, 13, 15

Value range: 3 ≤ MaskHeight MaskHeight MaskHeight MaskHeight maskHeight mask_height

Minimum increment: 2

Recommended increment: 2

Restriction: odd(MaskHeight)

MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Width of the mask (number of columns).

Default: 5

Suggested values: 3, 5, 7, 9, 11, 13, 15

Value range: 3 ≤ MaskWidth MaskWidth MaskWidth MaskWidth maskWidth mask_width

Minimum increment: 2

Recommended increment: 2

Restriction: odd(MaskWidth)

SigmaSigmaSigmaSigmasigmasigma (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Max. deviation to the average.

Default: 3

Suggested values: 3, 5, 7, 9, 11, 20, 30, 50

Value range: 0 ≤ Sigma Sigma Sigma Sigma sigma sigma

Minimum increment: 1

Recommended increment: 2

例程 (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

例程 (C)

read_image(&Image,"fabrik");
sigma_image(Image,&ImageSigma,5,5,3);
disp_image(ImageSigma,WindowHandle);

例程 (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

例程 (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

例程 (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

Complexity

For each pixel: O(MaskHeight*MaskWidth).

结果

If the parameter values are correct 该算子 sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image 返回值 2 ( H_MSG_TRUE) . The behavior in case of empty input (no input images available) is set via 该算子 set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>). If necessary an exception is raised.

可能的前置算子

read_imageread_imageReadImageReadImageReadImageread_image

可能的后置算子

thresholdthresholdThresholdThresholdThresholdthreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing

可替代算子

anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusionanisotropic_diffusion, rank_imagerank_imageRankImageRankImageRankImagerank_image

参考其它

smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image

References

R. Haralick, L. Shapiro; “Computer and Robot Vision”; Addison-Wesley, 1992, Seite 325

模块

Foundation