Name
distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld — Berechnen des punktweisen Abstands einer Kontur zu einer anderen.
Der Operator distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld berechnet für jeden Punkt in
ContourFromContourFromContourFromContourFromContourFromcontourFrom den minimalen Abstand zu den in ContourToContourToContourToContourToContourTocontourTo
übergebenen Konturen.
Die zurückgelieferte Kontur ContourOutContourOutContourOutContourOutContourOutcontourOut enthält
ContourFromContourFromContourFromContourFromContourFromcontourFrom mit dem Attribut 'distance'"distance""distance""distance""distance""distance", in dem die
berechneten Abstände gespeichert sind.
Die Abstände können durch die Abfrage des Attributs
'distance'"distance""distance""distance""distance""distance" mit dem Operator get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldget_contour_attrib_xldGetContourAttribXldGetContourAttribXld
abgerufen werden.
Der Parameter ModeModeModeModeModemode legt fest, welche Abstände für jeden Punkt
in ContourFromContourFromContourFromContourFromContourFromcontourFrom berechnet werden:
'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point" berechnet den minimalen Abstand zu den
Stützpunkten von ContourToContourToContourToContourToContourTocontourTo.
Dagegen berechnet 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" den minimalen Abstand zu
den Kontursegmenten von ContourToContourToContourToContourToContourTocontourTo (siehe auch nachstehende
Abbildung).
In vielen Anwendungen bietet sich 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment" für die
eigentlich korrekte Lösung an, während 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point"
deutlich schneller ist.
Bezeichnet m die Anzahl der Punkte in ContourFromContourFromContourFromContourFromContourFromcontourFrom,
n die Anzahl der Punkte in ContourToContourToContourToContourToContourTocontourTo, dann hat
distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld die Komplexität O(mlog(n)) für
'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point", und O(mn) für 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment".
Falls die Referenzkontur wiederholt verwendet wird, können die
Operatoren create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld und
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld alternativ zu
distance_contours_xlddistance_contours_xldDistanceContoursXlddistance_contours_xldDistanceContoursXldDistanceContoursXld benutzt werden.
Nähere Information hierzu finden sich in der Dokumentation zu
create_distance_transform_xldcreate_distance_transform_xldCreateDistanceTransformXldcreate_distance_transform_xldCreateDistanceTransformXldCreateDistanceTransformXld.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Konturen, für deren Punkte die Abstände
berechnet werden.
Konturen, zu denen die Abstände
berechnet werden.
Berechne die Distanz zu Punkten ('point_to_point')
oder zu ganzen Segmenten ('point_to_segment').
Defaultwert:
'point_to_point'
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
"point_to_point"
Werteliste: 'point_to_point'"point_to_point""point_to_point""point_to_point""point_to_point""point_to_point", 'point_to_segment'"point_to_segment""point_to_segment""point_to_segment""point_to_segment""point_to_segment"
Sind die Parameterwerte korrekt, dann liefert der Operator
den Wert 2 (H_MSG_TRUE), sonst eine Fehlermeldung.
get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldget_contour_attrib_xldGetContourAttribXldGetContourAttribXld,
segment_contour_attrib_xldsegment_contour_attrib_xldSegmentContourAttribXldsegment_contour_attrib_xldSegmentContourAttribXldSegmentContourAttribXld
apply_distance_transform_xldapply_distance_transform_xldApplyDistanceTransformXldapply_distance_transform_xldApplyDistanceTransformXldApplyDistanceTransformXld,
distance_ccdistance_ccDistanceCcdistance_ccDistanceCcDistanceCc,
distance_cc_mindistance_cc_minDistanceCcMindistance_cc_minDistanceCcMinDistanceCcMin
Foundation