ClassesClassesClassesClasses | | | | Operators

fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXld (Operator)

Name

fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXld — Approximate XLD contours by ellipses or elliptic arcs.

Signature

fit_ellipse_contour_xld(Contours : : Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, VossTabSize, Iterations, ClippingFactor : Row, Column, Phi, Radius1, Radius2, StartPhi, EndPhi, PointOrder)

Herror fit_ellipse_contour_xld(const Hobject Contours, const char* Algorithm, const Hlong MaxNumPoints, double MaxClosureDist, const Hlong ClippingEndPoints, const Hlong VossTabSize, const Hlong Iterations, double ClippingFactor, double* Row, double* Column, double* Phi, double* Radius1, double* Radius2, double* StartPhi, double* EndPhi, char* PointOrder)

Herror T_fit_ellipse_contour_xld(const Hobject Contours, const Htuple Algorithm, const Htuple MaxNumPoints, const Htuple MaxClosureDist, const Htuple ClippingEndPoints, const Htuple VossTabSize, const Htuple Iterations, const Htuple ClippingFactor, Htuple* Row, Htuple* Column, Htuple* Phi, Htuple* Radius1, Htuple* Radius2, Htuple* StartPhi, Htuple* EndPhi, Htuple* PointOrder)

Herror fit_ellipse_contour_xld(Hobject Contours, const HTuple& Algorithm, const HTuple& MaxNumPoints, const HTuple& MaxClosureDist, const HTuple& ClippingEndPoints, const HTuple& VossTabSize, const HTuple& Iterations, const HTuple& ClippingFactor, double* Row, double* Column, double* Phi, double* Radius1, double* Radius2, double* StartPhi, double* EndPhi, char* PointOrder)

Herror fit_ellipse_contour_xld(Hobject Contours, const HTuple& Algorithm, const HTuple& MaxNumPoints, const HTuple& MaxClosureDist, const HTuple& ClippingEndPoints, const HTuple& VossTabSize, const HTuple& Iterations, const HTuple& ClippingFactor, HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Radius1, HTuple* Radius2, HTuple* StartPhi, HTuple* EndPhi, HTuple* PointOrder)

double HXLDCont::FitEllipseContourXld(const HTuple& Algorithm, const HTuple& MaxNumPoints, const HTuple& MaxClosureDist, const HTuple& ClippingEndPoints, const HTuple& VossTabSize, const HTuple& Iterations, const HTuple& ClippingFactor, double* Column, double* Phi, double* Radius1, double* Radius2, double* StartPhi, double* EndPhi, char* PointOrder) const

HTuple HXLDContArray::FitEllipseContourXld(const HTuple& Algorithm, const HTuple& MaxNumPoints, const HTuple& MaxClosureDist, const HTuple& ClippingEndPoints, const HTuple& VossTabSize, const HTuple& Iterations, const HTuple& ClippingFactor, HTuple* Column, HTuple* Phi, HTuple* Radius1, HTuple* Radius2, HTuple* StartPhi, HTuple* EndPhi, HTuple* PointOrder) const

void FitEllipseContourXld(const HObject& Contours, const HTuple& Algorithm, const HTuple& MaxNumPoints, const HTuple& MaxClosureDist, const HTuple& ClippingEndPoints, const HTuple& VossTabSize, const HTuple& Iterations, const HTuple& ClippingFactor, HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Radius1, HTuple* Radius2, HTuple* StartPhi, HTuple* EndPhi, HTuple* PointOrder)

void HXLDCont::FitEllipseContourXld(const HString& Algorithm, Hlong MaxNumPoints, double MaxClosureDist, Hlong ClippingEndPoints, Hlong VossTabSize, Hlong Iterations, double ClippingFactor, HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Radius1, HTuple* Radius2, HTuple* StartPhi, HTuple* EndPhi, HTuple* PointOrder) const

void HXLDCont::FitEllipseContourXld(const HString& Algorithm, Hlong MaxNumPoints, double MaxClosureDist, Hlong ClippingEndPoints, Hlong VossTabSize, Hlong Iterations, double ClippingFactor, double* Row, double* Column, double* Phi, double* Radius1, double* Radius2, double* StartPhi, double* EndPhi, HString* PointOrder) const

void HXLDCont::FitEllipseContourXld(const char* Algorithm, Hlong MaxNumPoints, double MaxClosureDist, Hlong ClippingEndPoints, Hlong VossTabSize, Hlong Iterations, double ClippingFactor, double* Row, double* Column, double* Phi, double* Radius1, double* Radius2, double* StartPhi, double* EndPhi, HString* PointOrder) const

void HOperatorSetX.FitEllipseContourXld(
[in] IHUntypedObjectX* Contours, [in] VARIANT Algorithm, [in] VARIANT MaxNumPoints, [in] VARIANT MaxClosureDist, [in] VARIANT ClippingEndPoints, [in] VARIANT VossTabSize, [in] VARIANT Iterations, [in] VARIANT ClippingFactor, [out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* Phi, [out] VARIANT* Radius1, [out] VARIANT* Radius2, [out] VARIANT* StartPhi, [out] VARIANT* EndPhi, [out] VARIANT* PointOrder)

VARIANT HXLDContX.FitEllipseContourXld(
[in] BSTR Algorithm, [in] Hlong MaxNumPoints, [in] double MaxClosureDist, [in] Hlong ClippingEndPoints, [in] Hlong VossTabSize, [in] Hlong Iterations, [in] double ClippingFactor, [out] VARIANT* Column, [out] VARIANT* Phi, [out] VARIANT* Radius1, [out] VARIANT* Radius2, [out] VARIANT* StartPhi, [out] VARIANT* EndPhi, [out] VARIANT* PointOrder)

static void HOperatorSet.FitEllipseContourXld(HObject contours, HTuple algorithm, HTuple maxNumPoints, HTuple maxClosureDist, HTuple clippingEndPoints, HTuple vossTabSize, HTuple iterations, HTuple clippingFactor, out HTuple row, out HTuple column, out HTuple phi, out HTuple radius1, out HTuple radius2, out HTuple startPhi, out HTuple endPhi, out HTuple pointOrder)

void HXLDCont.FitEllipseContourXld(string algorithm, int maxNumPoints, double maxClosureDist, int clippingEndPoints, int vossTabSize, int iterations, double clippingFactor, out HTuple row, out HTuple column, out HTuple phi, out HTuple radius1, out HTuple radius2, out HTuple startPhi, out HTuple endPhi, out HTuple pointOrder)

void HXLDCont.FitEllipseContourXld(string algorithm, int maxNumPoints, double maxClosureDist, int clippingEndPoints, int vossTabSize, int iterations, double clippingFactor, out double row, out double column, out double phi, out double radius1, out double radius2, out double startPhi, out double endPhi, out string pointOrder)

Description

fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXld approximates the XLD contours ContoursContoursContoursContoursContourscontours by elliptic arcs or closed ellipses. It does not perform a segmentation of the input contours. Thus, one has to make sure that each contour corresponds to one and only one elliptic structure. The operator returns for each contour the center (RowRowRowRowRowrow, ColumnColumnColumnColumnColumncolumn), the orientation of the main axis PhiPhiPhiPhiPhiphi, the length of the larger half axis Radius1Radius1Radius1Radius1Radius1radius1, and the length of the smaller half axis Radius2Radius2Radius2Radius2Radius2radius2 of the underlying ellipse. In addition to that, the angle corresponding to the start point and the end point StartPhiStartPhiStartPhiStartPhiStartPhistartPhi, EndPhiEndPhiEndPhiEndPhiEndPhiendPhi, and the point order along the boundary PointOrderPointOrderPointOrderPointOrderPointOrderpointOrder is returned for elliptic arcs. These parameters are set to 0, , and 'positive' for closed ellipses. The algorithm used for the fitting of ellipses can be selected via AlgorithmAlgorithmAlgorithmAlgorithmAlgorithmalgorithm:

'fitzgibbon'

This approach minimizes the algebraic distance

between the contour points and the resulting ellipse. The constraint 4ac - b^2 = 1 guarantees that the resulting polynomial characterizes an ellipse (instead of a hyperbola or a parabola).

'fhuber'

Similar to 'fitzgibbon'. Here the contour points are weighted to decrease the impact of outliers based on the approach of Huber (see below).

'ftukey'

Similar to 'fitzgibbon'. Here the contour points are weighted and outliers are ignored based on the approach of Tukey (see below).

'geometric'

This approach minimizes the geometric distance between the contour points and the resulting ellipse. The distance measure is statistically optimal, but takes more computational time, because the computation is an iterative process. This option is recommended if the contour points are considerably distorted by noise.

'geohuber'

Similar to 'geometric'. Here the contour points are weighted to decrease the impact of outliers based on the approach of Huber (see below).

'geotukey'

Similar to 'geometric'. Here the contour points are weighted and outliers are ignored based on the approach of Tukey (see below).

'voss'

Each input contour is transformed in an affine standard position. Based on the moments of the transformed contour (that is of the enclosed image region) the standard circular segment is chosen whose standard position matches best with the standard position of the contour. The ellipse corresponding to the standard position of the selected circular segment is re-transformed based on the affine transformation which produced the standard position of the contour resulting in the ellipse matching the original contour. VossTabSizeVossTabSizeVossTabSizeVossTabSizeVossTabSizevossTabSize standard circular segments are used for this computation. To speed up the process the corresponding moments and other data is stored in a table which is created during the first call (with a specific value for VossTabSizeVossTabSizeVossTabSizeVossTabSizeVossTabSizevossTabSize) to fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXld.

'focpoints'

Each point P on an ellipse satisfies the constraint that the sum of distances to the focal points equals twice the length of the larger half axis a. In this approach, the deviation is minimized for all contour points by a least squares optimization.

'fphuber'

Similar to 'focpoints'. Here a weighted least squares optimization is done to decrease the impact of outliers based on the approach of Huber (see below).

'fptukey'

Similar to 'focpoints'. Here a weighted least squares optimization is done and outliers are ignored based on the approach of Tukey (see below).

For '*huber' and '*tukey' a robust error statistics is used to estimate the standard deviation of the distances from the contour points without outliers from the approximating ellipse. The parameter ClippingFactorClippingFactorClippingFactorClippingFactorClippingFactorclippingFactor (a scaling factor for the standard deviation) controls the amount of outliers: the smaller the value chosen for ClippingFactorClippingFactorClippingFactorClippingFactorClippingFactorclippingFactor the more points are classified as outliers. Every contour point is individually weighted and contributes according to its weight in the fitting process. The bundle of robust weighting and fitting can be iterated. The overall number of iterations is given by IterationsIterationsIterationsIterationsIterationsiterations. This parameter is of relevance for all algorithms except the two based on the geometric distance, i.e. 'geohuber' and 'geotukey', where this parameter is ignored. If the algorithm does not find a fitting ellipse within this number of iterations, it fits a line; in this case Radius2Radius2Radius2Radius2Radius2radius2 is zero. In the Tukey algorithm outliers are removed, whereas in the Huber algorithm outliers are only damped, or more precisely they are weighted linearly. Without any robust weighting the squares of the distances are taken as error values in the optimization, i.e. a least square formulation. In practice, the approach of Tukey is recommended.

To reduce the computational load, the fitting of ellipses can be restricted to a subset of the contour points: If a value other than -1 is assigned to MaxNumPointsMaxNumPointsMaxNumPointsMaxNumPointsMaxNumPointsmaxNumPoints, only up to MaxNumPointsMaxNumPointsMaxNumPointsMaxNumPointsMaxNumPointsmaxNumPoints points - uniformly distributed over the contour - are used.

For elliptic arcs, the points on the ellipse closest to the start points and end points of the original contours are chosen as start and end points. The corresponding angles referring to the main axis of the ellipse are returned in StartPhiStartPhiStartPhiStartPhiStartPhistartPhi and EndPhiEndPhiEndPhiEndPhiEndPhiendPhi, see also gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld. Contours, for which the distance between their start points and their end points is less or equal MaxClosureDistMaxClosureDistMaxClosureDistMaxClosureDistMaxClosureDistmaxClosureDist are considered to be closed. Thus, they are approximated by ellipses instead of elliptic arcs. The 'focpoints' algorithms determine the initial parameters for the optimization for closed contours in a faster and less accurate way than for open contours. As a result, in some cases more IterationsIterationsIterationsIterationsIterationsiterations may be necessary when applied to closed contours. Due to artifacts in the pre-processing the start and end points of a contour might be faulty. Therefore, it is possible to exclude ClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsclippingEndPoints points at the beginning and at the end of a contour from the fitting of ellipses. However, they are still used for the determination of StartPhiStartPhiStartPhiStartPhiStartPhistartPhi and EndPhiEndPhiEndPhiEndPhiEndPhiendPhi.

The minimum necessary number of contour points for fitting an ellipse is five. Therefore, it is required that the number of contour points is at least .

Parallelization

Parameters

ContoursContoursContoursContoursContourscontours (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Input contours.

AlgorithmAlgorithmAlgorithmAlgorithmAlgorithmalgorithm (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Algorithm for the fitting of ellipses.

Default value: 'fitzgibbon' "fitzgibbon" "fitzgibbon" "fitzgibbon" "fitzgibbon" "fitzgibbon"

List of values: 'fhuber'"fhuber""fhuber""fhuber""fhuber""fhuber", 'fitzgibbon'"fitzgibbon""fitzgibbon""fitzgibbon""fitzgibbon""fitzgibbon", 'focpoints'"focpoints""focpoints""focpoints""focpoints""focpoints", 'fphuber'"fphuber""fphuber""fphuber""fphuber""fphuber", 'fptukey'"fptukey""fptukey""fptukey""fptukey""fptukey", 'ftukey'"ftukey""ftukey""ftukey""ftukey""ftukey", 'geohuber'"geohuber""geohuber""geohuber""geohuber""geohuber", 'geometric'"geometric""geometric""geometric""geometric""geometric", 'geotukey'"geotukey""geotukey""geotukey""geotukey""geotukey", 'voss'"voss""voss""voss""voss""voss"

MaxNumPointsMaxNumPointsMaxNumPointsMaxNumPointsMaxNumPointsmaxNumPoints (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Maximum number of contour points used for the computation (-1 for all points).

Default value: -1

Restriction: MaxNumPoints >= 5

MaxClosureDistMaxClosureDistMaxClosureDistMaxClosureDistMaxClosureDistmaxClosureDist (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Maximum distance between the end points of a contour to be considered as 'closed'.

Default value: 0.0

Restriction: MaxClosureDist >= 0.0

ClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsclippingEndPoints (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Number of points at the beginning and at the end of the contours to be ignored for the fitting.

Default value: 0

Restriction: ClippingEndPoints >= 0

VossTabSizeVossTabSizeVossTabSizeVossTabSizeVossTabSizevossTabSize (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Number of circular segments used for the Voss approach.

Default value: 200

Restriction: VossTabSize >= 25 && VossTabSize <= 5000

IterationsIterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Maximum number of iterations for the robust weighted fitting.

Default value: 3

Restriction: Iterations >= 0

ClippingFactorClippingFactorClippingFactorClippingFactorClippingFactorclippingFactor (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Clipping factor for the elimination of outliers (typical: 1.0 for '*huber' and 2.0 for '*tukey').

Default value: 2.0

Suggested values: 1.0, 1.5, 2.0, 2.5, 3.0

Restriction: ClippingFactor > 0

RowRowRowRowRowrow (output_control)  ellipse.center.y(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Row coordinate of the center of the ellipse.

ColumnColumnColumnColumnColumncolumn (output_control)  ellipse.center.x(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Column coordinate of the center of the ellipse.

PhiPhiPhiPhiPhiphi (output_control)  ellipse.angle.rad(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Orientation of the main axis [rad].

Radius1Radius1Radius1Radius1Radius1radius1 (output_control)  ellipse.radius1(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Length of the larger half axis.

Radius2Radius2Radius2Radius2Radius2radius2 (output_control)  ellipse.radius2(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Length of the smaller half axis.

StartPhiStartPhiStartPhiStartPhiStartPhistartPhi (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Angle of the start point [rad].

EndPhiEndPhiEndPhiEndPhiEndPhiendPhi (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Angle of the end point [rad].

PointOrderPointOrderPointOrderPointOrderPointOrderpointOrder (output_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

point order along the boundary.

List of values: 'negative'"negative""negative""negative""negative""negative", 'positive'"positive""positive""positive""positive""positive"

Example (HDevelop)

read_image (Image, 'caltab')
find_caltab (Image, CalPlate, 'caltab_800mm.descr', 3, 112, 5)
reduce_domain (Image, CalPlate, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40)
select_contours_xld (Edges, EdgesClosed, 'closed', 0, 2.0, 0, 0)
select_contours_xld (EdgesClosed, EdgesMarks, 'length', 20, 80, 0, 0)
fit_ellipse_contour_xld (EdgesMarks, 'fitzgibbon', -1, 2, 0, 200, 3, 2.0, \
                         Row, Column, Phi, Radius1, Radius2, StartPhi, \
                         EndPhi, PointOrder)
gen_ellipse_contour_xld (EllMarks, Row, Column, Phi, Radius1, Radius2, \
                         StartPhi, EndPhi, PointOrder, 1.5)
length_xld(EllMarks,Length)

Example (HDevelop)

read_image (Image, 'caltab')
find_caltab (Image, CalPlate, 'caltab_800mm.descr', 3, 112, 5)
reduce_domain (Image, CalPlate, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40)
select_contours_xld (Edges, EdgesClosed, 'closed', 0, 2.0, 0, 0)
select_contours_xld (EdgesClosed, EdgesMarks, 'length', 20, 80, 0, 0)
fit_ellipse_contour_xld (EdgesMarks, 'fitzgibbon', -1, 2, 0, 200, 3, 2.0, \
                         Row, Column, Phi, Radius1, Radius2, StartPhi, \
                         EndPhi, PointOrder)
gen_ellipse_contour_xld (EllMarks, Row, Column, Phi, Radius1, Radius2, \
                         StartPhi, EndPhi, PointOrder, 1.5)
length_xld(EllMarks,Length)

Example (HDevelop)

read_image (Image, 'caltab')
find_caltab (Image, CalPlate, 'caltab_800mm.descr', 3, 112, 5)
reduce_domain (Image, CalPlate, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40)
select_contours_xld (Edges, EdgesClosed, 'closed', 0, 2.0, 0, 0)
select_contours_xld (EdgesClosed, EdgesMarks, 'length', 20, 80, 0, 0)
fit_ellipse_contour_xld (EdgesMarks, 'fitzgibbon', -1, 2, 0, 200, 3, 2.0, \
                         Row, Column, Phi, Radius1, Radius2, StartPhi, \
                         EndPhi, PointOrder)
gen_ellipse_contour_xld (EllMarks, Row, Column, Phi, Radius1, Radius2, \
                         StartPhi, EndPhi, PointOrder, 1.5)
length_xld(EllMarks,Length)

Example (C++ (HALCON 5.0-10.0))

read_image (Image, "caltab");
find_caltab (Image, &CalPlate, "caltab_800mm.descr", 3, 112, 5)
reduce_domain (Image, CalPlate, &ImageReduced);
edges_sub_pix (ImageReduced, &Edges, "lanser2", 0.5, 20, 40);
select_contours_xld (Edges, &EdgesClosed, "closed", 0, 2.0, 0, 0);
select_contours_xld (EdgesClosed, &EdgesMarks, "length", 20, 80, 0, 0);
fit_ellipse_contour_xld (EdgesMarks, "fitzgibbon", -1, 2, 0, 200, 3, 2.0,
                         &Row, &Column, &Phi, &Radius1, &Radius2, &StartPhi,
                         &EndPhi, &PointOrder);
gen_ellipse_contour_xld (&EllMarks, Row, Column, Phi, Radius1, Radius2,
                         StartPhi, EndPhi, PointOrder, 1.5);
length_xld(EllMarks,&Length);

Example (HDevelop)

read_image (Image, 'caltab')
find_caltab (Image, CalPlate, 'caltab_800mm.descr', 3, 112, 5)
reduce_domain (Image, CalPlate, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40)
select_contours_xld (Edges, EdgesClosed, 'closed', 0, 2.0, 0, 0)
select_contours_xld (EdgesClosed, EdgesMarks, 'length', 20, 80, 0, 0)
fit_ellipse_contour_xld (EdgesMarks, 'fitzgibbon', -1, 2, 0, 200, 3, 2.0, \
                         Row, Column, Phi, Radius1, Radius2, StartPhi, \
                         EndPhi, PointOrder)
gen_ellipse_contour_xld (EllMarks, Row, Column, Phi, Radius1, Radius2, \
                         StartPhi, EndPhi, PointOrder, 1.5)
length_xld(EllMarks,Length)

Example (HDevelop)

read_image (Image, 'caltab')
find_caltab (Image, CalPlate, 'caltab_800mm.descr', 3, 112, 5)
reduce_domain (Image, CalPlate, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40)
select_contours_xld (Edges, EdgesClosed, 'closed', 0, 2.0, 0, 0)
select_contours_xld (EdgesClosed, EdgesMarks, 'length', 20, 80, 0, 0)
fit_ellipse_contour_xld (EdgesMarks, 'fitzgibbon', -1, 2, 0, 200, 3, 2.0, \
                         Row, Column, Phi, Radius1, Radius2, StartPhi, \
                         EndPhi, PointOrder)
gen_ellipse_contour_xld (EllMarks, Row, Column, Phi, Radius1, Radius2, \
                         StartPhi, EndPhi, PointOrder, 1.5)
length_xld(EllMarks,Length)

Result

fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXld returns 2 (H_MSG_TRUE) if all parameter values are correct, and ellipses could be fitted to the input contours. If the input is empty the behaviour can be set via set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("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. If the parameter ClippingFactorClippingFactorClippingFactorClippingFactorClippingFactorclippingFactor is chosen too small, i.e., all points are classified as outliers, the error 3264 is raised.

Possible Predecessors

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld, lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss, lines_facetlines_facetLinesFacetlines_facetLinesFacetLinesFacet, edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix, smooth_contours_xldsmooth_contours_xldSmoothContoursXldsmooth_contours_xldSmoothContoursXldSmoothContoursXld

Possible Successors

gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld, disp_ellipsedisp_ellipseDispEllipsedisp_ellipseDispEllipseDispEllipse, get_points_ellipseget_points_ellipseGetPointsEllipseget_points_ellipseGetPointsEllipseGetPointsEllipse

See also

fit_line_contour_xldfit_line_contour_xldFitLineContourXldfit_line_contour_xldFitLineContourXldFitLineContourXld, fit_circle_contour_xldfit_circle_contour_xldFitCircleContourXldfit_circle_contour_xldFitCircleContourXldFitCircleContourXld, fit_rectangle2_contour_xldfit_rectangle2_contour_xldFitRectangle2ContourXldfit_rectangle2_contour_xldFitRectangle2ContourXldFitRectangle2ContourXld

Module

Foundation


ClassesClassesClassesClasses | | | | Operators