gen_region_polygon_filledT_gen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledgen_region_polygon_filled (Operator)
Name
gen_region_polygon_filledT_gen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledgen_region_polygon_filled
— Store a polygon as a “filled” region.
Signature
Herror T_gen_region_polygon_filled(Hobject* Region, const Htuple Rows, const Htuple Columns)
def gen_region_polygon_filled(rows: Sequence[Union[int, float]], columns: Sequence[Union[int, float]]) -> HObject
Description
The operator gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledGenRegionPolygonFilledgen_region_polygon_filled
creates a region from
a polygon containing the corner points of the region (line and
column coordinates) either clockwise or anti-clockwise.
Contrary to gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygongen_region_polygon
a “filled” region is
returned here.
Note that for subpixel coordinates RowsRowsRowsRowsrowsrows
and ColumnsColumnsColumnsColumnscolumnscolumns
the
coordinates are rounded before the polygon containing the corner points is
determined. Therefore there might be pixels in the RegionRegionRegionRegionregionregion
which
do not lie on the orignial (subpixel) polygon. An simple alternative in
the case of polygons without holes would be to use the operators
gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygongen_region_polygon
and fill_upfill_upFillUpFillUpFillUpfill_up
.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
RegionRegionRegionRegionregionregion
(output_object) region →
objectHRegionHObjectHRegionHobject *
Created region.
RowsRowsRowsRowsrowsrows
(input_control) polygon.y-array →
HTupleSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Line indices of the base points of the region contour.
Default value: 100
Suggested values: 0, 10, 30, 50, 100, 200, 300, 500
Typical range of values:
Rows
Rows
Rows
Rows
rows
rows
(lin)
Minimum increment: 1
Recommended increment: 1
ColumnsColumnsColumnsColumnscolumnscolumns
(input_control) polygon.x-array →
HTupleSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
Column indices of the base points of the region
contour.
Number of elements: Columns == Rows
Default value: 100
Suggested values: 0, 10, 30, 50, 100, 200, 300, 500
Typical range of values:
Columns
Columns
Columns
Columns
columns
columns
(lin)
Minimum increment: 1
Recommended increment: 1
Example (C)
/* Polygon approximation */
T_get_region_polygon(Region,7,&Row,&Column);
T_gen_region_polygon_filled(&Pol,Row,Column);
/* fill up with original gray value */
reduce_domain(Image,Pol,&New);
Result
If the base points are correct the operator gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledGenRegionPolygonFilledgen_region_polygon_filled
returns the value TRUE.
Otherwise an exception is raised.
The clipping according to the current image format is set via the
operator set_system('clip_region',<'2 (H_MSG_TRUE)'/'3 (H_MSG_FALSE)'>)set_system("clip_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("clip_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("clip_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("clip_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)set_system("clip_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)
.
If an empty region is created (by the clipping or by an empty input)
the operator
set_system('store_empty_region',<'2 (H_MSG_TRUE)'/'3 (H_MSG_FALSE)'>)set_system("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)set_system("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)
determines
whether the region is returned or an empty object tuple.
Possible Predecessors
get_region_polygonget_region_polygonGetRegionPolygonGetRegionPolygonGetRegionPolygonget_region_polygon
,
draw_polygondraw_polygonDrawPolygonDrawPolygonDrawPolygondraw_polygon
Alternatives
gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygongen_region_polygon
,
gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPointsgen_region_points
,
draw_polygondraw_polygonDrawPolygonDrawPolygonDrawPolygondraw_polygon
See also
gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygongen_region_polygon
,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain
,
get_region_polygonget_region_polygonGetRegionPolygonGetRegionPolygonGetRegionPolygonget_region_polygon
,
gen_region_runsgen_region_runsGenRegionRunsGenRegionRunsGenRegionRunsgen_region_runs
Module
Foundation