Transform the shape of a region.
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_center'
The point on the skeleton of the input region having the
smallest distance to the center of gravity of the input
region.
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 1/sqrt(2)-0.5 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 1/sqrt(2) pixels. Consequently, when adding up both effects, the original region might protrude beyond the returned circular region by at most 1 pixel.
|
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 value: 'convex' | |
| List of values: 'convex', 'ellipse', 'outer_circle', 'inner_circle', 'rectangle1', 'rectangle2', 'inner_center' | |
Let F be the area of the input region. Then the runtime complexity is O(F).
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 handling is raised.
shape_trans is reentrant and automatically parallelized (on tuple level).
disp_region, regiongrowing_mean, area_center
convexity, elliptic_axis, area_center, smallest_rectangle1, smallest_rectangle2, set_shape, select_shape, inner_circle
Foundation