Operator Reference

midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image (Operator)

midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image — Calculate the average of maximum and minimum inside any mask.

Signature

midrange_image(Image, Mask : ImageMidrange : Margin : )

Herror midrange_image(const Hobject Image, const Hobject Mask, Hobject* ImageMidrange, const char* Margin)

Herror T_midrange_image(const Hobject Image, const Hobject Mask, Hobject* ImageMidrange, const Htuple Margin)

void MidrangeImage(const HObject& Image, const HObject& Mask, HObject* ImageMidrange, const HTuple& Margin)

HImage HImage::MidrangeImage(const HRegion& Mask, const HTuple& Margin) const

HImage HImage::MidrangeImage(const HRegion& Mask, const HString& Margin) const

HImage HImage::MidrangeImage(const HRegion& Mask, const char* Margin) const

HImage HImage::MidrangeImage(const HRegion& Mask, const wchar_t* Margin) const   ( Windows only)

static void HOperatorSet.MidrangeImage(HObject image, HObject mask, out HObject imageMidrange, HTuple margin)

HImage HImage.MidrangeImage(HRegion mask, HTuple margin)

HImage HImage.MidrangeImage(HRegion mask, string margin)

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

Description

The operator midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image forms the average of maximum and minimum inside the indicated mask in the whole image. Several border treatments (MarginMarginMarginmarginmargin) can be chosen for filtering:

gray value

Pixels outside of the image border are assumed to be constant (with the indicated gray value).

'continued'"continued""continued""continued""continued"

Continuation of the gray values at the image border.

'cyclic'"cyclic""cyclic""cyclic""cyclic"

Cyclic continuation at the image borders.

'mirrored'"mirrored""mirrored""mirrored""mirrored"

Reflection of pixels at the image borders.

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 an explanation of the concept of smoothing filters see the introduction of chapter Filters / Smoothing.

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.

Execution Information

  • 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.

Parameters

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte / int2 / uint2 / int4 / real)

Image to be filtered.

MaskMaskMaskmaskmask (input_object)  region objectHRegionHObjectHObjectHobject

Filter mask.

ImageMidrangeImageMidrangeImageMidrangeimageMidrangeimage_midrange (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / int2 / uint2 / int4 / real)

Filtered image.

MarginMarginMarginmarginmargin (input_control)  string HTupleUnion[int, float, str]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Border treatment.

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

Suggested values: 'mirrored'"mirrored""mirrored""mirrored""mirrored", 'cyclic'"cyclic""cyclic""cyclic""cyclic", '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)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)

Example (C)

read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
midrange_image(Image,Region,&Midrange,"mirrored");
disp_image(Midrange,WindowHandle);

Example (HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)

Example (HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)

Complexity

For each pixel: O(sqrt(F) * 5) with F = area of MaskMaskMaskmaskmask.

Result

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

Possible Predecessors

read_imageread_imageReadImageReadImageread_image, draw_regiondraw_regionDrawRegionDrawRegiondraw_region, gen_circlegen_circleGenCircleGenCirclegen_circle, gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1gen_rectangle1

Possible Successors

thresholdthresholdThresholdThresholdthreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholddyn_threshold, regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing

Alternatives

sigma_imagesigma_imageSigmaImageSigmaImagesigma_image

See also

gen_circlegen_circleGenCircleGenCirclegen_circle, gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1gen_rectangle1, gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectgray_erosion_rect, gray_dilation_rectgray_dilation_rectGrayDilationRectGrayDilationRectgray_dilation_rect, gray_range_rectgray_range_rectGrayRangeRectGrayRangeRectgray_range_rect

References

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

Module

Foundation