gauss_imagegauss_imageGaussImageGaussImagegauss_image (算子)

名称

gauss_imagegauss_imageGaussImageGaussImagegauss_image — 使用离散高斯函数平滑图像。

警告

gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image 已过时,仅出于向后兼容性考虑而保留。 New applications should use the operator gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter instead.

签名

gauss_image(Image : ImageGauss : Size : )

Herror gauss_image(const Hobject Image, Hobject* ImageGauss, const Hlong Size)

Herror T_gauss_image(const Hobject Image, Hobject* ImageGauss, const Htuple Size)

void GaussImage(const HObject& Image, HObject* ImageGauss, const HTuple& Size)

HImage HImage::GaussImage(Hlong Size) const

static void HOperatorSet.GaussImage(HObject image, out HObject imageGauss, HTuple size)

HImage HImage.GaussImage(int size)

def gauss_image(image: HObject, size: int) -> HObject

描述

算子 gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image smoothes images using the discrete Gaussian. The smoothing effect increases with increasing filter size. The following filter sizes (SizeSizeSizeSizesizesize) are supported (the sigma value of the Gauss function is indicated in brackets): 3 (0.65) 5 (0.87) 7 (1.43) 9 (1.88) 11 (2.31) For border treatment the gray values of the images are reflected at the image borders.

The operator binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter can be used as an alternative to gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image. binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter is significantly faster than gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image. It should be noted that the mask size in binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter does not lead to the same amount of smoothing as the mask size in gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image. Corresponding mask sizes can be determined based on the respective values of the Gaussian smoothing parameter sigma.

gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image 可在 OpenCL 设备上执行,适用于所有支持的图像类型。然而,OpenCL 的实现可能与标量实现产生略有不同的结果。

有关平滑滤波器概念的说明,请参阅 滤波器 / 平滑 一章的引言。

注意

为了能够在 OpenCL 设备上处理 gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_imageImageImageImageImageimageimage 必须至少为64像素的宽度和高度。

请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte* / int2* / uint2* / int4* / real*) *允许用于计算设备

待平滑的图像。

ImageGaussImageGaussImageGaussImageGaussimageGaussimage_gauss (输出对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / int2 / uint2 / int4 / real)

滤波后的图像。

SizeSizeSizeSizesizesize (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

所需滤波器尺寸。

默认值: 5

值列表: 3, 5, 7, 9, 11

示例(HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

示例(C)

gauss_image(Input,&Gauss,7,);
regiongrowing(Gauss,&Segments,7,7,5,100,);

示例(HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

示例(HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

示例(HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

复杂度

每个像素点:O(尺寸 * 2)。

结果

如果参数值正确,算子 gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image 返回值 2 ( H_MSG_TRUE )。当输入为空(无可用输入图像)时可设置行为通过算子 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>)。如有必要,则抛出异常。

模块

基础