HALCON Reference Manual 10.0.2
Table of Contents / XLD / Features ClassesClassesClasses | | | Operators

smallest_circle_xldsmallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXld (Operator)

Name

smallest_circle_xldsmallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXld — Smallest enclosing circle of contours or polygons.

Signature

smallest_circle_xld(XLD : : : Row, Column, Radius)

Herror smallest_circle_xld(const Hobject XLD, double* Row, double* Column, double* Radius)

Herror T_smallest_circle_xld(const Hobject XLD, Htuple* Row, Htuple* Column, Htuple* Radius)

Herror smallest_circle_xld(Hobject XLD, double* Row, double* Column, double* Radius)

Herror smallest_circle_xld(Hobject XLD, HTuple* Row, HTuple* Column, HTuple* Radius)

double HXLD::SmallestCircleXld(double* Column, double* Radius) const

HTuple HXLDArray::SmallestCircleXld(HTuple* Column, HTuple* Radius) const

void HOperatorSetX.SmallestCircleXld(
[in] IHUntypedObjectX* XLD, [out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* Radius)

VARIANT HXLDX.SmallestCircleXld(
[out] VARIANT* Column, [out] VARIANT* Radius)

VARIANT HXLDContX.SmallestCircleXld(
[out] VARIANT* Column, [out] VARIANT* Radius)

VARIANT HXLDPolyX.SmallestCircleXld(
[out] VARIANT* Column, [out] VARIANT* Radius)

VARIANT HXLDParaX.SmallestCircleXld(
[out] VARIANT* Column, [out] VARIANT* Radius)

VARIANT HXLDModParaX.SmallestCircleXld(
[out] VARIANT* Column, [out] VARIANT* Radius)

VARIANT HXLDExtParaX.SmallestCircleXld(
[out] VARIANT* Column, [out] VARIANT* Radius)

static void HOperatorSet.SmallestCircleXld(HObject XLD, out HTuple row, out HTuple column, out HTuple radius)

void HXLD.SmallestCircleXld(out HTuple row, out HTuple column, out HTuple radius)

void HXLD.SmallestCircleXld(out double row, out double column, out double radius)

Description

The operator smallest_circle_xldsmallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXld determines the smallest enclosing circle of contours or polygons, i.e., the circle with the smallest area of all circles containing the contour. For this circle the center (RowRowRowRowrow,ColumnColumnColumnColumncolumn) and the radius (RadiusRadiusRadiusRadiusradius) are calculated.

If several contours or polygons are passed in XLDXLDXLDXLDXLD corresponding tuples are returned as output parameter. In case of empty contours all parameters have the value 0.0 if no other behavior was set (see set_systemset_systemset_systemSetSystemSetSystem).

Parallelization

Parameters

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHXLDXHobject

Contours or polygons to be examined.

RowRowRowRowrow (output_control)  circle.center.y(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Row coordinate of the center of the enclosing circle.

ColumnColumnColumnColumncolumn (output_control)  circle.center.x(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Column coordinate of the center of the enclosing circle.

RadiusRadiusRadiusRadiusradius (output_control)  circle.radius(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Radius of the enclosing circle.

Assertion: Radius >= 0

Complexity

If N is the number of contour points then the runtime complexity is O(N*ln(N)).

Result

The operator smallest_circle_xldsmallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXld returns the value 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>)set_system("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_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld, edges_sub_pixedges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPix, threshold_sub_pixthreshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPix, gen_contour_polygon_xldgen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXld

Possible Successors

gen_ellipse_contour_xldgen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld

Alternatives

smallest_rectangle1_xldsmallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld, smallest_rectangle2_xldsmallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld

See also

elliptic_axis_xldelliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXld, smallest_rectangle1_xldsmallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld, smallest_rectangle2_xldsmallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld, shape_trans_xldshape_trans_xldshape_trans_xldShapeTransXldShapeTransXld

Module

Foundation


Table of Contents / XLD / Features ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH