ClassesClasses | | Operators

height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXld (Operator)

Name

height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXld — Compute the width, height, and aspect ratio of the enclosing rectangle parallel to the coordinate axes of contours or polygons.

Signature

height_width_ratio_xld(XLD : : : Height, Width, Ratio)

Herror height_width_ratio_xld(const Hobject XLD, double* Height, double* Width, double* Ratio)

Herror T_height_width_ratio_xld(const Hobject XLD, Htuple* Height, Htuple* Width, Htuple* Ratio)

void HeightWidthRatioXld(const HObject& XLD, HTuple* Height, HTuple* Width, HTuple* Ratio)

HTuple HXLD::HeightWidthRatioXld(HTuple* Width, HTuple* Ratio) const

double HXLD::HeightWidthRatioXld(double* Width, double* Ratio) const

static void HOperatorSet.HeightWidthRatioXld(HObject XLD, out HTuple height, out HTuple width, out HTuple ratio)

HTuple HXLD.HeightWidthRatioXld(out HTuple width, out HTuple ratio)

double HXLD.HeightWidthRatioXld(out double width, out double ratio)

Description

The operator height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXldHeightWidthRatioXld 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) (see smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld). Based on these values, height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXldHeightWidthRatioXld computes the width, height, and aspect ratio of the smallest surrounding rectangle as follows:

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

If , RatioRatioRatioRatioratio is set to DBL_MAX (1.797e308).

Execution Information

Parameters

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHobject

Contours or polygons to be examined.

HeightHeightHeightHeightheight (output_control)  extent.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Height of the enclosing rectangle.

WidthWidthWidthWidthwidth (output_control)  extent.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Width of the enclosing rectangle.

RatioRatioRatioRatioratio (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Aspect ratio of the enclosing rectangle.

Complexity

If N is the number of contour points, the runtime complexity is O(N).

Result

height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXldHeightWidthRatioXld 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

smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld, smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld, shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld

See also

shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld, smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldSmallestCircleXld, elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXld, area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld

Module

Foundation


ClassesClasses | | Operators