shape_transshape_transShapeTransShapeTransshape_trans (Operator)
Name
shape_transshape_transShapeTransShapeTransshape_trans
— Transform the shape of a region.
Signature
def shape_trans(region: HObject, type: str) -> HObject
Description
shape_transshape_transShapeTransShapeTransshape_trans
transforms the shape of the input regions
depending on the parameter TypeTypeTypetypetype
:
- 'convex'
Convex hull.
- 'ellipse'
Ellipse with the same moments and area as the input region.
- 'outer_circle'
Smallest enclosing circle.
- 'inner_circle'
Largest circle fitting into the region.
- 'rectangle1'
Smallest enclosing rectangle parallel to the coordinate axes.
- 'rectangle2'
Smallest enclosing rectangle.
- 'inner_rectangle1'
Largest axis-parallel rectangle fitting into the region.
- 'inner_center'
The point on the skeleton of the input region having the smallest
distance to the center of gravity of the input region.
Attention
If TypeTypeTypetypetype
= 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle" is selected it might
happen that the resulting circular region does not completely cover
the input region. This is because internally the operators
smallest_circlesmallest_circleSmallestCircleSmallestCirclesmallest_circle
and gen_circlegen_circleGenCircleGenCirclegen_circle
are used to compute
the outer circle. As described in the documentation of
smallest_circlesmallest_circleSmallestCircleSmallestCirclesmallest_circle
, the calculated radius can be too small by
up to pixels. Additionally, the
circle that is generated by gen_circlegen_circleGenCircleGenCirclegen_circle
is translated by up
to 0.5 pixels in both directions, i.e., by up to
pixels. Consequently, when adding up
both effects, the original region might protrude beyond the returned
circular region by at most 1 pixel.
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.
Parameters
RegionRegionRegionregionregion
(input_object) region(-array) →
objectHRegionHObjectHObjectHobject
Regions to be transformed.
RegionTransRegionTransRegionTransregionTransregion_trans
(output_object) region(-array) →
objectHRegionHObjectHObjectHobject *
Transformed regions.
TypeTypeTypetypetype
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Type of transformation.
Default:
'convex'
"convex"
"convex"
"convex"
"convex"
List of values:
'convex'"convex""convex""convex""convex", 'ellipse'"ellipse""ellipse""ellipse""ellipse", 'inner_center'"inner_center""inner_center""inner_center""inner_center", 'inner_circle'"inner_circle""inner_circle""inner_circle""inner_circle", 'inner_rectangle1'"inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1", 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle", 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1", 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2"
Complexity
Let F be the area of the input region. Then the runtime
complexity is O(F).
Result
shape_transshape_transShapeTransShapeTransshape_trans
returns 2 (
H_MSG_TRUE)
if all parameters are correct.
The behavior in case of empty input (no regions given) can be set
via 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
connectionconnectionConnectionConnectionconnection
,
regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing
Possible Successors
disp_regiondisp_regionDispRegionDispRegiondisp_region
,
regiongrowing_meanregiongrowing_meanRegiongrowingMeanRegiongrowingMeanregiongrowing_mean
,
area_centerarea_centerAreaCenterAreaCenterarea_center
See also
convexityconvexityConvexityConvexityconvexity
,
elliptic_axiselliptic_axisEllipticAxisEllipticAxiselliptic_axis
,
area_centerarea_centerAreaCenterAreaCenterarea_center
,
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1
,
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2
,
inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1inner_rectangle1
,
set_shapeset_shapeSetShapeSetShapeset_shape
,
select_shapeselect_shapeSelectShapeSelectShapeselect_shape
,
inner_circleinner_circleInnerCircleInnerCircleinner_circle
Module
Foundation