gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapegray_erosion_shape (Operator)
Name
gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapegray_erosion_shape — Determine the minimum gray value within a selected mask.
Signature
void GrayErosionShape(const HObject& Image, HObject* ImageMin, const HTuple& MaskHeight, const HTuple& MaskWidth, const HTuple& MaskShape)
HImage HImage::GrayErosionShape(const HTuple& MaskHeight, const HTuple& MaskWidth, const HString& MaskShape) const
HImage HImage::GrayErosionShape(double MaskHeight, double MaskWidth, const HString& MaskShape) const
HImage HImage::GrayErosionShape(double MaskHeight, double MaskWidth, const char* MaskShape) const
HImage HImage::GrayErosionShape(double MaskHeight, double MaskWidth, const wchar_t* MaskShape) const
(
Windows only)
Description
gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapeGrayErosionShapegray_erosion_shape calculates the minimum gray value of the input
image ImageImageImageImageimageimage within a mask of shape MaskShapeMaskShapeMaskShapeMaskShapemaskShapemask_shape,
vertical size MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height and horizontal size MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width
for each image point.
The resulting image is returned in ImageMinImageMinImageMinImageMinimageMinimage_min.
If the parameters MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height or MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width are of the
type integer and are even, they are changed to the next larger odd value.
In contrast, if at least one of the two parameters is of the type float, the
input image ImageImageImageImageimageimage is transformed with both the next larger and
the next smaller odd mask size, and the output image ImageMinImageMinImageMinImageMinimageMinimage_min is
interpolated from the two intermediate images. Therefore, note that
gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapeGrayErosionShapegray_erosion_shape returns different results for mask sizes of,
e.g., 4 and 4.0!
In case of the values
'rhombus' and 'octagon' for the MaskShapeMaskShapeMaskShapeMaskShapemaskShapemask_shape control parameter,
MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height and MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width must be equal. The parameter
value 'octagon' for MaskShapeMaskShapeMaskShapeMaskShapemaskShapemask_shape denotes an equilateral octagonal
mask which is a suitable approximation for a circular structure.
At the border of the image the gray values are mirrored.
Attention
Note that gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapeGrayErosionShapegray_erosion_shape requires considerably more time for
mask sizes of type float than for mask sizes of type integer. This is
especially true for rectangular masks with different width and height!
gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapeGrayErosionShapegray_erosion_shape can be executed on OpenCL devices. In case of
mask sizes of type float the result can vary slightly from the CPU as the
interpolation is calculated in single precision on the OpenCL device.
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
- Supports OpenCL compute devices.
- 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
ImageImageImageImageimageimage (input_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (byte* / uint2*) *allowed for compute devices
Image for which the minimum gray values are to
be calculated.
ImageMinImageMinImageMinImageMinimageMinimage_min (output_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject * (byte / uint2)
Image containing the minimum gray values.
MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height (input_control) extent.y → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Height of the filter mask.
Default:
11
Suggested values:
3, 5, 7, 9, 11, 13, 15
Value range:
1.0
≤
MaskHeight
MaskHeight
MaskHeight
MaskHeight
maskHeight
mask_height
MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width (input_control) extent.x → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Width of the filter mask.
Default:
11
Suggested values:
3, 5, 7, 9, 11, 13, 15
Value range:
1.0
≤
MaskWidth
MaskWidth
MaskWidth
MaskWidth
maskWidth
mask_width
MaskShapeMaskShapeMaskShapeMaskShapemaskShapemask_shape (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Shape of the mask.
Default:
'octagon'
"octagon"
"octagon"
"octagon"
"octagon"
"octagon"
List of values:
'octagon'"octagon""octagon""octagon""octagon""octagon", 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle", 'rhombus'"rhombus""rhombus""rhombus""rhombus""rhombus"
Result
gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapeGrayErosionShapegray_erosion_shape returns 2 (
H_MSG_TRUE)
if all
parameters are correct.
Alternatives
gray_erosiongray_erosionGrayErosionGrayErosionGrayErosiongray_erosion,
gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectGrayErosionRectgray_erosion_rect
See also
gray_opening_shapegray_opening_shapeGrayOpeningShapeGrayOpeningShapeGrayOpeningShapegray_opening_shape,
gray_closing_shapegray_closing_shapeGrayClosingShapeGrayClosingShapeGrayClosingShapegray_closing_shape,
gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeletongray_skeleton
Module
Foundation