trimmed_meantrimmed_meanTrimmedMeanTrimmedMeantrimmed_mean (算子)

名称

trimmed_meantrimmed_meanTrimmedMeanTrimmedMeantrimmed_mean — 使用任意秩掩模平滑图像。

签名

trimmed_mean(Image, Mask : ImageTMean : Number, Margin : )

Herror trimmed_mean(const Hobject Image, const Hobject Mask, Hobject* ImageTMean, const Hlong Number, const char* Margin)

Herror T_trimmed_mean(const Hobject Image, const Hobject Mask, Hobject* ImageTMean, const Htuple Number, const Htuple Margin)

void TrimmedMean(const HObject& Image, const HObject& Mask, HObject* ImageTMean, const HTuple& Number, const HTuple& Margin)

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const HTuple& Margin) const

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const HString& Margin) const

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const char* Margin) const

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const wchar_t* Margin) const   ( Windows only)

static void HOperatorSet.TrimmedMean(HObject image, HObject mask, out HObject imageTMean, HTuple number, HTuple margin)

HImage HImage.TrimmedMean(HRegion mask, int number, HTuple margin)

HImage HImage.TrimmedMean(HRegion mask, int number, string margin)

def trimmed_mean(image: HObject, mask: HObject, number: int, margin: Union[int, float, str]) -> HObject

描述

算子 trimmed_meantrimmed_meanTrimmedMeanTrimmedMeanTrimmedMeantrimmed_mean carries out a non-linear smoothing of the gray values of all input images (ImageImageImageImageimageimage). The filter mask (MaskMaskMaskMaskmaskmask) is passed in the form of a region. The average of NumberNumberNumberNumbernumbernumber gray values located near the median is calculated. Several border treatments can be chosen for filtering (MarginMarginMarginMarginmarginmargin): gray value Pixels outside of the image edges are assumed to be constant (with the indicated gray value). 'continued' Continuation of edge pixels. 'cyclic' Cyclic continuation of image edges. 'mirrored' Reflection of pixels at the image edges. The indicated mask (= region of the mask image) is put over the image to be filtered in such a way that the center of the mask touches all pixels once. For each of these pixels all neighboring pixels covered by the mask are sorted in an ascending sequence according to their gray values. Thus, each of these sorted gray value sequences contains exactly as many gray values as the mask has pixels. If F is the area of the mask the average of these sequences is calculated as follows: The first (F - Number)/2 gray values are ignored. Then the following NumberNumberNumberNumbernumbernumber gray values are summed up and divided by NumberNumberNumberNumbernumbernumber. Again the remaining (F - NumberNumberNumberNumbernumbernumber)/2 gray values are ignored.

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

注意

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

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / int2 / uint2 / int4 / real)

Image to be filtered.

MaskMaskMaskMaskmaskmask (输入对象)  region objectHRegionHObjectHRegionHobject

Image whose region serves as filter mask.

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

Filtered output image.

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

Number of averaged pixels. Typical value: Surface(Mask) / 2.

默认值: 5

建议值: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31

值范围: 1 ≤ Number Number Number Number number number ≤ 401

最小增量: 1

建议增量: 2

MarginMarginMarginMarginmarginmargin (输入控制)  string HTupleUnion[int, float, str]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Border treatment.

默认值: 'mirrored' "mirrored" "mirrored" "mirrored" "mirrored" "mirrored"

建议值: 'mirrored'"mirrored""mirrored""mirrored""mirrored""mirrored", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic", 'continued'"continued""continued""continued""continued""continued", 0, 30, 60, 90, 120, 150, 180, 210, 240, 255

示例(HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

示例(C)

read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
trimmed_mean(Image,Region,&TrimmedMean,5,"mirrored");
disp_image(TrimmedMean,WindowHandle);

示例(HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

示例(HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

示例(HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

结果

如果参数值正确,算子 trimmed_meantrimmed_meanTrimmedMeanTrimmedMeanTrimmedMeantrimmed_mean 返回值 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>)。如有必要,则抛出异常。

可能的前趋

read_imageread_imageReadImageReadImageReadImageread_image, draw_regiondraw_regionDrawRegionDrawRegionDrawRegiondraw_region, gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle, gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1gen_rectangle1

可能的后继

thresholdthresholdThresholdThresholdThresholdthreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing

替代

sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image, median_weightedmedian_weightedMedianWeightedMedianWeightedMedianWeightedmedian_weighted, median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image

另见

gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle, gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1gen_rectangle1, gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectGrayErosionRectgray_erosion_rect, gray_dilation_rectgray_dilation_rectGrayDilationRectGrayDilationRectGrayDilationRectgray_dilation_rect

参考文献

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

模块

基础