Name
trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean — Smooth an image with an arbitrary rank mask.
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
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.
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.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
- Automatically parallelized on channel level.
- Automatically parallelized on domain level.
Image whose region serves as filter mask.
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
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
trimmed_mean(Image,Region,&TrimmedMean,5,"mirrored");
disp_image(TrimmedMean,WindowHandle);
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
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.
read_imageread_imageReadImageread_imageReadImageReadImage,
draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion,
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle,
gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1
thresholdthresholdThresholdthresholdThresholdThreshold,
dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold,
regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing
sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage,
median_weightedmedian_weightedMedianWeightedmedian_weightedMedianWeightedMedianWeighted,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle,
gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1,
gray_erosion_rectgray_erosion_rectGrayErosionRectgray_erosion_rectGrayErosionRectGrayErosionRect,
gray_dilation_rectgray_dilation_rectGrayDilationRectgray_dilation_rectGrayDilationRectGrayDilationRect
R. Haralick, L. Shapiro; “Computer and Robot Vision”;
Addison-Wesley, 1992, Seite 320
Foundation