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

eccentricity_xldeccentricity_xldeccentricity_xldEccentricityXldEccentricityXld (Operator)

Name

eccentricity_xldeccentricity_xldeccentricity_xldEccentricityXldEccentricityXld — Shape features derived from the ellipse parameters of contours or polygons.

Signature

eccentricity_xld(XLD : : : Anisometry, Bulkiness, StructureFactor)

Herror eccentricity_xld(const Hobject XLD, double* Anisometry, double* Bulkiness, double* StructureFactor)

Herror T_eccentricity_xld(const Hobject XLD, Htuple* Anisometry, Htuple* Bulkiness, Htuple* StructureFactor)

Herror eccentricity_xld(Hobject XLD, double* Anisometry, double* Bulkiness, double* StructureFactor)

Herror eccentricity_xld(Hobject XLD, HTuple* Anisometry, HTuple* Bulkiness, HTuple* StructureFactor)

double HXLD::EccentricityXld(double* Bulkiness, double* StructureFactor) const

HTuple HXLDArray::EccentricityXld(HTuple* Bulkiness, HTuple* StructureFactor) const

void HOperatorSetX.EccentricityXld(
[in] IHUntypedObjectX* XLD, [out] VARIANT* Anisometry, [out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HXLDX.EccentricityXld(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HXLDContX.EccentricityXld(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HXLDPolyX.EccentricityXld(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HXLDParaX.EccentricityXld(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HXLDModParaX.EccentricityXld(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HXLDExtParaX.EccentricityXld(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

static void HOperatorSet.EccentricityXld(HObject XLD, out HTuple anisometry, out HTuple bulkiness, out HTuple structureFactor)

HTuple HXLD.EccentricityXld(out HTuple bulkiness, out HTuple structureFactor)

double HXLD.EccentricityXld(out double bulkiness, out double structureFactor)

Description

The operator eccentricity_xldeccentricity_xldeccentricity_xldEccentricityXldEccentricityXld calculates the three shape features AnisometryAnisometryAnisometryAnisometryanisometry, BulkinessBulkinessBulkinessBulkinessbulkiness, and StructureFactorStructureFactorStructureFactorStructureFactorstructureFactor derived from the geometric moments for each input contour or polygon. If the input contour or polygon is not closed it will be closed automatically.

Calculation:

   If the ellipse radii Ra, Rb (see elliptic_axis_xldelliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXld)
   and the enclosed area A of the contour or polygon are given,
   the following applies:

   AnisometryAnisometryAnisometryAnisometryanisometry = Ra / Rb

   BulkinessBulkinessBulkinessBulkinessbulkiness = pi Ra Rb / A

   StructureFactorStructureFactorStructureFactorStructureFactorstructureFactor = AnisometryAnisometryAnisometryAnisometryanisometry * BulkinessBulkinessBulkinessBulkinessbulkiness - 1

The anisometry of a circle is 1.0.

It should be noted that eccentricity_xldeccentricity_xldeccentricity_xldEccentricityXldEccentricityXld only returns useful results if the contour or polygon encloses a region in the plane. In particular, the contour or polygon must not intersect itself. This is particularly important if open contours or polygons are passed because they are closed automatically, which can produce a self-intersection. To test whether the contours or polygons intersect themselves, test_self_intersection_xldtest_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXld can be used. If the contour or polygon intersects itself, a useful value for the anisometry can be calculated with eccentricity_points_xldeccentricity_points_xldeccentricity_points_xldEccentricityPointsXldEccentricityPointsXld.

If more than one contour is passed the results are stored in tuples, the index of a value in the tuple corresponding to the index of a contour in the input.

Parallelization

Parameters

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHXLDXHobject

Contours or polygons to be examined.

AnisometryAnisometryAnisometryAnisometryanisometry (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Anisometry of the contours or polygons.

Assertion: Anisometry >= 1.0

BulkinessBulkinessBulkinessBulkinessbulkiness (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Bulkiness of the contours or polygons.

StructureFactorStructureFactorStructureFactorStructureFactorstructureFactor (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Structure factor of the contours or polygons.

Result

The operator eccentricity_xldeccentricity_xldeccentricity_xldEccentricityXldEccentricityXld returns the value 2 (H_MSG_TRUE) if the input is not empty. The behavior in case of empty input (no input contours available) is set via the operator 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, test_self_intersection_xldtest_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXld

Alternatives

eccentricity_points_xldeccentricity_points_xldeccentricity_points_xldEccentricityPointsXldEccentricityPointsXld

See also

elliptic_axis_xldelliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXld, moments_region_2ndmoments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2nd, select_shape_xldselect_shape_xldselect_shape_xldSelectShapeXldSelectShapeXld, area_center_xldarea_center_xldarea_center_xldAreaCenterXldAreaCenterXld

Module

Foundation


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