merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXld (Operator)
Name
merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXld
— Zusammenfügen von Konturen aus aufeinanderfolgenden Zeilenkamerabildern.
Signatur
Herror merge_cont_line_scan_xld(const Hobject CurrConts, const Hobject PrevConts, Hobject* CurrMergedConts, Hobject* PrevMergedConts, const Hlong ImageHeight, double Margin, const char* MergeBorder, const Hlong MaxImagesCont)
Herror T_merge_cont_line_scan_xld(const Hobject CurrConts, const Hobject PrevConts, Hobject* CurrMergedConts, Hobject* PrevMergedConts, const Htuple ImageHeight, const Htuple Margin, const Htuple MergeBorder, const Htuple MaxImagesCont)
void MergeContLineScanXld(const HObject& CurrConts, const HObject& PrevConts, HObject* CurrMergedConts, HObject* PrevMergedConts, const HTuple& ImageHeight, const HTuple& Margin, const HTuple& MergeBorder, const HTuple& MaxImagesCont)
HXLDCont HXLDCont::MergeContLineScanXld(const HXLDCont& PrevConts, HXLDCont* PrevMergedConts, Hlong ImageHeight, const HTuple& Margin, const HString& MergeBorder, Hlong MaxImagesCont) const
HXLDCont HXLDCont::MergeContLineScanXld(const HXLDCont& PrevConts, HXLDCont* PrevMergedConts, Hlong ImageHeight, double Margin, const HString& MergeBorder, Hlong MaxImagesCont) const
HXLDCont HXLDCont::MergeContLineScanXld(const HXLDCont& PrevConts, HXLDCont* PrevMergedConts, Hlong ImageHeight, double Margin, const char* MergeBorder, Hlong MaxImagesCont) const
HXLDCont HXLDCont::MergeContLineScanXld(const HXLDCont& PrevConts, HXLDCont* PrevMergedConts, Hlong ImageHeight, double Margin, const wchar_t* MergeBorder, Hlong MaxImagesCont) const
(Nur Windows)
static void HOperatorSet.MergeContLineScanXld(HObject currConts, HObject prevConts, out HObject currMergedConts, out HObject prevMergedConts, HTuple imageHeight, HTuple margin, HTuple mergeBorder, HTuple maxImagesCont)
HXLDCont HXLDCont.MergeContLineScanXld(HXLDCont prevConts, out HXLDCont prevMergedConts, int imageHeight, HTuple margin, string mergeBorder, int maxImagesCont)
HXLDCont HXLDCont.MergeContLineScanXld(HXLDCont prevConts, out HXLDCont prevMergedConts, int imageHeight, double margin, string mergeBorder, int maxImagesCont)
Beschreibung
Der Operator merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXld
verbindet Konturen,
die aus räumlich aneinandergrenzenden Bildern der Höhe
ImageHeightImageHeightImageHeightImageHeightimageHeight
extrahiert wurden und
über die Bildränder hinaus ineinander überführt werden können.
Die Bilder können beispielsweise von einer Zeilenkamera nacheinander
aufgenommen worden sein. Dabei wird davon ausgegangen, dass
CurrContsCurrContsCurrContsCurrContscurrConts
die Konturen des aktuellen Bildes enthält und
PrevContsPrevContsPrevContsPrevContsprevConts
die des vorherigen, welches die räumliche
Forfsetzung des aktuellen Bildes darstellt.
Mit Hilfe des Paramaters MergeBorderMergeBorderMergeBorderMergeBordermergeBorder
kann angegeben werden,
ob die Oberkante des aktuellen Bildes an die Unterkante des vorherigen
Bildes stößt ('top'"top""top""top""top") oder die Unterkannte des aktuellen
Bildes an die Oberkante des vorherigen Bildes ('bottom'"bottom""bottom""bottom""bottom").
MergeBorderMergeBorderMergeBorderMergeBordermergeBorder
definiert den Abstand vom Rand, in dem die
Endpunkte der Kontur liegen müssen, um für das Merging
berücksichtigt zu werden.
Der Parameter MaxImagesContMaxImagesContMaxImagesContMaxImagesContmaxImagesCont
bestimmt bei der rekursiven
Anwendung des Operators merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXld
, wieviel
Bilder eine aktuelle Ausgangskontur maximal zurückreichen kann.
Alle Konturpunkte aus früheren Bildern werden aus der Ausgabekontur
entfernt.
Der Operator merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXld
liefert zwei
Konturenarrays zurück. PrevMergedContsPrevMergedContsPrevMergedContsPrevMergedContsprevMergedConts
enthält alle
Konturen, die ausschließlich in der alten Konturenliste enthalten
sind und nicht mit den aktuellen Konturen verbunden werden konnten.
In CurrMergedContsCurrMergedContsCurrMergedContsCurrMergedContscurrMergedConts
werden dagegen alle aktuellen und die mit
diesen verbundenen Konturen eingetragen. Die miteinander verbundenen
Konturen erscheinen als eine einzige neue Kontur in
CurrMergedContsCurrMergedContsCurrMergedContsCurrMergedContscurrMergedConts
, wobei diese verbundenen Konturen über den
Bildrand hinausgehen. Das bedeutet, dass der an eine aktuelle
Kontur angebundene alte Teil um die Bildhöhe nach oben
(MergeBorderMergeBorderMergeBorderMergeBordermergeBorder
='top'"top""top""top""top") oder nach unten
(MergeBorderMergeBorderMergeBorderMergeBordermergeBorder
='bottom'"bottom""bottom""bottom""bottom") verschoben wird.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
CurrContsCurrContsCurrContsCurrContscurrConts
(input_object) xld_cont(-array) →
objectHXLDContHXLDContHobject
Aktuelle Eingabekonturen.
PrevContsPrevContsPrevContsPrevContsprevConts
(input_object) xld_cont(-array) →
objectHXLDContHXLDContHobject
Im vorhergehenden Zyklus zusammengefügte Konturen.
CurrMergedContsCurrMergedContsCurrMergedContsCurrMergedContscurrMergedConts
(output_object) xld_cont(-array) →
objectHXLDContHXLDContHobject *
Aktuelle Konturen, die ggf. mit den alten Konturen
verbunden wurden.
PrevMergedContsPrevMergedContsPrevMergedContsPrevMergedContsprevMergedConts
(output_object) xld_cont(-array) →
objectHXLDContHXLDContHobject *
Alte Konturen, die nicht mit den aktuellen verbunden
werden konnten.
ImageHeightImageHeightImageHeightImageHeightimageHeight
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Höhe der Ausgangsbilder.
Defaultwert: 512
Wertevorschläge: 240, 480, 512
MarginMarginMarginMarginmargin
(input_control) real →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Maximaler Abstand der Konturen vom Rand.
Defaultwert: 0.0
Wertevorschläge: 0.0, 1.0, 2.0, 3.0, 4.0, 5.0
MergeBorderMergeBorderMergeBorderMergeBordermergeBorder
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Im aktuellen Bild die Zeile, die mit dem
vorhergehenden Bild zusammenstößt.
Defaultwert:
'top'
"top"
"top"
"top"
"top"
Werteliste: 'bottom'"bottom""bottom""bottom""bottom", 'top'"top""top""top""top"
MaxImagesContMaxImagesContMaxImagesContMaxImagesContmaxImagesCont
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Maximale Anzahl der Bilder, über die sich eine Kontur
erstrecken darf.
Defaultwert: 3
Wertevorschläge: 1, 2, 3, 4, 5
Ergebnis
merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXld
liefert den Wert 2 (H_MSG_TRUE), falls die
übergebenen Parameter korrekt sind. Ansonsten wird eine
Fehlerbehandlung durchgeführt.
Modul
Foundation