midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image (Operator)
Name
midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image
— Calculate the average of maximum and minimum inside any mask.
Signature
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