estimate_noiseestimate_noiseEstimateNoiseEstimateNoiseestimate_noise (算子)

名称

estimate_noiseestimate_noiseEstimateNoiseEstimateNoiseestimate_noise — 从单个图像中估计图像噪声。

签名

estimate_noise(Image : : Method, Percent : Sigma)

Herror estimate_noise(const Hobject Image, const char* Method, double Percent, double* Sigma)

Herror T_estimate_noise(const Hobject Image, const Htuple Method, const Htuple Percent, Htuple* Sigma)

void EstimateNoise(const HObject& Image, const HTuple& Method, const HTuple& Percent, HTuple* Sigma)

HTuple HImage::EstimateNoise(const HString& Method, const HTuple& Percent) const

double HImage::EstimateNoise(const HString& Method, double Percent) const

double HImage::EstimateNoise(const char* Method, double Percent) const

double HImage::EstimateNoise(const wchar_t* Method, double Percent) const   ( Windows only)

static void HOperatorSet.EstimateNoise(HObject image, HTuple method, HTuple percent, out HTuple sigma)

HTuple HImage.EstimateNoise(string method, HTuple percent)

double HImage.EstimateNoise(string method, double percent)

def estimate_noise(image: HObject, method: str, percent: Union[int, float]) -> Sequence[float]

def estimate_noise_s(image: HObject, method: str, percent: Union[int, float]) -> float

描述

算子 estimate_noiseestimate_noiseEstimateNoiseEstimateNoiseEstimateNoiseestimate_noise estimates the standard deviation of additive noise within the domain of the image that is passed in ImageImageImageImageimageimage. The standard deviation is returned in SigmaSigmaSigmaSigmasigmasigma

To estimate the noise, one of the following four methods can be selected in MethodMethodMethodMethodmethodmethod:

Note that the methods 'foerstner'"foerstner""foerstner""foerstner""foerstner""foerstner" and 'immerkaer'"immerkaer""immerkaer""immerkaer""immerkaer""immerkaer" assume a Gaussian distribution of the image noise, whereas the methods 'least_squares'"least_squares""least_squares""least_squares""least_squares""least_squares" and'mean'"mean""mean""mean""mean""mean" can be applied to images with arbitrarily distributed noise. In general, the method 'foerstner'"foerstner""foerstner""foerstner""foerstner""foerstner" returns the most accurate results while the method 'immerkaer'"immerkaer""immerkaer""immerkaer""immerkaer""immerkaer" shows the fastest computation.

If the image noise could not be estimated reliably, the error 3175 is raised. This may happen if the image does not contain enough homogeneous regions, if the image was artificially created, or if the noise is not of Gaussian type. In order to avoid this error, it might be useful in some cases to try one of the following modifications in dependence of the estimation method that is passed in MethodMethodMethodMethodmethodmethod:

注意

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

执行信息

参数

ImageImageImageImageimageimage (输入对象)  singlechannelimage(-array) objectHImageHObjectHImageHobject (byte / uint2)

输入图像。

MethodMethodMethodMethodmethodmethod (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Method to estimate the image noise.

默认值: 'foerstner' "foerstner" "foerstner" "foerstner" "foerstner" "foerstner"

值列表: 'foerstner'"foerstner""foerstner""foerstner""foerstner""foerstner", 'immerkaer'"immerkaer""immerkaer""immerkaer""immerkaer""immerkaer", 'least_squares'"least_squares""least_squares""least_squares""least_squares""least_squares", 'mean'"mean""mean""mean""mean""mean"

PercentPercentPercentPercentpercentpercent (输入控制)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Percentage of used image points.

默认值: 20

建议值: 1, 2, 5, 7, 10, 15, 20, 30, 40, 50

限制: 0 < Percent && Percent <= 50.

SigmaSigmaSigmaSigmasigmasigma (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Standard deviation of the image noise.

Assertion: Sigma >= 0

示例(HDevelop)

read_image (Image, 'combine')
estimate_noise (ImageNoise, 'foerstner', 20, SigmaFoerstner)
estimate_noise (ImageNoise, 'immerkaer', 20, SigmaImmerkaer)
estimate_noise (ImageNoise, 'least_squares', 20, SigmaLeastSquares)
estimate_noise (ImageNoise, 'mean', 20, SigmaMean)

结果

如果参数有效,算子 estimate_noiseestimate_noiseEstimateNoiseEstimateNoiseEstimateNoiseestimate_noise 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。 If the image noise could not be estimated reliably, the error 3175 is raised.

可能的前趋

grab_imagegrab_imageGrabImageGrabImageGrabImagegrab_image, grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsyncgrab_image_async, read_imageread_imageReadImageReadImageReadImageread_image, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

可能的后继

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image, smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image

替代

noise_distribution_meannoise_distribution_meanNoiseDistributionMeanNoiseDistributionMeanNoiseDistributionMeannoise_distribution_mean, intensityintensityIntensityIntensityIntensityintensity, min_max_graymin_max_grayMinMaxGrayMinMaxGrayMinMaxGraymin_max_gray

另见

gauss_distributiongauss_distributionGaussDistributionGaussDistributionGaussDistributiongauss_distribution, add_noise_distributionadd_noise_distributionAddNoiseDistributionAddNoiseDistributionAddNoiseDistributionadd_noise_distribution

参考文献

W. Förstner: “Image Preprocessing for Feature Extraction in Digital Intensity, Color and Range Images“, Springer Lecture Notes on Earth Sciences, Summer School on Data Analysis and the Statistical Foundations of Geomatics, 1999
J. Immerkaer: “Fast Noise Variance Estimation“, Computer Vision and Image Understanding, Vol. 64, No. 2, pp. 300-302, 1996

模块

基础