Operator Reference
shape_trans (Operator)
shape_trans
— Transform the shape of a region.
Signature
shape_trans(Region : RegionTrans : Type : )
Description
shape_trans
transforms the shape of the input regions
depending on the parameter Type
:
- '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 Type
= '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_circle
and gen_circle
are used to compute
the outer circle. As described in the documentation of
smallest_circle
, the calculated radius can be too small by
up to pixels. Additionally, the
circle that is generated by gen_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
Region
(input_object) region(-array) →
object
Regions to be transformed.
RegionTrans
(output_object) region(-array) →
object
Transformed regions.
Type
(input_control) string →
(string)
Type of transformation.
Default: 'convex'
List of values: 'convex' , 'ellipse' , 'inner_center' , 'inner_circle' , 'inner_rectangle1' , 'outer_circle' , 'rectangle1' , 'rectangle2'
Complexity
Let F be the area of the input region. Then the runtime complexity is O(F).
Result
shape_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>)
.
If necessary, an exception is raised.
Possible Predecessors
Possible Successors
disp_region
,
regiongrowing_mean
,
area_center
See also
convexity
,
elliptic_axis
,
area_center
,
smallest_rectangle1
,
smallest_rectangle2
,
inner_rectangle1
,
set_shape
,
select_shape
,
inner_circle
Module
Foundation