KlassenKlassenKlassenKlassen | | | | Operatoren

segment_contour_attrib_xldsegment_contour_attrib_xldSegmentContourAttribXldsegment_contour_attrib_xldSegmentContourAttribXldSegmentContourAttribXld (Operator)

Name

segment_contour_attrib_xldsegment_contour_attrib_xldSegmentContourAttribXldsegment_contour_attrib_xldSegmentContourAttribXldSegmentContourAttribXld — Segmentieren von Konturteilen, deren Attribute vorgegebene Bedingungen erfüllen.

Signatur

segment_contour_attrib_xld(Contour : ContourPart : Attribute, Operation, Min, Max : )

Herror segment_contour_attrib_xld(const Hobject Contour, Hobject* ContourPart, const char* Attribute, const char* Operation, double Min, double Max)

Herror T_segment_contour_attrib_xld(const Hobject Contour, Hobject* ContourPart, const Htuple Attribute, const Htuple Operation, const Htuple Min, const Htuple Max)

Herror segment_contour_attrib_xld(Hobject Contour, Hobject* ContourPart, const HTuple& Attribute, const HTuple& Operation, const HTuple& Min, const HTuple& Max)

HXLDContArray HXLDCont::SegmentContourAttribXld(const HTuple& Attribute, const HTuple& Operation, const HTuple& Min, const HTuple& Max) const

HXLDContArray HXLDContArray::SegmentContourAttribXld(const HTuple& Attribute, const HTuple& Operation, const HTuple& Min, const HTuple& Max) const

void SegmentContourAttribXld(const HObject& Contour, HObject* ContourPart, const HTuple& Attribute, const HTuple& Operation, const HTuple& Min, const HTuple& Max)

HXLDCont HXLDCont::SegmentContourAttribXld(const HTuple& Attribute, const HString& Operation, const HTuple& Min, const HTuple& Max) const

HXLDCont HXLDCont::SegmentContourAttribXld(const HString& Attribute, const HString& Operation, double Min, double Max) const

HXLDCont HXLDCont::SegmentContourAttribXld(const char* Attribute, const char* Operation, double Min, double Max) const

void HOperatorSetX.SegmentContourAttribXld(
[in] IHUntypedObjectX* Contour, [out] IHUntypedObjectX*ContourPart, [in] VARIANT Attribute, [in] VARIANT Operation, [in] VARIANT Min, [in] VARIANT Max)

IHXLDContX* HXLDContX.SegmentContourAttribXld(
[in] VARIANT Attribute, [in] BSTR Operation, [in] VARIANT Min, [in] VARIANT Max)

static void HOperatorSet.SegmentContourAttribXld(HObject contour, out HObject contourPart, HTuple attribute, HTuple operation, HTuple min, HTuple max)

HXLDCont HXLDCont.SegmentContourAttribXld(HTuple attribute, string operation, HTuple min, HTuple max)

HXLDCont HXLDCont.SegmentContourAttribXld(string attribute, string operation, double min, double max)

Beschreibung

segment_contour_attrib_xldsegment_contour_attrib_xldSegmentContourAttribXldsegment_contour_attrib_xldSegmentContourAttribXldSegmentContourAttribXld segmentiert die Eingabekontur ContourContourContourContourContourcontour in Kontursegmente ContourPartContourPartContourPartContourPartContourPartcontourPart. Die Segmentierung der Kontur ist von den Werten der Konturattribute AttributeAttributeAttributeAttributeAttributeattribute abhängig (siehe unten für mögliche Werte von AttributeAttributeAttributeAttributeAttributeattribute). Der Operator prüft welche Attributwerte innerhalb der vorgegebenen Grenzen (MinMinMinMinMinmin, MaxMaxMaxMaxMaxmax) liegen und liefert die entsprechenden Kontursegmente zusammen mit ihren Attributen in ContourPartContourPartContourPartContourPartContourPartcontourPart zurück.

Ist OperationOperationOperationOperationOperationoperation auf 'and' gesetzt, muss jedes der angegebenen Attribute innerhalb der vorgegebenen Grenzen liegen. Ist OperationOperationOperationOperationOperationoperation auf 'or' gesetzt, muss mindestens ein Attribut innerhalb der vorgegebenen Grenzen liegen. Die Attribute werden in der Reihenfolge abgearbeitet, in der sie in AttributeAttributeAttributeAttributeAttributeattribute aufgeführt sind. Wird nur ein Merkmal (AttributeAttributeAttributeAttributeAttributeattribute) verwendet, wird der Wert von OperationOperationOperationOperationOperationoperation ignoriert.

Es ist zu beachten, dass nicht alle Attribute in jeder Kontur vorhanden sind. Welche Attribute für eine gegebene Kontur definiert sind, hängt davon ab, wie die Kontur erzeugt wurde und ob bestimmte Operationen darauf ausgeführt wurden. So sind zum Beispiel die Attribute 'width_right'"width_right""width_right""width_right""width_right""width_right" und 'width_left'"width_left""width_left""width_left""width_left""width_left" nur vorhanden, wenn die Kontur mit dem Operator lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss erzeugt wurde. Ebenso ist das Attribut 'distance'"distance""distance""distance""distance""distance" erst vorhanden, wenn zuvor der Abstand zu einer anderen Kontur mit distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld oder apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld berechnet wurde.

Bedingung:

Mögliche Werte für AttributeAttributeAttributeAttributeAttributeattribute:

'edge_direction':

Kantenrichtung (siehe auch edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix)

'angle':

Der Winkel der Richtung senkrecht zur Linie (siehe auch edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix oder lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss)

'response':

Die Größe der zweiten Ableitung (siehe auch edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix oder lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss)

'width_right':

Die Linienbreite rechts von der Linie (siehe auch lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss)

'width_left':

Die Linienbreite links von der Linie (siehe auch lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss)

'contrast':

Der Kontrast des Linienpunkts (siehe auch lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss)

'asymmetry':

Die Asymmetrie des Linienpunkts (siehe auch lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss)

'distance':

Der minimale punktweise Abstand zu einer Referenzkontur (siehe auch distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld oder apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld)

Parallelisierung

Parameter

ContourContourContourContourContourcontour (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Zu segmentierende Kontur.

ContourPartContourPartContourPartContourPartContourPartcontourPart (output_object)  xld_cont-array objectHXLDContHXLDContHXLDContArrayHXLDContXHobject *

Kontursegmente.

AttributeAttributeAttributeAttributeAttributeattribute (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Konturattribute, die geprüft werden.

Defaultwert: 'distance' "distance" "distance" "distance" "distance" "distance"

Werteliste: 'angle'"angle""angle""angle""angle""angle", 'asymmetry'"asymmetry""asymmetry""asymmetry""asymmetry""asymmetry", 'contrast'"contrast""contrast""contrast""contrast""contrast", 'distance'"distance""distance""distance""distance""distance", 'edge_direction'"edge_direction""edge_direction""edge_direction""edge_direction""edge_direction", 'response'"response""response""response""response""response", 'width_left'"width_left""width_left""width_left""width_left""width_left", 'width_right'"width_right""width_right""width_right""width_right""width_right"

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

Art der Verlinkung der individuellen Attribute.

Defaultwert: 'and' "and" "and" "and" "and" "and"

Werteliste: 'and'"and""and""and""and""and", 'or'"or""or""or""or""or"

MinMinMinMinMinmin (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Untere Grenze der Features.

Defaultwert: 150.0

Typischer Wertebereich: 0.0 ≤ Min Min Min Min Min min ≤ 99999.0

Minimale Schrittweite: 0.001

Empfohlene Schrittweite: 1.0

MaxMaxMaxMaxMaxmax (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Obere Grenze der Features.

Defaultwert: 99999.0

Typischer Wertebereich: 0.0 ≤ Max Max Max Max Max max ≤ 99999.0

Minimale Schrittweite: 0.001

Empfohlene Schrittweite: 1.0

Restriktion: Max >= Min

Beispiel (HDevelop)

read_image (Image, 'fabrik')
edges_sub_pix (Image, Edges, 'canny', 1, 20, 40)
* select 'vertical' edges:
segment_contour_attrib_xld (Edges, ContourPart, 'edge_direction', \
                            'and', rad(90-20), rad(90+20))

Ergebnis

select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe nicht leer ist. Das Verhalten bei leerer Eingabe (keine Eingabeobjekte vorhanden) lässt sich mittels 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>) festlegen. Das Verhalten bei einer leeren Region (Region ist die leere Menge) wird mit set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>) bestimmt. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

lines_gausslines_gaussLinesGausslines_gaussLinesGaussLinesGauss, edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix, apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld, distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld

Nachfolger

fit_line_contour_xldfit_line_contour_xldFitLineContourXldfit_line_contour_xldFitLineContourXldFitLineContourXld, fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXld, fit_circle_contour_xldfit_circle_contour_xldFitCircleContourXldfit_circle_contour_xldFitCircleContourXldFitCircleContourXld, fit_rectangle2_contour_xldfit_rectangle2_contour_xldFitRectangle2ContourXldfit_rectangle2_contour_xldFitRectangle2ContourXldFitRectangle2ContourXld

Siehe auch

split_contours_xldsplit_contours_xldSplitContoursXldsplit_contours_xldSplitContoursXldSplitContoursXld, get_contour_global_attrib_xldget_contour_global_attrib_xldGetContourGlobalAttribXldget_contour_global_attrib_xldGetContourGlobalAttribXldGetContourGlobalAttribXld, query_contour_attribs_xldquery_contour_attribs_xldQueryContourAttribsXldquery_contour_attribs_xldQueryContourAttribsXldQueryContourAttribsXld, get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldget_contour_attrib_xldGetContourAttribXldGetContourAttribXld

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren