merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld (Operator)
Name
merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld — 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_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld verbindet Konturen,
die aus räumlich aneinandergrenzenden Bildern der Höhe
ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height 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
CurrContsCurrContsCurrContsCurrContscurrContscurr_conts die Konturen des aktuellen Bildes enthält und
PrevContsPrevContsPrevContsPrevContsprevContsprev_conts die des vorherigen, welches die räumliche
Fortsetzung des aktuellen Bildes darstellt.
Mit Hilfe des Parameters MergeBorderMergeBorderMergeBorderMergeBordermergeBordermerge_border kann angegeben werden,
ob die Oberkante des aktuellen Bildes an die Unterkante des vorherigen
Bildes stößt ('top'"top""top""top""top""top") oder die Unterkante des aktuellen
Bildes an die Oberkante des vorherigen Bildes ('bottom'"bottom""bottom""bottom""bottom""bottom").
MergeBorderMergeBorderMergeBorderMergeBordermergeBordermerge_border 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 MaxImagesContMaxImagesContMaxImagesContMaxImagesContmaxImagesContmax_images_cont bestimmt bei der rekursiven
Anwendung des Operators merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld, wie viel
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_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld liefert zwei
Konturarrays zurück. PrevMergedContsPrevMergedContsPrevMergedContsPrevMergedContsprevMergedContsprev_merged_conts enthält alle
Konturen, die ausschließlich in der alten Konturenliste enthalten
sind und nicht mit den aktuellen Konturen verbunden werden konnten.
In CurrMergedContsCurrMergedContsCurrMergedContsCurrMergedContscurrMergedContscurr_merged_conts werden dagegen alle aktuellen und die mit
diesen verbundenen Konturen eingetragen. Die miteinander verbundenen
Konturen erscheinen als eine einzige neue Kontur in
CurrMergedContsCurrMergedContsCurrMergedContsCurrMergedContscurrMergedContscurr_merged_conts, 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
(MergeBorderMergeBorderMergeBorderMergeBordermergeBordermerge_border='top'"top""top""top""top""top") oder nach unten
(MergeBorderMergeBorderMergeBorderMergeBordermergeBordermerge_border='bottom'"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
CurrContsCurrContsCurrContsCurrContscurrContscurr_conts (input_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
Aktuelle Eingabekonturen.
PrevContsPrevContsPrevContsPrevContsprevContsprev_conts (input_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject
Im vorhergehenden Zyklus zusammengefügte Konturen.
CurrMergedContsCurrMergedContsCurrMergedContsCurrMergedContscurrMergedContscurr_merged_conts (output_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject *
Aktuelle Konturen, die ggf. mit den alten Konturen
verbunden wurden.
PrevMergedContsPrevMergedContsPrevMergedContsPrevMergedContsprevMergedContsprev_merged_conts (output_object) xld_cont(-array) → objectHXLDContHObjectHXLDContHobject *
Alte Konturen, die nicht mit den aktuellen verbunden
werden konnten.
ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height (input_control) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Höhe der Ausgangsbilder.
Defaultwert: 512
Wertevorschläge: 240, 480, 512
MarginMarginMarginMarginmarginmargin (input_control) real → HTupleUnion[float, int]HTupleHtuple (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
MergeBorderMergeBorderMergeBorderMergeBordermergeBordermerge_border (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Im aktuellen Bild die Zeile, die mit dem
vorhergehenden Bild zusammenstößt.
Defaultwert:
'top'
"top"
"top"
"top"
"top"
"top"
Werteliste: 'bottom'"bottom""bottom""bottom""bottom""bottom", 'top'"top""top""top""top""top"
MaxImagesContMaxImagesContMaxImagesContMaxImagesContmaxImagesContmax_images_cont (input_control) integer → HTupleintHTupleHtuple (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_xldMergeContLineScanXldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld liefert den Wert 2 (H_MSG_TRUE), falls die
übergebenen Parameter korrekt sind. Ansonsten wird eine
Fehlerbehandlung durchgeführt.
Modul
Foundation