Operator Reference

merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld (Operator)

merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld — Merge XLD contours from successive line scan images.

Signature

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   ( Windows only)

def merge_cont_line_scan_xld(curr_conts: HObject, prev_conts: HObject, image_height: int, margin: Union[float, int], merge_border: str, max_images_cont: int) -> Tuple[HObject, HObject]

Description

The operator merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld connects adjacent XLD contours, which were extracted from adjacent images with the height ImageHeightImageHeightImageHeightimageHeightimage_height. This operator was especially designed to connect contours that were extracted from images grabbed by a line scan camera. CurrContsCurrContsCurrContscurrContscurr_conts contains the contours from the current image and PrevContsPrevContsPrevContsprevContsprev_conts the contours from the previous one.

With the help of the parameter MergeBorderMergeBorderMergeBordermergeBordermerge_border two cases can be distinguished: If the top (first) line of the current image touches the bottom (last) line of the previous image, MergeBorderMergeBorderMergeBordermergeBordermerge_border must be set to 'top'"top""top""top""top", otherwise set MergeBorderMergeBorderMergeBordermergeBordermerge_border to 'bottom'"bottom""bottom""bottom""bottom". MergeBorderMergeBorderMergeBordermergeBordermerge_border defines a margin to the border. Only those end points of the contours which are inside this margin are considered for the following merging process.

If the operator merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld is used recursively, the parameter MaxImagesContMaxImagesContMaxImagesContmaxImagesContmax_images_cont determines the maximum number of images which are covered by a merged contour. All points of the merged contour from an older image are removed.

The operator merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld returns two contour arrays. PrevMergedContsPrevMergedContsPrevMergedContsprevMergedContsprev_merged_conts contains all those contours from the previous input contours PrevContsPrevContsPrevContsprevContsprev_conts, which could not be merged with a current contour. CurrMergedContsCurrMergedContsCurrMergedContscurrMergedContscurr_merged_conts collects all current contours together with the merged parts from the previous images. Merged contours will exceed the original image, because the previous contours are moved upward (MergeBorderMergeBorderMergeBordermergeBordermerge_border='top'"top""top""top""top") or downward (MergeBorderMergeBorderMergeBordermergeBordermerge_border='bottom'"bottom""bottom""bottom""bottom") according to the image height.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

CurrContsCurrContsCurrContscurrContscurr_conts (input_object)  xld_cont(-array) objectHXLDContHObjectHObjectHobject

Current input contours.

PrevContsPrevContsPrevContsprevContsprev_conts (input_object)  xld_cont(-array) objectHXLDContHObjectHObjectHobject

Merged contours from the previous iteration.

CurrMergedContsCurrMergedContsCurrMergedContscurrMergedContscurr_merged_conts (output_object)  xld_cont(-array) objectHXLDContHObjectHObjectHobject *

Current contours, merged with old ones where applicable.

PrevMergedContsPrevMergedContsPrevMergedContsprevMergedContsprev_merged_conts (output_object)  xld_cont(-array) objectHXLDContHObjectHObjectHobject *

Contours from the previous iteration which could not be merged with the current ones.

ImageHeightImageHeightImageHeightimageHeightimage_height (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of the line scan images.

Default: 512

Suggested values: 240, 480, 512

MarginMarginMarginmarginmargin (input_control)  real HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Maximum distance of contours from the image border.

Default: 0.0

Suggested values: 0.0, 1.0, 2.0, 3.0, 4.0, 5.0

MergeBorderMergeBorderMergeBordermergeBordermerge_border (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Image line of the current image, which touches the previous image.

Default: 'top' "top" "top" "top" "top"

List of values: 'bottom'"bottom""bottom""bottom""bottom", 'top'"top""top""top""top"

MaxImagesContMaxImagesContMaxImagesContmaxImagesContmax_images_cont (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Maximum number of images covered by one contour.

Default: 3

Suggested values: 1, 2, 3, 4, 5

Result

The operator merge_cont_line_scan_xldmerge_cont_line_scan_xldMergeContLineScanXldMergeContLineScanXldmerge_cont_line_scan_xld returns the value 2 ( H_MSG_TRUE) if the given parameters are correct. Otherwise, an exception will be raised.

Module

Foundation