smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld (Operator)
Name
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld
— Enclosing rectangle parallel to the coordinate axes of contours or polygons.
Signature
void SmallestRectangle1Xld(const HObject& XLD, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2)
void HXLD::SmallestRectangle1Xld(HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2) const
void HXLD::SmallestRectangle1Xld(double* Row1, double* Column1, double* Row2, double* Column2) const
static void HOperatorSet.SmallestRectangle1Xld(HObject XLD, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
void HXLD.SmallestRectangle1Xld(out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
void HXLD.SmallestRectangle1Xld(out double row1, out double column1, out double row2, out double column2)
Description
The operator smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld
calculates the enclosing
rectangle (parallel to the coordinate axes) for each input contour or
polygon.
The enclosing rectangle is described by the coordinates of the corner
pixels (Row1Row1Row1Row1row1
,Column1Column1Column1Column1column1
,Row2Row2Row2Row2row2
,Column2Column2Column2Column2column2
)
If more than one contour or polygon is passed, the results are stored in
tuples in the same order as the respective contours or polygons in
XLDXLDXLDXLDXLD
. In case of an empty contour all parameters have the value 0
if no other behavior was set (see set_systemset_systemSetSystemSetSystemSetSystem
).
Attention
In case of empty contours the result of Row1Row1Row1Row1row1
,Column1Column1Column1Column1column1
,
Row2Row2Row2Row2row2
and Column2Column2Column2Column2column2
(all are 0) can lead to confusion.
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
XLDXLDXLDXLDXLD
(input_object) xld(-array) →
objectHXLDHXLDHobject
Contours or polygons to be examined.
Row1Row1Row1Row1row1
(output_control) rectangle.origin.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Row coordinate of upper left corner point of the
enclosing rectangle.
Column1Column1Column1Column1column1
(output_control) rectangle.origin.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Column coordinate of upper left corner point of the
enclosing rectangle.
Row2Row2Row2Row2row2
(output_control) rectangle.corner.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Row coordinate of lower right corner point of the
enclosing rectangle.
Column2Column2Column2Column2column2
(output_control) rectangle.corner.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Column coordinate of lower right corner point of the
enclosing rectangle.
Complexity
If N is the number of contour points, the runtime complexity is
O(N).
Result
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld
returns 2 (H_MSG_TRUE) if the input is not empty.
If the input is empty the behavior 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>)SetSystem("no_object_result",<Result>)
. If
necessary, an exception is raised.
Possible Predecessors
gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld
,
edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPix
,
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPix
,
gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXld
Possible Successors
gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld
Alternatives
height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXldHeightWidthRatioXld
,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
,
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld
See also
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld
,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
,
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldSmallestCircleXld
,
elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXld
,
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld
Module
Foundation