ClassesClassesClassesClasses | | | | Operators

trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean (Operator)

Name

trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean — Smooth an image with an arbitrary rank mask.

Signature

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)

Herror trimmed_mean(Hobject Image, Hobject Mask, Hobject* ImageTMean, const HTuple& Number, const HTuple& Margin)

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

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

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

void HOperatorSetX.TrimmedMean(
[in] IHUntypedObjectX* Image, [in] IHUntypedObjectX* Mask, [out] IHUntypedObjectX*ImageTMean, [in] VARIANT Number, [in] VARIANT Margin)

IHImageX* HImageX.TrimmedMean(
[in] IHRegionX* Mask, [in] Hlong Number, [in] VARIANT Margin)

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)

Description

The operator trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean 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.

Attention

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.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / int2 / uint2 / int4 / real)

Image to be filtered.

MaskMaskMaskMaskMaskmask (input_object)  region objectHRegionHRegionHRegionHRegionXHobject

Image whose region serves as filter mask.

ImageTMeanImageTMeanImageTMeanImageTMeanImageTMeanimageTMean (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / int2 / uint2 / int4 / real)

Filtered output image.

NumberNumberNumberNumberNumbernumber (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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

Default value: 5

Suggested values: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31

Typical range of values: 1 ≤ Number Number Number Number Number number ≤ 401

Minimum increment: 1

Recommended increment: 2

MarginMarginMarginMarginMarginmargin (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Border treatment.

Default value: 'mirrored' "mirrored" "mirrored" "mirrored" "mirrored" "mirrored"

Suggested values: '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

Example (HDevelop)

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

Example (C)

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

Example (HDevelop)

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

Example (HDevelop)

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

Example (HDevelop)

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

Example (HDevelop)

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

Result

If the parameter values are correct the operator trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>). If necessary an exception is raised.

Possible Predecessors

read_imageread_imageReadImageread_imageReadImageReadImage, draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion, gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle, gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1

Possible Successors

thresholdthresholdThresholdthresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold, regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing

Alternatives

sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage, median_weightedmedian_weightedMedianWeightedmedian_weightedMedianWeightedMedianWeighted, median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage

See also

gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle, gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1, gray_erosion_rectgray_erosion_rectGrayErosionRectgray_erosion_rectGrayErosionRectGrayErosionRect, gray_dilation_rectgray_dilation_rectGrayDilationRectgray_dilation_rectGrayDilationRectGrayDilationRect

References

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

Module

Foundation


ClassesClassesClassesClasses | | | | Operators