shape_trans — Transform the shape of a region.
shape_trans transforms the shape of the input regions depending on the parameter Type:
Ellipse with the same moments and area as the input region.
Smallest enclosing circle.
Largest circle fitting into the region.
Smallest enclosing rectangle parallel to the coordinate axes.
Smallest enclosing rectangle.
Largest axis-parallel rectangle fitting into the region.
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.
Regions to be transformed.
Type of transformation.
Default value: 'convex'
List of values: 'convex', 'ellipse', 'inner_center', 'inner_circle', 'inner_rectangle1', 'outer_circle', 'rectangle1', 'rectangle2'
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 is raised.
disp_region, regiongrowing_mean, area_center
convexity, elliptic_axis, area_center, smallest_rectangle1, smallest_rectangle2, inner_rectangle1, set_shape, select_shape, inner_circle