Operator Usage Instructions#

2D Vision Operators#

IO#

Read Image#

Introduction#

Image reading is used to read images from the local path.

Input#
Input Path
  • Type: String

  • Meaning: File path

Output#
Read Image
  • Type: ImageColor ImageGray

  • Meaning: Outputs an image to the global variable list

Parameters#
File Input Type
  • Meaning: Source of the file path

  • Range:

    • Set by parameter: Set the file path via configuration parameter ‘File Path’

    • Set by input variable: Set the file path via input variable ‘Input Path’

File Path
  • Meaning: Choose the image reading path

Image Type
  • Range: Color Image, Grayscale Image

Tip

The type of image variable changes according to the configuration parameters.

Save Image#

Introduction#

Image saving is used to save images processed in the software to local storage or a USB drive.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: An image from the global variable list

Parameters#
File Save Type
  • Meaning: Source of the file path

  • Range:

    • Set by parameter: Set the file path via configuration parameter ‘File Path’

    • Set by input variable: Set the file path via input variable ‘Input Path’

Save Path
  • Meaning: Choose the image saving path

Save Type
  • Range: png jpg bmp

Suffix
  • Range: None, Timestamp, Counter

Save Image Ftp#

Introduction#

Image saving is used to save images processed in the software to FTP.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: An image from the global variable list

Parameters#

FTP Server Settings

FTP Server Address
  • Meaning: FTP server address
    • Range: Default 127.0.0.1

FTP Server Port
  • Meaning: FTP server network port
    • Range: Default 21

Username
  • Meaning: FTP server username

Password
  • Meaning: FTP server password

OverTime (ms)
  • Meaning: Maximum connection time to the FTP server, connection stops if exceeded

File Saving Settings

File Save Type
  • Meaning: Source of the image saving path

  • Range:

    • Set by parameter: Set the image path via configuration parameter ‘Save Path’

    • Set by input variable: Set the image path via input variable ‘Input Path’

Save Path
  • Meaning: Choose the path under the created FTP site where the image will be saved

Save Type
  • Range: png jpg bmp

Suffix
  • Range: None, Timestamp, Counter

1 Setting Up an FTP Server

This manual is for Windows 10 Professional.

1.1 Install IIS Web Server

1.1.1 In the Control Panel, find Programs and Features and open it.

../_images/01.png

1.1.2 Click Turn Windows features on or off in the Programs and Features interface.

../_images/02.png

1.1.3 In the Windows Features popup, find and open Internet Information Services.

../_images/03.png

1.1.4 Select FTP Server, Web Management Tools, and World Wide Web Services under Internet Information Services. Click OK after selecting.

Note

Make sure all checkboxes are selected with check marks. If it’s a black box, it means some sub-items are not selected.

../_images/04.png

1.2 Set FTP Service to Start Automatically on Boot

1.2.1 Press win + R to open the run window, enter services.msc and click OK.

../_images/05.png

1.2.2 Click Extended, find Microsoft FTP Service, right-click and select Properties.

../_images/06.png

1.2.3 In the properties popup, click General, select Automatic for the startup type, Start for the service status, then click Apply->OK.

../_images/07.png

Tip

Even if you set up the FTP server to start on boot, it sometimes does not start automatically after restarting the computer and needs to be started manually.

1.3 Configure the FTP Server

1.3.1 In the Control Panel, find Administrative Tools and open it.

../_images/08.png

1.3.2 Find Internet Information Services (IIS) Manager, right-click and select Send to -> Desktop (create shortcut).

../_images/09.png

1.3.3 Click the desktop icon Internet Information Services (IIS) Manager, right-click Sites on the left sidebar, and select Add FTP Site.

../_images/10.png

1.3.4 Customize FTP Site Name and Physical Path, then click Next.

../_images/11.png

1.3.5 View your IP address. Open command prompt, type ipconfig, and copy the IPv4 address.

../_images/12.png

1.3.6 Paste the copied address into the IP Address of the new FTP site and select the port. Also, click No SSL -> Next.

../_images/13.png

1.3.7 Select Anonymous and Basic for authentication, choose All Users for access, and select Read and Write permissions. Finally, click Finish.

../_images/14.png

1.4 Allow FTP Server through Windows Firewall

1.4.1 In the Control Panel, click Windows Defender Firewall.

../_images/15.png

1.4.2 Select Allow an app or feature through Windows Defender Firewall.

../_images/16.png

1.4.3 Find FTP Server and select both Private and Public.

../_images/17.png

2 Specific User Access

On the basis of successfully setting up the FTP server, set the username and password to achieve user access control and differentiate FTP server users.

Tip

If all users can access the FTP server, steps after 1.3 are not required.

2.1 Creating an FTP User

2.1.1 Press win + R to open the run window, enter compmgmt.msc and click OK.

../_images/02_01.png

2.1.2 Click System Tools -> Local Users and Groups, right-click Users, and select New User.

../_images/02_02.png

2.1.3 Fill in User Name, Password, and Confirm Password, select User cannot change password and Password never expires. Click Create when finished.

Note

This account is essentially a computer account. Hence, you can use your login credentials for the computer to log into the FTP site without creating a test account. The ‘User Name’ and ‘Full Name’ need to be consistent, and the password is optional.

../_images/02_03.png ../_images/02_04.png

2.2 Setting a Specific User

2.2.1 Click FTP Authorization Rules and delete all users.

../_images/02_05.png ../_images/02_06.png ../_images/02_07.png

2.2.2 Add an allow authorization rule, select the specific user, fill in the added username, and select user permissions (Read/Write). Click OK when done.

../_images/02_08.png ../_images/02_09.png ../_images/02_10.png

2.3 FTP Verification Test

2.3.1 Click Actions -> Edit Site -> Basic Settings on the right sidebar.

../_images/02_11.png

2.3.2 Click Test Settings.

../_images/02_12.png

2.3.3 If Test Results show Authorization: Cannot verify access to path, proceed to step 3.4 and click Close. Otherwise, the verification test is complete.

../_images/02_13.png

2.3.4 Click Connect as.

../_images/02_14.png

2.3.5 Set credentials: Log in with the created username and password, click OK. Go back to Test Settings, now Test Results should show Authorization: Path can be accessed.

../_images/02_15.png ../_images/02_16.png

3 File Upload and Download

3.1 File Download

3.1.1 Enter the FTP address in the browser or file manager address bar, enter the created (or existing) username and password to access the specific user.

../_images/03_01.png

3.1.2 After a successful login, click the respective file to download it.

../_images/03_02.png

3.2 File Upload

3.2.1 In the file explorer, enter ftp://your ip address:port number or choose the corresponding physical path for FTP.

../_images/03_03.png

3.2.2 Enter the respective username and password, then drag and drop or create files to upload them.

Note

This completes the setup of the FTP server, allowing others within the same local network to not only access your computer but also transfer files between them.

Preprocessing#

Filter2D#

Introduction#

Perform filtering preprocessing on the image to make it easier to analyze features.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: Resulting image

Function#
Parameters#
Filter Method
  • Meaning: Choose a filtering method

  • Range: Box Filter, Mean Filter, Gaussian Filter, Median Filter, Bilateral Filter, Ideal Low-Pass Filter, Ideal High-Pass Filter, Gaussian Low-Pass Filter, Gaussian High-Pass Filter, Butterworth Low-Pass Filter, Butterworth High-Pass Filter

  • Box Blur - Filter Kernel Radius
    • Meaning: The larger the kernel, the more pronounced the effect

    • Range: 3 * 3, 5 * 5, 7 * 7, 9 * 9, 11 * 11, 13 * 13, 15 * 15, 17 * 17, 19 * 19, 21 * 21

  • Mean Blur - Filter Kernel Radius
    • Meaning: The larger the kernel, the more pronounced the effect

    • Range: 3 * 3, 5 * 5, 7 * 7, 9 * 9, 11 * 11, 13 * 13, 15 * 15, 17 * 17, 19 * 19, 21 * 21

  • Gaussian Blur - Filter Kernel Radius
    • Meaning: The larger the kernel, the more pronounced the effect

    • Range: 3 * 3, 5 * 5, 7 * 7, 9 * 9, 11 * 11, 13 * 13, 15 * 15, 17 * 17, 19 * 19, 21 * 21

  • Median Blur - Filter Kernel Radius
    • Meaning: The larger the kernel, the more pronounced the effect

    • Range: 3 * 3, 5 * 5, 7 * 7, 9 * 9, 11 * 11, 13 * 13, 15 * 15, 17 * 17, 19 * 19, 21 * 21

  • Bilateral Blur - Filter Kernel Radius
    • Meaning: The larger the kernel, the more pronounced the effect

    • Range: 3 * 3, 5 * 5, 7 * 7, 9 * 9, 11 * 11, 13 * 13, 15 * 15, 17 * 17, 19 * 19, 21 * 21

  • Ideal Low-Pass Filter - Filter Kernel Radius
    • Meaning: The larger the kernel, the more pronounced the effect

    • Range: [0.1, 300]

  • Ideal High-Pass Filter - Filter Kernel Radius
    • Meaning:

    • Range: [0.1, 300]

  • Gaussian Low-Pass Filter - Filter Kernel Radius
    • Meaning:

    • Range: [0.1, 300]

  • Gaussian High-Pass Filter - Filter Kernel Radius
    • Meaning:

    • Range: [0.1, 300]

  • Butterworth Low-Pass Filter - Filter Kernel Radius
    • Meaning:

    • Range: [0.1, 300]

  • Butterworth Low-Pass Filter - Order
    • Meaning:

    • Range: [1, 4]

  • Butterworth High-Pass Filter - Filter Kernel Radius
    • Meaning:

    • Range: [0.1, 300]

  • Butterworth Low-Pass Filter - Order
    • Meaning:

    • Range: [1, 4]

Examples#

Algorithm

Example: Input Image

Example: Output Image

Box Blur

../_images/filter1.png ../_images/boxfilter1.png

Mean Blur

../_images/filter1.png ../_images/meanfilter1.png

Gaussian Blur

../_images/filter1.png ../_images/guassianfilter1.png

Median Blur

../_images/filter1.png ../_images/midfilter1.png

Bilateral Blur

../_images/filter1.png ../_images/twoborderfilter1.png

Ideal Low-Pass Filter

../_images/passfilter_src1.png ../_images/LXLP_dst1.png

Ideal High-Pass Filter

../_images/LXHP_src1.png ../_images/LXHP_dst1.png

Gaussian Low-Pass Filter

../_images/passfilter_src1.png ../_images/guassianLP_dst1.png

Gaussian High-Pass Filter

../_images/LXHP_src1.png ../_images/guassianHP_dst1.png

Butterworth Low-Pass Filter

../_images/passfilter_src1.png ../_images/BussLP_dst1.png

Butterworth High-Pass Filter

../_images/LXHP_src1.png ../_images/BussHP_dst1.png

Image Enhance#

Introduction#

Perform enhancement preprocessing on the image to make it easier to analyze features.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: Resulting image

Function#

Algorithm

Function

Image Resize

Scale the image proportionally

Histogram Equalization

Adjust the global contrast of the image by equalizing its histogram. Increases contrast especially in cases where useful data is represented by similar values. This method is very effective for improving contrast in both very dark and very bright areas.

Gray Invert

Invert the black and white values of the image

Bright Change

Brightness represents the dark and light aspects of the image, with higher gray values indicating a brighter image. Contrast is the degree of difference between colors, with higher contrast making differences more apparent.

Gamma Correction

Adjust image details using gamma correction

Local Enhance

By changing the enhancement ratio, the gray values in the image can achieve clearer distinction between black and white

Mean Enhance

Compared with local enhancement, uniform enhancement results in more uniform gray values with less distinct black-white boundaries

Two Threshold Linearization

Perform linear operations on image gray values based on minimum and maximum thresholds

MultiImg

Multiply each pixel intensity value by an enhancement ratio and add an offset value

Pixel Manip

Perform add, subtract, multiply, and divide operations on image pixel gray values

Clip Gray

Limit the gray range of input image to a certain range, setting values above the max threshold to max and below the min threshold to min

Stretch Gray

Perform linear coefficient changes on the gray values of the input image

Range Gray

Retain the original gray value of pixels within the minimum-maximum threshold range, and set others to 0

Parameters#
Image Enhance Method
  • Meaning: Choose an image enhancement method

  • Range: Image Resize, Histogram Equalization, Gray Invert, Bright Change, Gamma Correction, Local Enhance, Mean Enhance, Two Threshold Linearization, MultiImg, Pixel Manip, Clip Gray, Stretch Gray, Range Gray

  • Image Resize - Size Change Ratio:
    • Meaning: Ratio is proportional

    • Range: [0.1, 10]

  • Bright Change - Scaling Factor:
    • Meaning:

    • Range: [0, 255]

  • Bright Change - Scaling Value Offset:
    • Meaning:

    • Range: [0, 255]

  • Gamma Correction - Gamma Correction Coefficient:
    • Meaning: The larger the Gamma value, the clearer the image details

    • Range: [0, 10]

  • Local Enhance - Local Enhance Ratio:
    • Meaning: Ratio is proportional

    • Range: [0.1, 10]

  • Mean Enhance - Mean Enhance Ratio:
    • Meaning: Ratio is proportional

    • Range: [0.1, 10]

  • Two Threshold Linearization - Minimum Threshold:
    • Meaning: Minimum threshold

    • Range: [0, 255]

  • Two Threshold Linearization - Maximum Threshold:
    • Meaning: Maximum threshold

    • Range: [0, 255]

  • MultiImg - Enhancement Ratio:
    • Meaning: Value to multiply each pixel by

    • Range: [0.001, 200]

  • MultiImg - Offset Value:
    • Meaning: Value to add to each pixel

    • Range: [-255, 255]

  • Pixel Manip - Pixel Operation Method:
    • Meaning: Method for pixel operations

    • Range: Addition, Subtraction, Multiplication, Division

  • Pixel Manip - Gray Value:
    • Meaning: Right-hand value for pixel operation

    • Range: [1, 255]

  • Clip Gray - Minimum Threshold:
    • Meaning: Minimum threshold

    • Range: [0, 255]

  • Clip Gray - Maximum Threshold:
    • Meaning: Maximum threshold

    • Range: [0, 255]

  • Stretch Gray - Minimum Threshold:
    • Meaning: Minimum threshold

    • Range: [0, 255]

  • Stretch Gray - Maximum Threshold:
    • Meaning: Maximum threshold

    • Range: [0, 255]

  • Range Gray - Minimum Threshold:
    • Meaning: Minimum threshold

    • Range: [0, 255]

  • Range Gray - Maximum Threshold:
    • Meaning: Maximum threshold

    • Range: [0, 255]

Examples#

Algorithm

Example: Input Image

Example: Output Image

Image ReSize

../_images/enhance_src1.png ../_images/half1.png

Histogram Equalization

../_images/enhance_src1.png ../_images/histM1.png

Gray Invert

../_images/enhance_src1.png ../_images/ungray1.png

Bright Change

../_images/enhance_src1.png ../_images/lightcons1.png

Gamma Correction

../_images/enhance_src1.png ../_images/gamma1.png

Local Enhance

../_images/enhance_src1.png ../_images/local_enhance1.png

Mean Enhance

../_images/enhance_src1.png ../_images/meanHance1.png

Two Threshold Linearization

../_images/enhance_src1.png ../_images/TwoLinear1.png

MultiImg

../_images/enhance_src1.png ../_images/imgeMul1.png

Pixel Manip - Addition

../_images/pixel_src1.png ../_images/pixel_add1.png

Pixel Manip - Subtraction

../_images/pixel_src1.png ../_images/pixel_sub1.png

Pixel Manip - Multiplication

../_images/pixel_src1.png ../_images/pixel_mul1.png

Pixel Manip - Division

../_images/pixel_src1.png ../_images/pixel_dive1.png

Clip Gray

../_images/gray_src1.png ../_images/gray_crop1.png

Stretchi Gray

../_images/gray_src1.png ../_images/gray_pull1.png

Range Gray

../_images/gray_src1.png ../_images/gray_region1.png

BGR2Gray#

Introduction#

Convert a color RGB image to a single-channel grayscale image

Input#
Input Image
  • Type: ImageColor

  • Meaning: Input color image to be processed

Output#
Output Image
  • Type: ImageGray

  • Meaning: Resulting grayscale image

Examples#

Input Image

../_images/image_color1.png

Output Image

../_images/image_gray1.png

Edge Detection#

Introduction#

Apply edge detection preprocessing to the image to make its features easier to analyze.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: The result image

Function#

Algorithm

Function

Canny

The Canny operator is currently one of the most theoretically complete edge detection algorithms. It is widely used.

Sobel

The Sobel operator detects edges by calculating the weighted difference of pixel intensities between neighboring pixels in the vertical and horizontal directions. It offers noise smoothing and provides relatively accurate edge direction information. Edge detection highlights the image’s contours, with the contour edges being bright and the areas on either side of the contour significantly darkened.

Scharr

Since the Sobel operator’s small kernel has low accuracy in calculating derivatives, the Scharr operator is as fast as the Sobel operator but more accurate. Thus, the Scharr operator is recommended for edge extraction using a 3x3 filter.

Laplacian

The Laplacian operator is typically chosen when only the location of edge points is of concern, without needing to know the actual intensity differences around them.

Parameters#
Edge Detection Method
  • Meaning: Select the edge detection method

  • Range: Canny, Sobel, Scharr, Laplacian

  • Canny - Min Val:
    • Meaning: The lower threshold for Canny. The larger the threshold, the fewer edge points. The smaller the threshold, the more edge points.

    • Range: [0, 255]

  • Canny - Max Val:
    • Meaning: The upper threshold for Canny. The larger the threshold, the fewer edge points. The smaller the threshold, the more edge points.

    • Range: [0, 255]

  • Canny - Kernel Size:
    • Meaning: The larger the kernel size, the more pronounced the effect.

    • Range: 3*3, 5*5, 7*7, 9*9, 11*11, 13*13, 15*15, 17*17, 19*19, 21*21

  • Sobel - Kernel Size:
    • Meaning: The larger the kernel size, the more pronounced the effect.

    • Range: 3*3, 5*5, 7*7, 9*9, 11*11, 13*13, 15*15, 17*17, 19*19, 21*21

  • Laplacian - Kernel Size:
    • Meaning: The larger the kernel size, the more pronounced the effect.

    • Range: 3*3, 5*5, 7*7, 9*9, 11*11, 13*13, 15*15, 17*17, 19*19, 21*21

Examples#

Algorithm

Example: Input Image

Example: Output Image

Canny

../_images/Edge_src1.png ../_images/canny1.png

Sobel

../_images/Edge_src1.png ../_images/Sobel1.png

Scharr

../_images/Edge_src1.png ../_images/scharr1.png

Laplacian

../_images/Edge_src1.png ../_images/laplacian1.png

Image Morphology#

Introduction#

Apply morphological operations preprocessing to the image to make its features easier to analyze.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: The result image

Function#

Algorithm

Function

Open Morph

First erosion, then dilation. Its function is to remove noise, eliminate small objects; separate objects at thin points; smooth the boundaries of larger objects without significantly changing their area.

Close Morph

First dilation, then erosion. Its function is to remove small holes (black areas); smooth object contours; bridge narrow breaks and grooves; fill in contour line gaps.

Dilate Morph

Dilation merges all background pixels that touch the object into the object itself, expanding the boundaries outward. Dilation makes objects “fatter” and can be used to fill in scratches or holes in objects.

Erode Morph

Erosion eliminates boundaries, causing the object to shrink inward. Erosion makes objects “thinner” and can be used to remove small interfering information in the image.

Bottom Hat Morph

The difference between the original image and the result of the closing operation. Black hat is used to detect defects and blemishes.

Top Hat Morph

The difference between the original image and the result of the opening operation. Top hat is used for background extraction. It can separate bright patches from their surroundings. When an image has a large background and small objects are relatively regular, top hat operations can be used for background extraction.

Grad Morph

The morphological gradient is the difference between the dilation and erosion of an image. It highlights the periphery of bright areas and provides a new approach for contour detection.

Parameters#
Morphology Method
  • Meaning: Select the morphological operation method

  • Range: Open Morph, Close Morph, Dilate Morph, Erode Morph, Bottom Hat Morph, Top Hat Morph, Grad Morph

  • Morph Op Param - Morph Kernel Size:
    • Meaning:

    • Range: 3*3, 5*5, 7*7, 9*9, 11*11, 13*13, 15*15, 17*17, 19*19, 21*21

Examples#

Algorithm

Example: Input Image

Example: Output Image

Open Morph

../_images/Morph_src1.png ../_images/Morph_open_dst1.png

Close Morph

../_images/Morph_src1.png ../_images/Morph_close_dst1.png

Dilate Morph

../_images/Morph_src1.png ../_images/Morph_dilate_dst1.png

Erode Morph

../_images/Morph_src1.png ../_images/Morph_erode_dst1.png

Bottom Hat Morph

../_images/Morph_src1.png ../_images/bottomHat1.png

Top Hat Morph

../_images/Morph_src1.png ../_images/topHat1.png

Grad Morph

../_images/Morph_src1.png ../_images/Morph_grad1.png

Image Transform#

Introduction#

Perform geometric transformations on an image.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: The result image

Function#

Algorithm

Function

Flip

Performs a mirror operation on the image.

Rotate

Rotates the image by a specified angle.

Translate

Translates the image by a specified number of pixels horizontally and/or vertically. Rightward is the positive direction for horizontal translation, and downward is the positive direction for vertical translation.

Parameters#
Image Transform Method
  • Meaning: Select the image transformation method

  • Range: Flip, Rotate, Translate

  • Flip - Flip Method:
    • Meaning: Select the mirror method

    • Range: Flip along both x and y axes, Flip along x-axis, Flip along y-axis

  • Rotate - Rotate Method:
    • Meaning: Select the rotation method

    • Range: Rotate the image at its original size, Retain original content and expand canvas

  • Rotate - Rotate Angle:
    • Meaning: The angle of rotation

    • Range: [0, 180]

  • Translate - Horizontal Translate:
    • Meaning: The number of pixels to translate horizontally

    • Range: [0, MAX]

  • Translate - Vertical Translate:
    • Meaning: The number of pixels to translate vertically

    • Range: [0, MAX]

Examples#

Algorithm

Example: Input Image

Example: Output Image

Flip

../_images/image_gray1.png ../_images/mirror_dst1.png

Rotate

../_images/image_gray1.png ../_images/rotated_dst1.png

Translate

../_images/image_gray1.png ../_images/trans_dst1.png

Threshold Seg#

Introduction#

Perform threshold filtering and segmentation to binarize the image based on pixel intensity.

Input#
Input Image
  • Type: ImageGray

  • Meaning: The image to be processed

Output#
Output Image
  • Type: ImageGray

  • Meaning: The result image

Function#

Algorithm

Function

Global Auto Thresh

Automatically binarizes the image into black and white.

Global Manual Thresh

Manually binarizes the image into black and white.

Local Adapt Thresh

Adaptive thresholding does not require a fixed threshold. Instead, it can set thresholds adaptively based on local image features, performing binarization accordingly.

Gray Distance

Calculates the absolute difference between each pixel and a grayscale threshold.

Two Thresh

Sets pixel intensity to 255 if it is between the minimum and maximum thresholds, otherwise sets it to 0.

Parameters#
Threshold Seg Method
  • Meaning: Select the threshold segmentation method

  • Range: Global automatic binarization, global manual binarization trans_dst - Range: Greater than the threshold, set to 255, otherwise 0; Greater than the threshold, set to 0, otherwise 255; Greater than the threshold, set to the threshold, otherwise retain the original pixel intensity; Greater than the threshold, retain the original pixel intensity, otherwise 0; Greater than the threshold, set to 0, otherwise retain the original pixel intensity

  • Global Manual Thresh - Threshold:
    • Meaning: The threshold for global manual binarization

    • Range: [0, 255]

  • Local Adapt Thresh - Adapt Max Val:
    • Meaning:

    • Range: [0, 255]

  • Local Adapt Thresh - Adapt Method:
    • Meaning: Select the adaptive method

    • Range: Adaptive mean threshold, adaptive Gaussian threshold

  • Local Adapt Thresh - Thresh Type:
    • Meaning: Select the threshold handling method

    • Range: When the pixel value is greater than the threshold, set to 255, otherwise 0; When the pixel value is greater than the threshold, set to 0, otherwise 255

  • Local Adapt Thresh - Kernel Size:
    • Meaning:

    • Range: 3*3, 5*5, 7*7, 9*9, 11*11

  • Local Adapt Thresh - Auto Adapt Var:
    • Meaning: Offset adjustment value

    • Range: [-100, 100]

  • Gray Distance - Method
    • Meaning: Select the method to calculate grayscale distance

    • Range: Automatic threshold, manual threshold

  • Gray Distance - Threshold
    • Meaning: This parameter is valid when manual threshold is selected

    • Range: [0, 255]

  • Two Thresh - Min Val
    • Meaning: The lower limit of the grayscale intensity range to retain

    • Range: [0, 255]

  • Two Thresh - Max Val
    • Meaning: The upper limit of the grayscale intensity range to retain

    • Range: [0, 255]

Examples#

Algorithm

Example: Input Image

Example: Output Image

Global Auto Thresh

../_images/binary_src1.png ../_images/binary_auto1.png

Global Manual Thresh

../_images/binary_src1.png ../_images/binary_manual1.png

Local Adapt Thresh

../_images/binary_src1.png ../_images/binary_adapt1.png

Gray Distance

../_images/binary_src1.png ../_images/binary_calgray1.png

Two Thresh

../_images/binary_src1.png ../_images/twothreshold1.png

Calibration#

CalibTrans2D#

Introduction#

The 2D hand-eye calibration transformation operator is mainly used for robot positioning and grasping applications. Its function is to convert image pixel coordinates into robot coordinates, i.e., to convert pixel units into mm units.

Input#
Input Pose
  • Type: Pose2D Pose2DList

  • Description: Pose in pixel coordinates

Input File Path
  • Type: std::string

  • Description: Path to the 2D hand-eye calibration file (*.dmcalib)

Output#
Output Pose
  • Type: Pose2D Pose2DList

  • Description: Resulting pose in robot coordinates

Parameters#
File Path
  • Description: Path to the 2D hand-eye calibration file (*.dmcalib)

  • Range:

File Input Settings
  • Description: Number of search lines within the ROI region

  • Range: From parameter settings, from input variable settings

Alg Distortion Correction#

Distortion correction is applied to the image#

Introduction#

Distortion correction of the camera image for subsequent processing

Input#
Input Image
  • Type: ImageGray ImageColor

  • Description: Input image type

Input File Path
  • Type: std::string

  • Description: Path to the 2D hand-eye calibration file (*.dmcalib)

Output#
Output Image
  • Type: ImageGray ImageColor

  • Description: Distortion corrected image

Parameters#
File Path
  • Description: Path to the 2D hand-eye calibration file (*.dmcalib)

  • Range:

Location#

Shape Match#

Introduction#

Shape matching is primarily used for target positioning in industrial settings. You need to first create a template using the 2D Template Creation Tool and then configure the template file in the solver before performing matching calculations.

Inputs#
Input Detect Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be detected

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Outputs#
Output Pose
  • Type: Pose2DList

  • Meaning: Recognized target pose, including x, y, and theta values

Output Score
  • Type: DoubleList

  • Meaning: Recognition result score [0, 1], in the same order as the output pose

Debug2D
  • Type: Debuge2D

  • Meaning: Result image

Parameters#

The parameters of this operator can be divided into Basic Parameters and Expert Parameters.

Easy Parameters#
Template Path
  • Meaning: Select the dmtemp template path for matching

ObjNumber
  • Meaning: Maximum number of recognized targets to output

  • Range: [1, 99]

Corret Rate
  • Meaning: Accuracy of target recognition

  • Range: [1, 99]

Speed Rate
  • Meaning: Speed of target recognition

  • Range: [1, 99]

Expert Parameters#
Template Path
  • Meaning: Select the dmtemp template path for matching

Min Score
  • Meaning: Minimum score for the output target

  • Range: [0.1, 1]

Note

Increasing the score will make the matching result more consistent with the trained template, but may result in missing outputs.

Start Angle
  • Meaning: Starting angle relative to the template angle

  • Range: [-180, 180]

Stop Angle
  • Meaning: Ending angle relative to the template angle

  • Range: [-180, 180]

Max Overlap
  • Meaning: When there are multiple targets in the searched image, targets overlap with each other. The higher the overlap ratio, the larger the allowable overlapping area.

  • Range: [0.01, 0.99]

Note

Increasing the overlap ratio will affect the search speed and may produce erroneous search results.

Num Levels
  • Meaning: Search acceleration strategy method; -1 means automatic. The smaller the number of pyramid levels, the slower the search speed and the higher the stability.

  • Range: -1, 0, 1, 2, 3, 4, 5, 6, 7

Greediness
  • Meaning: Heuristic search. The smaller the setting, the earlier it exits the judgment loop, and the higher the possibility of not finding the object.

  • Range: [0, 1]

Show Range
  • Meaning: Toggle display function

Sort Method
  • Meaning: Dimension to sort by

  • Range:

    • X: Sort by X coordinate first

    • Y: Sort by Y coordinate first

Is High HW Ratio Object
  • Meaning: When detecting slender parts incorrectly, you can enable this flag

Example#

Input Image

../_images/%E5%BD%A2%E7%8A%B6%E5%8C%B9%E9%85%8D%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%BD%A2%E7%8A%B6%E5%8C%B9%E9%85%8D%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Alg Detect2D Mark#

Introduction#

2DMark positioning is mainly used for target positioning in industrial scenarios, relying on recognizing 2D mark boards for positioning and grabbing operations.

Inputs#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be detected

Outputs#
Mark Pose
  • Type: Pose3DList

  • Meaning: Recognized poses of all 2DMarks

Detect Success
  • Type: Bool

  • Meaning: Whether the image contains detectable 2DMarks

Output Debug2D
  • Type: Debuge2D

  • Meaning: Result image, showing the recognized 2DMark poses and their corner points

Parameters#
Mark Type
  • Meaning: Default is DM-Mark2D-50A

Intrinsic Path
  • Meaning: Intrinsic parameter file of the camera, obtained through intrinsic parameter calibration

Example#

Input Image

../_images/mark11.png

Output Image

../_images/mark21.png

Image Processing#

Copy Image#

Overview#

Image Copy: Copies an image to a new variable.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: Resultant image

Create Mask Image#

Overview#

Draws information from graphical variables on the image and displays the drawing results.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Input Region
  • Type: Region

  • Meaning: Mask region

Output#
Output Image
  • Type: ImageColor ImageGray

  • Meaning: Resultant image

Parameters#
Drawing Method
  • Meaning: Drawing mode. “Original Image” draws directly from the original image pixels of the region, “Specified Color Fill” means the region is filled with the specified color’s pixel values

  • Range: Original Image, Specified Color Fill

Foreground Drawing
  • Meaning: Only effective for the foreground region in the image

  • Range: Red, Green, Blue, Gray

Background Drawing
  • Meaning: Only effective for the background region in the image

  • Range: Red, Green, Blue, Gray

Example#

Algorithm

Example: Input Image

Example: Output Image

Original Image Drawing

../_images/regionDraw_src1.png ../_images/regionDraw_dst2.png

Specified Color Drawing

../_images/regionDraw_src1.png ../_images/regionDraw_dst11.png

Get Image Info#

Overview#

Gets information about an image, including its width, height, and number of channels.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be inspected

Output#
Width
  • Type: Int

  • Meaning: Width of the image

Height
  • Type: Int

  • Meaning: Height of the image

Channel
  • Type: Int

  • Meaning: Number of channels in the image

Image Channel Decompose#

Overview#

Separates a color image (three-channel image) into its RGB or HSV channels, outputting three separated (grayscale) images.

Input#
Input Image
  • Type: ImageColor

  • Meaning: Image to be processed

Output#
Output Image 1
  • Type: ImageGray

  • Meaning: R channel/H channel image variable

Output Image 2
  • Type: ImageGray

  • Meaning: G channel/S channel image variable

Output Image 3
  • Type: ImageGray

  • Meaning: B channel/V channel image variable

Parameters#
Transform Method
  • Meaning: Transform Method

  • Range: BGR, HSV

Example#

Input Image

../_images/color1.png

Output Image - BGR

../_images/color_b1.png ../_images/color_g1.png ../_images/color_r1.png

Output Image - HSV

../_images/color_h1.png ../_images/color_s1.png ../_images/color_v1.png

Image Channel Compose#

Overview#

Merges three separated (grayscale) image channels from an RGB or HSV image back into a color image (three-channel image).

Input#
Input Image 1
  • Type: ImageGray

  • Meaning: Processed R channel/H channel image variable

Input Image 2
  • Type: ImageGray

  • Meaning: Processed G channel/S channel image variable

Input Image 3
  • Type: ImageGray

  • Meaning: Processed B channel/V channel image variable

Output#
Output Image
  • Type: ImageColor

  • Meaning: Resultant image

Parameters#
Transform Method
  • Meaning: Transform Method

  • Range: BGR, HSV

Example#

Input Image - BGR

../_images/color_b1.png ../_images/color_g1.png ../_images/color_r1.png

Input Image - HSV

../_images/color_h1.png ../_images/color_s1.png ../_images/color_v1.png

Output Image

../_images/color1.png

Region Logic Processing#

Overview#

Performs logical operations on 2 regions, including AND, OR, XOR.

Input#
Input Region 1
  • Type: Region

  • Meaning: Region to be processed 1

Input Region 2
  • Type: Region

  • Meaning: Region to be processed 2

Output#
Output Region
  • Type: Region

  • Meaning: Resultant Region

Parameters#
Logic Operation Method
  • Meaning: Logical operation mode. AND outputs the overlapping region, OR outputs all regions, XOR outputs the differing regions

  • Range: AND, OR, XOR

Example#

Input Region 1

../_images/region11.png

Input Region 2

../_images/region21.png

Output Region - AND

../_images/region_dst_and1.png

Output Region - OR

../_images/region_dst_or1.png

Output Region - XOR

../_images/region_dst_xor1.png

ROI#

Crop Image#

Introduction#

Image cropping can be used to crop an image to an appropriate area size.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Description: The image to be processed

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Output#
Output Image
  • Type: ImageColor

  • Description: Resultant image

Example#

Input Image

../_images/image_crop_src1.png

Output Image

../_images/image_crop_dst1.png

ROI2Region#

Introduction#

The ROI to Region operator can create mask ROI areas for rectangular and rotated rectangular regions. The generated mask ROI variables can be used by shape matching operators. The mask ROI area represents the area within which the image will not be searched.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Description: The image to be processed

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Output#
Output Region
  • Type: Region

  • Description: Resultant region

Example#

Input ROI

../_images/roi2region1.png

Output Region

../_images/roi2region_dst1.png

ROI Create#

Introduction#

The ROI generation operator is used to create image ROI areas. This operator can create rectangular and rotated rectangular ROI areas. The generated ROI variables can be used by preprocessing, positioning, detection, and measurement modules’ operators. ROI areas allow operators to search and process within user-designed regions, effectively improving algorithm accuracy and efficiency.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Description: The image to be processed

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Example#

Input Image

ROI Correct#

Introduction#

In actual field applications, the position of the workpiece to be inspected in the image may shift, so the ROI needs to follow these changes. Otherwise, it will not be detected. The ROI correction operator can solve this problem by creating a positioning reference so that the ROI moves along with the reference. ROI correction is generally an operator combination application, usually combined with the operators such as ROI generation, shape matching, and ROI correction. For example, if the ROI is not corrected, direct caliper measurement will cause the algorithm to fail. At this point, ROI correction can solve the problem.

Input#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

  • Description: The ROI to be corrected

Input Pose
  • Type: Pose2D

  • Description: The pose of the ROI to be corrected

Output#
Output Image
  • Type: ROI2DRect ROI2DRotatedRect

  • Description: Correction result

Parameters#
Pixel X
  • Description: The amount of correction for coordinate X

  • Range: [0, 2147483647]

Pixel Y
  • Description: The amount of correction for coordinate Y

  • Range: [0, 2147483647]

Pixel Angle
  • Description: The amount of correction for the angle

  • Range: [0, 360]

Example#

Scenario

Example: Input Image

Example: Output Image

Scenario 1

../_images/ROIcorrect_src3.png ../_images/ROIcorrect_dst3.png

Scenario 2

../_images/ROIcorrect_src11.png ../_images/ROIcorrect_dst11.png

Scenario 3

../_images/ROIcorrect_src21.png ../_images/ROIcorrect_dst21.png

AlgRegion Transform#

Introduction#

The Region identified in the cropped image can be restored to the original image coordinate system.

Input#
Input Region
  • Type: Region

  • Description: The Region to be transformed

Input Crop Rect
  • Type: ROI2DRect ROI2DRotatedRect Rect2D RotatedRect2D

  • Description: The cropped region on the original image

Output#
Output Region
  • Type: Region

  • Description: The area on the cropped image converted to the area on the original image

Example#

Input Region

../_images/Crop_ROI.png

Input Crop Rect

../_images/CropROI.png

Output Region

../_images/outRegion.png

Detection#

Color Filter#

Introduction#

Color detection identifies areas in a color image that match user-defined colors based on the provided HSV color space range.

Input#
Input Image
  • Type: ImageColor

  • Meaning: The image to be processed

Output#
Region
  • Type: Region

  • Meaning: Region where the color is extracted

Mask
  • Type: ImageGray

  • Meaning: Binary mask image of the extracted result

Mask Result
  • Type: Debuge2D

  • Meaning: Result image of the extraction process

Parameters#

Color Picker HSV

Example#

Input Image

../_images/color_src1.png

Output Image

../_images/color_dst1.png

Blob Detection#

Introduction#

Blob analysis refers to the detection of a connected area in an image composed of similar colors, textures, and other features. Blob analysis involves binarizing the image to segment the foreground from the background and then detecting connected regions to identify blobs. Blob analysis provides information on the number, location, shape, and orientation of spots in an image for machine vision applications. It can be used for specific target positioning, presence detection, defect detection, quantity statistics, etc. It is particularly suitable for binarized images and high-contrast images. In the pharmaceutical and food packaging industries, blob analysis can detect the position and quality of objects.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Output#
Object2D
  • Type: Region

  • Meaning: Identified target region

Result Pose
  • Type: Pose2DList

  • Meaning: Pose of the identified result

Result Area
  • Type: DoubleList

  • Meaning: Size of the area

Mask Image
  • Type: Debuge2D

  • Meaning: Result image mask

Parameters#
Max Numbers
  • Meaning: The maximum number of targets identified

  • Range: [1, 2147483647]

Blob Color
  • Meaning: Color type

  • Range: White or Black, White, Black

Sort Type
  • Meaning: Type of sorting

  • Range: Area, Angle, Long Edge, Short Edge

Sorting
  • Meaning: Order of sorting

  • Range: Ascending, Descending

Area Filtering Enable
  • Meaning: Toggle for area filtering

Area Range
  • Meaning: Range for area filtering

  • Range: [1, 2147483647]

Angle Filter Enabled
  • Meaning: Toggle for long edge filtering

Angle Range
  • Meaning: Range for long edge filtering

  • Range: [1, 2147483647]

Short Len Filter Enabled
  • Meaning: Toggle for short edge filtering

Short Range
  • Meaning: Range for short edge filtering

  • Range: [1, 2147483647]

Example#

Input Image

../_images/blob_src1.png

Output Image

../_images/blob_dst1.png

Exit Detection#

Introduction#

Presence detection is an operator that determines the presence or absence of something based on the number of black or white pixels or the contrast in an image.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Output#
PointNum
  • Type: Double

  • Meaning: Number of black/white dots

Result
  • Type: Bool

  • Meaning: Presence result

Output Image
  • Type: Debug2D

  • Meaning: Result image

Parameters#
Detect Method
  • Meaning: Method of presence detection

  • Range: Black Dot, White Dot, Contrast

Filter Range
  • Meaning: Method of filtering presence

  • Range: [0, 2147483647]

Example#

Input Image

../_images/exit_src1.png

Output Image

../_images/exit_dst1.png

Gray Analysis#

Introduction#

Gray analysis is used to statistically analyze the mean gray value and the standard deviation of gray values in an image.

Input#
Input Image
  • Type: ImageGray

  • Meaning: The image to be processed

Output#
Mean Gray
  • Type: Double

  • Meaning: Mean of the gray image result

Std Gray
  • Type: Double

  • Meaning: Standard deviation of the gray image result

Gray Histogram List
  • Type: DoubleList

  • Meaning: Gray histogram list

Measure#

Caliper#

Introduction#

A caliper is a tool that finds two parallel lines within a specified area on a grayscale image and calculates the distance between these two lines. The caliper tool is commonly used to detect the width of an object.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be inspected

ROI#
Input ROI
  • Type: ROI2DRotatedRect

Output#
First Edge Points
  • Type: Vector2DList

  • Meaning: The first set of detected edge points

Second Edge Points
  • Type: Vector2DList

  • Meaning: The second set of detected edge points

Intra Distance
  • Type: DoubleList

  • Meaning: Distance between the same pair of edges

Inter Distance
  • Type: DoubleList

  • Meaning: Distance between pairs of edges

Output Image
  • Type: Debug2D

  • Meaning: Result image

Parameters#
Sigma
  • Meaning: Gaussian smoothing standard deviation of the image to be measured

  • Range: [0.1, 50.0]

Min Edge Amp
  • Meaning: First derivative (gradient) value used to filter points on the edge curve

  • Range: [0, 99]

Transition
  • Meaning: The type of grayscale transition, determines how to group edges into edge pairs

  • Range: All edges, strongest edge, positive edge, strongest positive edge, negative edge, strongest negative edge

Tip

Introduction to several types of edge pair polarities

  • All edges

../_images/Caliper1.png
  • Strongest edge

../_images/Caliper2.png
  • Positive edge

../_images/Caliper3.png
  • Strongest positive edge

../_images/Caliper4.png
  • Negative edge

../_images/Caliper5.png
  • Strongest negative edge

../_images/Caliper6.png
Selection
  • Meaning: Used for filtering edge pairs by head and tail

  • Range: All edge pairs, first edge pair, last edge pair

Examples#

Input Image

../_images/%E5%8D%A1%E5%B0%BA%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%8D%A1%E5%B0%BA%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Recognition#

Read Code#

Introduction#

The code reading operator is used for identifying various types of barcodes, QR codes, DM codes, and ArUco codes.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be detected

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Output#
Result Pose
  • Type: Pose2DList

  • Meaning: The poses of the identified targets

Result String
  • Type: StringList

  • Meaning: The result of the code reading

2D Code Types
  • Type: StringList

  • Meaning: The types of the recognized 2D codes

Output Image
  • Type: Debuge2D

  • Meaning: The result image

Parameters#
Angle Correction Enable
  • Meaning: Switch for angle correction

  • Range: [0, 300]

Polarity
  • Range: Black on white, White on black

Threshold
  • Meaning: Grayscale intensity value filtering

  • Range: [0, 255]

Kernel Size
  • Meaning: Image filter kernel size

  • Range: 3*3, 5*5, 7*7, 9*9, 11*11, 13*13, 15*15, 17*17, 19*19, 21*21

Code Types
  • Range: Barcode, QR code

Barcode Types
  • Range: All barcode, EAN_UPC, CODEBAR, I25, CODE39, DATABAR, CODE93, DATABAR_EXP, CODE128

2D Code Types
  • Range: QR, DM, ArUco

Example#

Input Image

../_images/%E8%AF%BB%E7%A0%81%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E8%AF%BB%E7%A0%81%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Performance OCR#

Introduction#

The OCR operator is used for recognizing characters on objects and labels, mainly identifying English characters and numbers.

Input#
Input Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be detected

ROI#
Input ROI
  • Type: ROI2DRect ROI2DRotatedRect

Output#
Output String
  • Type: StringList

  • Meaning: The list of recognized strings

Output Image
  • Type: Debuge2D

  • Meaning: The result image

Parameters#
Case
  • Range: Auto, Uppercase, Lowercase

Language
  • Range: English, Chinese, English + Chinese

Mode
  • Meaning: Segmentation mode

  • Range: Auto page segmentation, Single line text, Word, Single character

Remove Spaces
  • Meaning: Whether to remove spaces

Special Case
  • Range: None, Recognize number 0 as letter O, Recognize letter O as number 0

Example#

Input Image

../_images/OCR%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/OCR%E6%95%88%E6%9E%9C%E5%9B%BE1.png

3D Vision Operators#

IO#

Read Cloud#

Introduction#

Point cloud reading is used to read point clouds from a local path.

Input#
Input Path
  • Type: String

  • Meaning: File path

Output#
Output Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: Output point cloud to the global variable list

Configuration Parameters#
File Input Type
  • Meaning: Source of the file path

  • Range:

    • From parameter settings: Set the file path through the configuration parameter File Path

    • From input variables: Set the file path through the input variable Input Path

File Path
  • Meaning: Select the path for point cloud reading

Point Type
  • Range: Output XYZ point cloud, Output XYZNormal point cloud

Tip

The type of point cloud variable changes according to the configuration parameters.

Save Cloud#

Introduction#

Point cloud saving is used to save the point clouds processed by the software to the local path.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: Input one of the point clouds from the global variable list

Configuration Parameters#
File Save Type
  • Meaning: Source of the file path

  • Range:

    • From parameter settings: Set the file path through the configuration parameter File Path

    • From input variables: Set the file path through the input variable Input Path

Save Path
  • Meaning: Select the path to save the point cloud

Save Type
  • Range: Binary Text

Suffix
  • Range: None, Timestamp, Counter

ROI#

CloudClip#

Introduction#

Point cloud cropping can be used to crop point clouds to an appropriate area size.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: Point cloud to be processed

Output#
Debug3D
  • Meaning: The resulting point cloud image

Parameters#
Box Input Type
  • Meaning: Choose the method for bounding box input

  • Scope: From parameter settings, from input variables

Pose Input Type
  • Meaning: Choose the method for pose input

  • Scope: From parameter settings, from input variables

Tip

Bounding box input and pose input parameters are modified according to configuration parameters.

  • Length:
    • Meaning: The length of the bounding box area

    • Range: [0, 999999]

  • Width:
    • Meaning: The width of the bounding box area

    • Range: [0, 999999]

  • Height:
    • Meaning: The height of the bounding box area

    • Range: [0, 999999]

  • Translation X:
    • Meaning:

    • Range: [-999999, 999999]

  • Translation Y:
    • Meaning:

    • Range: [-999999, 999999]

  • Translation Z:
    • Meaning:

    • Range: [-999999, 999999]

  • Rotation X:
    • Meaning:

    • Range: [-360, 360]

  • Rotation Y:
    • Meaning:

    • Range: [-360, 360]

  • Rotation Z:
    • Meaning:

    • Range: [-360, 360]

Examples#

Case

Example: Input Point Cloud

Example: Output Point Cloud

Case 1

../_images/pcl_crop_src2.png ../_images/pcl_crop_dst2.png

Case 2

../_images/pcl_crop_src11.png ../_images/pcl_crop_dst11.png

Sorting#

Cloud List Filter#

Introduction#

The point cloud array filter operator provides the function of filtering point clouds from the point cloud array. The filter condition can be set to the topmost point cloud, the number of points in the point cloud, or only get the point cloud with the most points. Among them, the “Topmost Point Cloud Filtering” method is used to obtain the topmost (multiple) workpiece point clouds when stacking identical workpieces (such as tubular workpieces).

Inputs#
Input Cloud
  • Type: PointCloud

  • Meaning: Point cloud to be processed

Outputs#
Output Cloud
  • Type: PointCloudList

  • Meaning: Resultant point cloud array

Parameters#
Filter Method
  • Meaning: Choose the way to filter the point cloud array

  • Range: Get the topmost point cloud, filter by the number of points, get the point cloud with the most points

  • Get Upper Cloud - Layer Distance
    • Meaning: Used for multi-layer point cloud filtering

    • Range: [0.2, 60]

  • Filter by cloud Size - Max Size
    • Meaning: The maximum value of point count, used for point count filtering

    • Range: [5, 999999]

  • Filter by cloud Size - Min Size
    • Meaning: The minimum value of point count, used for point count filtering

    • Range: [5, 999999]

Examples#

Method

Example: Input Point Cloud

Example: Output Point Cloud

Get Upper Cloud

../_images/pcl_filter_src1.png ../_images/pcl_filter_dst11.png

Filter by cloud size

../_images/pcl_filter_src1.png ../_images/pcl_filter_dst21.png

Get max size cloud

../_images/pcl_filter_src1.png ../_images/pcl_filter_dst31.png

Pose List Filter#

Introduction#

The pose array filter operator provides the function of filtering poses from the pose array. The filtering conditions can be set to “whether the input pose is within the ROI” and “whether the angle between the input pose and the reference pose is less than the threshold”.

Inputs#
Input Pose
  • Type: Pose3DList

  • Meaning: Pose array to be processed

Outputs#
Output Pose
  • Type: Pose3DList

  • Meaning: Resultant pose array

Parameters#
Filter Method
  • Meaning: Choose the way to filter the pose array

  • Range: Bounding Box Range, Angle to Reference Pose

Pose Input type
  • Meaning: Choose the input method of the reference pose

  • Range: Input from Reference Pose Parameters, Input from Input Reference Pose

Angle Threshold
  • Meaning:

  • Range: [0.01, 360]

  • Length:
    • Meaning: Length of the bounding box area

    • Range: [0, 999999]

  • Width:
    • Meaning: Width of the bounding box area

    • Range: [0, 999999]

  • Height:
    • Meaning: Height of the bounding box area

    • Range: [0, 999999]

  • Translation X:
    • Meaning:

    • Range: [-999999, 999999]

  • Translation Y:
    • Meaning:

    • Range: [-999999, 999999]

  • Translation Z:
    • Meaning:

    • Range: [-999999, 999999]

  • Rotation X:
    • Meaning:

    • Range: [-360, 360]

  • Rotation Y:
    • Meaning:

    • Range: [-360, 360]

  • Rotation Z:
    • Meaning:

    • Range: [-360, 360]

Cloud List Sort#

Introduction#

The point cloud array sorting operator provides the function of sorting the point cloud array. The sorting conditions can be set to point cloud points, point cloud bounding box volume, or point cloud center coordinates.

Inputs#
Input Cloud
  • Type: PointCloudList

  • Meaning: Point cloud array to be processed

Input Pose
  • Type: Pose3D

  • Meaning: Point cloud array to be processed

Outputs#
Output Cloud
  • Type: PointCloudList

  • Meaning: Resultant point cloud array

Index List
  • Type: IntList

  • Meaning: Resultant point cloud array

Parameters#
Sorting Method
  • Meaning: Choose the way to sort the point cloud array

  • Range: Point Cloud Points, Bounding Box Size, Point Cloud Center Coordinates

Ascend Order
  • Meaning: Ascending flag, False for descending, True for ascending

  • Range: [True, False]

Pose Input Type
  • Meaning:

  • Range: Input from Reference Pose Parameters, Input from Input Reference Pose

  • Cloud Center - Translation X:
    • Meaning:

    • Range: [-999999, 999999]

  • Cloud Center - Translation Y:
    • Meaning:

    • Range: [-999999, 999999]

  • Cloud Center - Translation Z:
    • Meaning:

    • Range: [-999999, 999999]

  • Cloud Center - Rotation X:
    • Meaning:

    • Range: [-360, 360]

  • Cloud Center - Rotation Y:
    • Meaning:

    • Range: [-360, 360]

  • Cloud Center - Rotation Z:
    • Meaning:

    • Range: [-360, 360]

  • Cloud Center - Center Axis:
    • Meaning:

    • Range: Point Cloud Center X Coordinate, Point Cloud Center Y Coordinate, Point Cloud Center Z Coordinate

Pose List Sort#

Introduction#

The pose array sorting operator provides the function of sorting the pose array. The sorting conditions can be set to “distance or angle between the input pose and the reference pose” or “projection of the input pose on the reference axis”, these 2 types of sorting methods.

Inputs#
Input Pose
  • Type: Pose3DList

  • Meaning: Pose array to be processed

Input Re Pose
  • Type: Pose3D

  • Meaning: Point cloud array to be processed

Outputs#
Output Pose
  • Type: Pose3DList

  • Meaning: Resultant point cloud array

Index List
  • Type: IntList

  • Meaning: Resultant point cloud array

Parameters#
Sorting Method
  • Meaning: Choose the way to sort the pose array

  • Range: Euclidean Distance to Reference Pose, Angle to Reference Pose, Along X Axis, Along Y Axis, Along Z Axis

Ascend Order
  • Meaning: Ascending flag, False for descending, True for ascending

  • Range: [True, False]

Pose Input Type
  • Meaning:

  • Range: Input from Reference Pose Parameters, Input from Input Reference Pose

  • Translation X:
    • Meaning:

    • Range: [-999999, 999999]

  • Translation Y:
    • Meaning:

    • Range: [-999999, 999999]

  • Translation Z:
    • Meaning:

    • Range: [-999999, 999999]

  • Rotation X:
    • Meaning:

    • Range: [-360, 360]

  • Rotation Y:
    • Meaning:

    • Range: [-360, 360]

  • Rotation Z:
    • Meaning:

    • Range: [-360, 360]

Filter#

Cloud Outlier Remove#

Overview#

The outlier removal operator provides the function of removing outliers from the point cloud based on the distance between points. During the point cloud acquisition process, various external environmental and hardware factors often result in certain points being far from the target surface. These points are referred to as outliers.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Output#
Output Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud after filtering

Parameters#
Filter Method
  • Description: Select the method for outlier filtering

  • Options: Statistical Filtering, Radius Filtering

  • Statistics Filter - K Mean
    • Description: The number of neighboring points used for calculating the average distance and standard deviation between points, typically chosen between 5 and 10

    • Range: [2, 10000]

  • Statistics Filter - Thresh
    • Description: The threshold factor for outlier removal, which is a multiple of the distance standard deviation. Usually, a value between 1 and 2 can remove a large number of outliers

    • Range: [0.1, 1000]

  • Statistics Filter - Loop
    • Description: The number of iterations for outlier removal. After each iteration, the average distance and standard deviation between points will decrease, and removal is performed again based on the updated distance threshold

    • Range: [1, 10000]

  • Radius Filter - Filter Radius
    • Description:

    • Range: [0.1, 1000]

  • Radius Filter - Neighbor Number
    • Description:

    • Range: [1, 10000]

Examples#

Input Point Cloud

../_images/outlierRemove_src1.png

Output Point Cloud

../_images/outlierRemove_dst1.png

Cloud sample#

Overview#

Downsampling provides the functionality to reduce the number of points in a point cloud, effectively speeding up subsequent operator processing. Downsampling offers two methods: random sampling and voxel sampling.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Output#
Output Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud after filtering

Parameters#
Sampling Method
  • Description: Select the method for point cloud downsampling

  • Options: Voxel Sampling, Uniform Sampling

  • Voxel Sampling - LeafX
    • Description: The sampling interval in the X-axis direction, generally set between 1 and 10

    • Range: [0.1, 10000]

  • Voxel Sampling - LeafY
    • Description: The sampling interval in the Y-axis direction, generally set between 1 and 10

    • Range: [0.1, 1000]

  • Voxel Sampling - LeafZ
    • Description: The sampling interval in the Z-axis direction, generally set between 1 and 10

    • Range: [0.1, 10000]

  • Uniform Sampling - Uniform Sampling Value
    • Description:

    • Range: [0.01, 10000]

Examples#

Input Point Cloud

../_images/downSample_src1.png

Output Point Cloud

../_images/downSample_dst1.png

Segmentation#

CloudSegment#

Introduction#

Point cloud segmentation subdivides point cloud data into a series of point cloud blocks through a specific mechanism. Points within the same block have similar properties such as color, intensity, curvature, shape, etc. On one hand, this can reduce global processing to local processing within the region of interest; on the other, due to the similarity of point clouds within a block, it can simplify the point cloud storage structure and improve the efficiency of subsequent processing algorithms.

Input#
InputCloud
  • Type: PointCloud

  • Description: The point cloud to be processed

Output#
OutputCloud
  • Type: PointCloudList

  • Description: The resulting point cloud

Parameters#
SegmentationMethod
  • Description: Choose the method of point cloud segmentation

  • Options: DistanceSegmentation, ConvexSegmentation

  • DistanceSegmentation - DisMinSize
    • Description: The minimum number of points in a point cloud block after segmentation. If the number of points in a block is less than this value, it will be removed from the segmentation result. This can be used to filter out small objects or noise clumps. Set according to actual segmentation needs.

    • Range: [100, 999999]

  • DistanceSegmentation - DisMaxSize
    • Description: The maximum number of points in a point cloud block after segmentation. If the number of points in a block is greater than this value, it will be removed from the segmentation result. This can be used to filter out large objects or backgrounds. Set according to actual segmentation needs.

    • Range: [100, 999999]

  • DistanceSegmentation - DistanceThreshold
    • Description: The distance threshold between points in mm. Points with distances greater than this value will be considered to belong to different point cloud blocks. Set according to actual segmentation needs.

    • Range: [0.1, 100]

  • ConvexSegmentation - ConMinSize
    • Description: The minimum number of points in a point cloud block after segmentation. If the number of points in a block is less than this value, it will be removed from the segmentation result. This can be used to filter out small objects or noise clumps. Set according to actual segmentation needs.

    • Range: [100, 999999]

  • ConvexSegmentation - ConMaxSize
    • Description: The maximum number of points in a point cloud block after segmentation. If the number of points in a block is greater than this value, it will be removed from the segmentation result. This can be used to filter out large objects or backgrounds. Set according to actual segmentation needs.

    • Range: [100, 999999]

  • ConvexSegmentation - VoxelResolution
    • Description: Voxel grid resolution for the original point cloud. Represents the smallest unit scale in the algorithm, meaning points within the grid will be treated with the same processing.

    • Range: [0.1, 100]

  • ConvexSegmentation - SeedResolution
    • Description: The density of seed points in mm. Typically set to 2-5 times the voxel resolution. If a fine segmentation result is not required, set to a larger value.

    • Range: [0.1, 100]

  • ConvexSegmentation - SpatialImportance
    • Description: Used in conjunction with normal weight. If the point clouds of two targets are close in space and their adjacent sections are essentially on the same plane, increase the spatial distance weight.

    • Range: [0.1, 5]

  • ConvexSegmentation - NormalImportance
    • Description: Used in conjunction with spatial distance weight. If an object’s internal point cloud blocks are discontinuous due to occlusion or other factors, increase the normal vector weight threshold.

    • Range: [0.1, 100]

  • ConvexSegmentation - ConcavityToleranceThreshold
    • Description: Convexity tolerance angle value. Generally set to 3-10 degrees. If smaller convex changes need to be detected, set to a smaller value.

    • Range: [0.1, 30]

  • ConvexSegmentation - SmoothThreshold
    • Description: 0 represents no consideration of smoothness, 1 represents the strictest smoothness. Typically set to 0.5.

    • Range: [0.1, 1]

  • ConvexSegmentation - UseExtendedConvexity
    • Description: Used in special scenarios. Typically set to false.

    • Options: [False, True]

  • ConvexSegmentation - UseSanityCriterion
    • Description: Used in special scenarios. Typically set to false, not used.

    • Options: [False, True]

Examples#

Algorithm

Example: Input Point Cloud

Example: Output Point Cloud

Distance Segmentation

../_images/pcl_seg_src2.png ../_images/pcl_seg_dst2.png

Convex Segmentation

../_images/pcl_seg_src11.png ../_images/pcl_seg_dst11.png

PointCloudRegionSeg#

Introduction#

Segment the point cloud based on segmentation regions of 2D images.

Input#
PointCloudSource
  • Type: PointCloud

  • Description: The point cloud to be processed

PointCloudMap
  • Type: PointCloudRegLUT

  • Description: The point cloud map to be processed

InputRegion2D
  • Type: Region

  • Description: The region of the point cloud

Output#
OutputCloud
  • Type: PointCloud

  • Description: The resulting point cloud

Examples#

Input Point Cloud

../_images/pcl_regionseg_src1.png

Output Point Cloud

../_images/pcl_regionseg_dst1.png

Point Cloud Region Growth#

Introduction#

Segment the point cloud using normal information.

Input#
InputCloud
  • Type: PointCloudNormal

  • Description: The point cloud to be processed

Output#
OutputCloud
  • Type: PointCloudList

  • Description: The resulting point cloud

Parameters#
MinSize
  • Description: The minimum number of points in a point cloud block after segmentation. If the number of points in a block is less than this value, it will be removed from the segmentation result. This can be used to filter out small objects or noise clumps. Set according to actual segmentation needs.

  • Range: [100, 999999]

MaxSize
  • Description: The maximum number of points in a point cloud block after segmentation. If the number of points in a block is greater than this value, it will be removed from the segmentation result. This can be used to filter out large objects or backgrounds. Set according to actual segmentation needs.

  • Range: [100, 999999]

SearchNum
  • Description: The number of points searched in the vicinity of the initial point. More search points contribute to better segmentation results as the normal calculation will be more accurate.

  • Range: [1, 1000]

SmoothThresh
  • Description: When clustering two points, the angle between their normals is calculated first. If the angle is less than or equal to the smoothness threshold, then the two points belong to the same cluster; otherwise, they do not.

  • Range: [0.1, 80]

CurvatureThresh
  • Description: This represents the curvature of the surface where the two points are located. If the curvature is less than the threshold, the two points that belong to the same cluster; otherwise, they do not.

  • Range: [0.001, 40]

ResidualThresh
  • Description: This allows you to set a residual threshold for testing points. Points below this threshold can enter a cluster selection condition.

  • Range: [0.001, 40]

Examples#

Input Point Cloud

../_images/pcl_grow_in.png

Output Point Cloud

../_images/pcl_grow_out.png

Feature#

Feature#

Introduction#

The edge detection operator provides the function of detecting the edges of point clouds. This function can be used as a preprocessing step for operators such as circle fitting, matching, etc.

Input#
Input Cloud
  • Type: PointCloudNormal

  • Meaning: The point cloud to be processed

Output#
Output Cloud
  • Type: PointCloud

  • Meaning: Resultant point cloud

Parameters#
Angle Threshold
  • Meaning: The threshold for controlling the deviation of normal angles

  • Range: [1, 89]

Search K
  • Meaning: The search radius used to determine whether a point is an edge point

  • Range: [1, 200]

Example#

Input Image

../_images/%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Normal Estimation#

Introduction#

The normal estimation operator provides the function of calculating the normal vectors of point clouds. This operator can be added before operators that require point clouds with normal vectors as input.

Input#
Input Cloud
  • Type: PointCloud

  • Meaning: The point cloud to be processed

Output#
Output Cloud
  • Type: PointCloudNormal

  • Meaning: Resultant point cloud

Parameters#
Compute Method
  • Meaning: Select the method of normal calculation

  • Range: NormalCompute, TangentLineCompute

  • Normal Compute - Nor Search Method
    • Meaning: The method of searching for nearby points when calculating the normal vector of a point

    • Range: Use radius search, Use K neighborhood search

  • Normal Compute - Nor Use Radius Search
    • Meaning: Search radius

    • Range: [0.01, 500]

  • Normal Compute - Nor Use K-Mean Search
    • Meaning: Size of K value

    • Range: [3, 10000]

  • Normal Compute - Nor Use Resolution Search
    • Meaning: Whether to use the search radius as the resolution coefficient for calculating the normal vectors of the scene point cloud

  • Normal Compute - Use Redirection
    • Meaning: By setting the “viewpoint coordinates”, the direction is specified to point towards the “viewpoint coordinates”

    • Range: Viewpoint, Redirect

  • Normal Compute - View PointX
    • Meaning:

    • Range: [-500, 500]

  • Normal Compute - View PointY
    • Meaning:

    • Range: [-500, 500]

  • Normal Compute - View PointZ
    • Meaning:

    • Range: [-500, 500]

  • Tangent Line Compute - Tan Search Method
    • Meaning: The method of searching for nearby points when calculating the normal vector of a point

    • Range: Use radius search, Use K neighborhood search

  • Tangent Line Compute - Tan Radius Search
    • Meaning: Search radius

    • Range: [0.01, 500]

  • Tangent Line Compute - Tan K-Mean Search
    • Meaning: Size of K value

    • Range: [3, 10000]

  • Tangent Line Compute - Tan Use Resolution Search
    • Meaning: Whether to use the search radius as the resolution coefficient for calculating the normal vectors of the scene point cloud

  • Tangent Line Compute - Tangent Line Percent
    • Meaning: Tangent percentage

    • Range: [0.01, 500]

  • Tangent Line Compute - Tangent Line Thresh
    • Meaning: Tangent threshold

    • Range: [0, 1000]

Example#

Algorithm

Example: Input Image

Example: Output Image

Calculate Normal

../_images/%E6%B3%95%E7%BA%BF%E4%BC%B0%E8%AE%A111.png ../_images/%E6%B3%95%E7%BA%BF%E4%BC%B0%E8%AE%A1%E6%B3%95%E7%BA%BF%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Calculate Tangent Line

../_images/%E6%B3%95%E7%BA%BF%E4%BC%B0%E8%AE%A121.png ../_images/%E6%B3%95%E7%BA%BF%E4%BC%B0%E8%AE%A1%E5%88%87%E7%BA%BF%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Transform#

Cloud Merge#

Introduction#

Merge two point clouds.

Input#
Cloud_one
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Cloud_two
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Output#
Output Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Resulting point cloud

Example#

Input Image

../_images/%E7%82%B9%E4%BA%91%E5%90%88%E5%B9%B611.png ../_images/%E7%82%B9%E4%BA%91%E5%90%88%E5%B9%B621.png

Output Image

../_images/%E7%82%B9%E4%BA%91%E5%90%88%E5%B9%B6%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Point Mirror#

Introduction#

Point cloud symmetry transformation.

Input#
Input Cloud
  • Type: PointCloud

  • Description: Point cloud to be processed

Input Plane Pose
  • Type: Pose3D

  • Description: Input mirror plane

Output#
Output Cloud
  • Type: PointCloud

  • Description: Resulting point cloud

Debug3D
  • Type: Debug3D

  • Description: 3D result image

Parameters#
Pose Input Type
  • Description: Input method of the mirror plane

  • Range: Input from plane parameters, Input from input mirror plane

Mirror Plane
  • Description: Choose the symmetric plane

  • Range: XOY Plane, YOZ Plane, ZOX Plane

  • Plane Pose Param - Translation X
    • Description:

    • Range: [-999999, 999999]

  • Plane Pose Param - Translation Y
    • Description:

    • Range: [-999999, 999999]

  • Plane Pose Param - Translation Z
    • Description:

    • Range: [-999999, 999999]

  • Plane Pose Param - Rotation X
    • Description:

    • Range: [-360, 360]

  • Plane Pose Param - Rotation Y
    • Description:

    • Range: [-360, 360]

  • Plane Pose Param - Rotation Z
    • Description:

    • Range: [-360, 360]

Example#

Algorithm

Example: Input Image

Example: Output Image

XOY Plane

../_images/%E7%82%B9%E4%BA%91%E9%95%9C%E5%83%8F%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%82%B9%E4%BA%91%E9%95%9C%E5%83%8FXOY1.png

YOZ Plane

../_images/%E7%82%B9%E4%BA%91%E9%95%9C%E5%83%8F%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%82%B9%E4%BA%91%E9%95%9C%E5%83%8FYOZ1.png

ZOX Plane

../_images/%E7%82%B9%E4%BA%91%E9%95%9C%E5%83%8F%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%82%B9%E4%BA%91%E9%95%9C%E5%83%8FZOX1.png

Cloud Projection#

Introduction#

The point cloud projection operator provides the function of projecting the input point cloud into a specified plane to form a plane point cloud.

Input#
Input Cloud
  • Type: PointCloud

  • Description: Point cloud to be processed

Input Pose
  • Type: Pose3D

  • Description: Input projection plane

Output#
Output Cloud
  • Type: PointCloud

  • Description: Resulting point cloud

Debug3D
  • Type: Debug3D

  • Description: 3D result image

Parameters#
Pose Input Type
  • Description: Input method of the projection plane

  • Range: Input from plane parameters, Input from input projection plane

Projection Plane
  • Description: Choose the projection plane

  • Range: XOY Plane, YOZ Plane, ZOX Plane

  • Plane Pose Param - Translation X
    • Description:

    • Range: [-999999, 999999]

  • Plane Pose Param - Translation Y
    • Description:

    • Range: [-999999, 999999]

  • Plane Pose Param - Translation Z
    • Description:

    • Range: [-999999, 999999]

  • Plane Pose Param - Rotation X
    • Description:

    • Range: [-360, 360]

  • Plane Pose Param - Rotation Y
    • Description:

    • Range: [-360, 360]

  • Plane Pose Param - Rotation Z
    • Description:

    • Range: [-360, 360]

Example#

Algorithm

Example: Input Image

Example: Output Image

XOY Plane

../_images/%E7%82%B9%E4%BA%91%E6%8A%95%E5%BD%B1%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%82%B9%E4%BA%91%E6%8A%95%E5%BD%B1XOY1.png

YOZ Plane

../_images/%E7%82%B9%E4%BA%91%E6%8A%95%E5%BD%B1%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%82%B9%E4%BA%91%E6%8A%95%E5%BD%B1YOZ1.png

ZOX Plane

../_images/%E7%82%B9%E4%BA%91%E6%8A%95%E5%BD%B1%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%82%B9%E4%BA%91%E6%8A%95%E5%BD%B1ZOX1.png

Cloud Size#

Introduction#

Point cloud point count functionality.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Output#
Output Cloud Size
  • Type: Int

  • Description: The count of points in the point cloud

Cloud Trans#

Introduction#

The point cloud transformation operator provides the function of rotating and translating the point cloud.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Input Pose
  • Type: Pose3D

  • Description: Input pose

Output#
Output Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Resulting point cloud

Parameters#
Pose Input Type
  • Description: The input method of the transformation pose

  • Range: Set from parameters, Set from input variable

  • Trans Pose - Translation X
    • Description:

    • Range: [-999999, 999999]

  • Trans Pose - Translation Y
    • Description:

    • Range: [-999999, 999999]

  • Trans Pose - Translation Z
    • Description:

    • Range: [-999999, 999999]

  • Trans Pose - Rotation X
    • Description:

    • Range: [-360, 360]

  • Trans Pose - Rotation Y
    • Description:

    • Range: [-360, 360]

  • Trans Pose - Rotation Z
    • Description:

    • Range: [-360, 360]

Example#

Input Image

../_images/%E7%82%B9%E4%BA%91%E5%8F%98%E6%8D%A2%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E7%82%B9%E4%BA%91%E5%8F%98%E6%8D%A2%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Pose Adjust#

Introduction#

The pose adjustment operator provides the function of adjusting the pose.

Input#
Input Pose
  • Type: Pose3DList

  • Description: Input pose

Input Cloud
  • Type: PointCloud

  • Description: Input point cloud

Input Reference Pose
  • Type: Pose3D

  • Description: Input reference pose

Output#
Output Pose
  • Type: Pose3DList

  • Description: Output adjusted pose

Debug3D
  • Type: Debug3D

  • Description: 3D result image

Parameters#
Adjust Method
  • Description: Method of pose adjustment

  • Range: Adjust by inversion, Adjust by point cloud direction, Adjust by reference pose

  • Adjust by Inversion - Inverse Axis
    • Description: Directly invert the pose

    • Range: XY Axis, YZ Axis, ZX Axis

  • Adjust by Direction - Adjust Mode
    • Description:

    • Range: Adjust XYZ, Adjust Normal, Adjust XYZNormal

  • Adjust by Direction - AdjustAxis
    • Description:

    • Range: X Axis, Y Axis, Z Axis

  • Adjust by Direction - Length
    • Description:

    • Range: [5, 999999]

  • Adjust by Direction - Width
    • Description:

    • Range: [5, 999999]

  • Adjust by Direction - Height
    • Description:

    • Range: [5, 999999]

  • Adjust by Reference - Pose Input Type
    • Description:

    • Range: Input from pose parameters, Input from input pose

  • Adjust by Reference - Fix Axis
    • Description:

    • Range: Fix X Axis, Fix Y Axis, Fix Z Axis

  • Adjust by Reference - Translation X
    • Description:

    • Range: [-999999, 999999]

  • Adjust by Reference - Translation Y
    • Description:

    • Range: [-999999, 999999]

  • Adjust by Reference - Translation Z
    • Description:

    • Range: [-999999, 999999]

  • Adjust by Reference - Rotation X
    • Description:

    • Range: [-360, 360]

  • Adjust by Reference - Rotation Y
    • Description:

    • Range: [-360, 360]

  • Adjust by Reference - Rotation Z
    • Description:

    • Range: [-360, 360]

Pose Discrete#

Introduction#

The pose discretization operator provides the function of discretizing the pose.

Input#
Input Pose
  • Type: Pose3DList

  • Description: Input pose

Output#
Output Pose
  • Type: Pose3DList

  • Description: Output discretized pose

Debug3D
  • Type: Debug3D

  • Description: 3D result image

Parameters#
Discrete Method
  • Description: Method of pose discretization

  • Range: Translation Transformation, Rotation Transformation

  • Translation - Trans Plane
    • Description:

    • Range: XOY Plane, YOZ Plane, ZOX Plane

  • Translation - Trans Range
    • Description:

    • Range: [0, 999999]

  • Translation - Trans Step
    • Description:

    • Range: [0, 9999]

  • Rotation - Rotation Axis
    • Description:

    • Range: Rotate around X-axis, Rotate around Y-axis, Rotate around Z-axis

  • Rotation - Rotation Range
    • Description:

    • Range: [0, 360]

  • Rotation - Rotation Step
    • Description:

    • Range: [0, 180]

Pose Trans#

Introduction#

The pose transformation operator provides the function of manipulating poses.

Input#
Input Pose
  • Type: Pose3DList

  • Description: Input pose

Input Trans Pose
  • Type: Pose3D

  • Description: Input reference pose

Output#
Output Pose
  • Type: Pose3DList

  • Description: Output transformed pose

Parameters#
Pose Trans Method
  • Description: Method of pose transformation

  • Range: Pose Multiplication, Inverse Pose

Pose Input Type
  • Description:

  • Range: Set from parameters, Set from input variable

  • Multiply - Translation X
    • Description:

    • Range: [-999999, 999999]

  • Multiply - Translation Y
    • Description:

    • Range: [-999999, 999999]

  • Multiply- Translation Z
    • Description:

    • Range: [-999999, 999999]

  • Multiply - Rotation X
    • Description:

    • Range: [-360, 360]

  • Multiply - Rotation Y
    • Description:

    • Range: [-360, 360]

  • Multiply - Rotation Z
    • Description:

    • Range: [-360, 360]

Cloud Clear#

Introduction#

The point cloud clearing operator provides the function of clearing point cloud data.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Description: Point cloud to be processed

Detection#

Bounding Box#

Introduction#

The bounding box operator provides functionality to output the bounding box of a cloud.

Tip

Note that the edges of the bounding box are usually parallel to the coordinate axes.

Input#
Input Cloud
  • Type: PointCloud

  • Meaning: The point cloud to be processed

Output#
Cloud Pose
  • Type: Pose3D

  • Meaning: The pose of the point cloud

Cloud Size
  • Type: Vector3D

  • Meaning: The size of the point cloud

Debug3D
  • Type: Debug3D

  • Meaning: 3D result image

Parameters#
Compute Method
  • Meaning: The method to compute the bounding box

  • Range: PCA, MinVolume

  • MinVolume - Epsilon
    • Meaning:

    • Range: [1, 20]

  • MinVolume - PointSamples
    • Meaning:

    • Range: [10, 5000]

  • MinVolume - GridSize
    • Meaning:

    • Range: [5, 50]

  • MinVolume - DiamOptLoops
    • Meaning:

    • Range: [0, 50]

  • MinVolume - GridSearchOptLoops
    • Meaning:

    • Range: [3, 50]

Example#

Input Image

../_images/%E5%8C%85%E5%9B%B4%E7%9B%92%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%8C%85%E5%9B%B4%E7%9B%92%E6%95%88%E6%9E%9C%E5%9B%BE1.png

CircleFit#

Introduction#

The circle fitting operator provides functionality to fit circular point clouds. To avoid large areas of points (e.g., plane points where the hole is located) from affecting the result, edge detection can be added before the circle fitting operator to extract circular point clouds.

Tip

Note that this operator produces at most one fitting result. If no fitting result is found, the output variable “Has Result” returns false.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: The point cloud to be processed

Output#
Output Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: The resulting point cloud

Circle Pose
  • Type: Pose3D

  • Meaning: The pose of the circle

Circle Radius
  • Type: Double

  • Meaning: The radius of the circle

Error
  • Type: Double

  • Meaning: Error

Has Output
  • Type: Bool

  • Meaning: Whether there is a result

Output Cloud
  • Type: Debug3D

  • Meaning: 3D result image

Parameters#
Distance Threshold
  • Meaning: The distance threshold controls the distance between points and the fitted circle. A larger value will include more points from the input point cloud into the fitting result.

  • Range: [0.001, 99999]

Normal Distance Weight
  • Meaning: The weight between the distance and the angle between normal vectors

  • Range: [0.001, 1]

Min Radius
  • Meaning: The minimum reference radius of the sphere

  • Range: [1, 99999]

Max Radius
  • Meaning: The maximum reference radius of the sphere

  • Range: [1, 99999]

Max Iterations
  • Meaning: The maximum number of iterations allowed for solving

  • Range: [5, 99999]

Overlap
  • Meaning: The minimum overlap rate between the fitted result and the original point cloud, used to evaluate the fitting result. Note that if this value is too high, the operator may output no result.

  • Range: [0.000001, 1]

Output Circle
  • Meaning: Controls whether the output point cloud is the fitted point cloud

Example#

Input Image

../_images/%E5%9C%86%E6%8B%9F%E5%90%88%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%9C%86%E6%8B%9F%E5%90%88%E6%95%88%E6%9E%9C%E5%9B%BE1.png

CylinderFit#

Introduction#

The cylinder fitting operator provides functionality to fit cylindrical point clouds.

Tip

Note that this operator produces at most one fitting result. If no fitting result is found, the output variable “Has Result” returns false.

Input#
Input Cloud
  • Type: PointCloudNormal

  • Meaning: The point cloud to be processed

Output#
Output Cloud
  • Type: PointCloudNormal

  • Meaning: The resulting point cloud

Cylinder Pose
  • Type: Pose3D

  • Meaning: The pose of the cylinder

Cylinder Radius
  • Type: Double

  • Meaning: The radius of the cylinder

Cylinder Length
  • Type: Double

  • Meaning: The length of the cylinder

Error
  • Type: Double

  • Meaning: Error

Has Output
  • Type: Bool

  • Meaning: Whether there is a result

Output Cloud
  • Type: Debug3D

  • Meaning: 3D result image

Parameters#
Coarse Distance Threshold
  • Meaning: The distance threshold controls the distance between points and the fitted circle. A larger value will include more points from the input point cloud into the fitting result.

  • Range: [0.001, 99999]

Fine Distance Threshold
  • Meaning: The distance threshold controls the distance between points and the fitted circle. A larger value will include more points from the input point cloud into the fitting result.

  • Range: [0.001, 99999]

Min Radius
  • Meaning: The minimum reference radius of the sphere

  • Range: [1, 99999]

Max Radius
  • Meaning: The maximum reference radius of the sphere

  • Range: [1, 99999]

Fine Distance Threshold
  • Meaning: The weight between the distance and the angle between normal vectors

  • Range: [0.001, 1]

Max Iterations
  • Meaning: The maximum number of iterations allowed for solving

  • Range: [5, 99999]

Overlap
  • Meaning: The minimum overlap rate between the fitted result and the original point cloud, used to evaluate the fitting result. Note that if this value is too high, the operator may output no result.

  • Range: [0.000001, 1]

Output Cylinder
  • Meaning: Controls whether the output point cloud is the fitted point cloud

Example#

Input Image

../_images/%E5%9C%86%E6%9F%B1%E6%8B%9F%E5%90%88%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%9C%86%E6%9F%B1%E6%8B%9F%E5%90%88%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Plane Detection#

Introduction#

The plane detection operator provides functionality to estimate the bounding box of the top surface of a regular box, and based on this, estimate the center coordinates. It is mainly used in grasping tasks in simple scenes.

Input#
Input Cloud
  • Type: PointCloudList

  • Meaning: The point cloud to be processed

Tip

A point cloud segmentation operator is required beforehand.

Output#
Output Cloud List
  • Type: PointCloudList

  • Meaning: The resulting point cloud

Plane Pose List
  • Type: Pose3DList

  • Meaning: The pose of the plane

Plane Size List
  • Type: Vector2DList

  • Meaning: The size of the plane

Debug3D
  • Type: Debug3D

  • Meaning: 3D result image

Parameters#
Distance Threshold
  • Meaning: The distance threshold controls the distance between points and the fitted circle.

  • Range: [0.001, 99999]

Max Iterations
  • Meaning: The maximum number of iterations allowed for solving

  • Range: [5, 99999]

Output Plane
  • Meaning: Controls whether the output point cloud is the detected point cloud

Example#

Input Image

../_images/%E5%B9%B3%E9%9D%A2%E6%A3%80%E6%B5%8B%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%B9%B3%E9%9D%A2%E6%A3%80%E6%B5%8B%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Plane Fit#

Introduction#

The plane fitting operator provides functionality to fit planar point clouds.

Tip

Note that this operator produces at most one fitting result. If no fitting result is found, the output variable “Has Result” returns false.

Input#
Input Cloud
  • Type: PointCloudNormal

  • Meaning: The point cloud to be processed

Output#
Output Cloud
  • Type: PointCloudNormal

  • Meaning: The resulting point cloud

Plane Pose
  • Type: Pose3D

  • Meaning: The pose of the plane

Plane Size
  • Type: Vector2D

  • Meaning: The size of the plane

Max All Bias (All Points)
  • Type: Double

  • Meaning:

Min All Bias (All Points)
  • Type: Double

  • Meaning:

Has Output
  • Type: Bool

  • Meaning: Whether there is a result

Output Cloud
  • Type: Debug3D

  • Meaning: 3D result image

Parameters#
Fit Method
  • Meaning: The method to fit the plane

  • Range: GlobalFitting, PlaneFitting

Maximum Allowed Error
  • Meaning:

  • Range: [0.001, 2147483647]

Accept Percent
  • Meaning:

  • Range: [0.001, 100]

Distance Threshold
  • Meaning: The distance threshold controls the distance between points and the fitted circle. A larger value will include more points from the input point cloud into the fitting result.

  • Range: [0.001, 2147483647]

Normal Distance Weight
  • Meaning: The weight between the distance and the angle between normal vectors

  • Range: [0.001, 1]

Max Iterations
  • Meaning: The maximum number of iterations allowed for solving

  • Range: [5, 99999]

Planarity
  • Meaning: Used to evaluate the fitting result. Note that if this value is too high, the operator may output no result.

  • Range: [0.000001, 1]

Output Plane
  • Meaning: Controls whether the output point cloud is the fitted planar point cloud. If checked, the fitted planar point cloud is output; otherwise, the point cloud outside the fitted planar point cloud is output (can be used to filter out planes).

Example#

Input Image

../_images/%E5%B9%B3%E9%9D%A2%E6%8B%9F%E5%90%88%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E5%B9%B3%E9%9D%A2%E6%8B%9F%E5%90%88%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Sphere Fit#

Introduction#

The sphere fitting operator provides functionality to fit spherical point clouds.

Tip

Note that this operator produces at most one fitting result. If no fitting result is found, the output variable “Has Result” returns false.

Input#
Input Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: The point cloud to be processed

Output#
Output Point Cloud
  • Type: PointCloud PointCloudNormal

  • Meaning: The resulting point cloud

Sphere Radius
  • Type: Double

  • Meaning: The radius of the sphere

Sphere Center
  • Type: Vector3D

  • Meaning: The center of the sphere

Error
  • Type: Double

  • Meaning: Error

Has Output
  • Type: Bool

  • Meaning: Whether there is a result

Debug3D
  • Type: Debug3D

  • Meaning: 3D result image

Parameters#
Distance Threshold
  • Meaning: The distance threshold controls the distance between points and the fitted circle. A larger value will include more points from the input point cloud into the fitting result.

  • Range: [0.001, 99999]

Normal Distance Weight
  • Meaning: The weight between the distance and the angle between normal vectors

  • Range: [0.001, 1]

Max Radius
  • Meaning: The minimum reference radius of the sphere

  • Range: [1, 99999]

Min Radius
  • Meaning: The maximum reference radius of the sphere

  • Range: [1, 99999]

Max Iterations
  • Meaning: The maximum number of iterations allowed for solving

  • Range: [5, 99999]

Overlap
  • Meaning: The minimum overlap rate between the fitted result and the original point cloud, used to evaluate the fitting result. Note that if this value is too high, the operator may output no result.

  • Range: [0.000001, 1]

Output Sphere
  • Meaning: Controls whether the output point cloud is the fitted point cloud.

Example#

Input Image

../_images/%E7%90%83%E6%8B%9F%E5%90%88%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E7%90%83%E6%8B%9F%E5%90%88%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Calibration#

Calib Trans3D#

Introduction#

The 3D calibration transformation operator provides the function of transforming the pose in the camera coordinate system to the robot base coordinate system based on the hand-eye calibration result. The pose of the 3D point cloud is based on the camera coordinate system, which cannot be directly provided to the robot for task execution. It needs to be transformed to the robot base coordinate system through rigid body transformation.

Input#
Input Pose
  • Type: Pose3D Pose3DList

  • Meaning: List of poses to be processed

File Input Type
  • Type: String

  • Meaning: Configuration file path

Output#
Trans Pose
  • Type: Pose3D Pose3DList

  • Meaning: Result pose list

Parameters#
Input File Path
  • Meaning: Configuration file input method

  • Range: Set from parameters, Set from input variables

File Path
  • Meaning: Configuration file path

Read Calib File#

Introduction#

The calibration file reading operator provides the function of reading calibration files (hand-eye calibration files).

Input#
Input File Path
  • Type: String

  • Meaning: Configuration file path

Output#
Hand Eye Pose
  • Type: Pose3D

  • Meaning: Hand-eye transformation pose

Parameters#
File Input Type
  • Meaning: File input method

  • Range: Set from parameters, Set from input variables

File Path
  • Meaning: File path

Location#

Coarse Match#

Introduction#

The coarse matching operator mainly provides two functions: one is to create a template based on the target point cloud (where the template creation is also divided into normal templates and tangent templates, the same as the 3D template matching operator); the second is to recognize the target in the scene based on the template and preliminarily estimate its pose. It can be simply understood as a split version of the “3D template matching” operator (3D template matching = coarse matching + fine matching).

Input#
Input Cloud
  • Type: PointCloudNormal

  • Description: Point cloud to be processed

Output#
Coarse Pose
  • Type: Pose3DList

  • Description: Pose of the matching result

Debug3D
  • Type: Debug3D

  • Description: 3D result image

Parameters#
Model Path
  • Description: Path to the template file

Angle Step Num
  • Description:

  • Range: [15, 100]

Use Vote Ratio
  • Description: Ratio for filtering possible poses

  • Range: [1, 99]

Model Sample Value
  • Description: Downsampling parameter to control voxel size when downsampling model (template) point cloud

  • Range: [0.5, 20]

Scene Sample Value
  • Description: Downsampling parameter to control voxel size when downsampling scene point cloud

  • Range: [0.5, 20]

Scene Sample Rate
  • Description: The larger the value, the slower the matching speed

  • Range: [1, 100]

Max Match Num
  • Description: Control the number of matching results

  • Range: [1, 10]

Match Result Use
  • Description: Usage rate of intermediate result poses

  • Range: [1, 100]

Overlap Resolution
  • Description:

  • Range: [0.001, 10000]

Intersect Overlap
  • Description:

  • Range: [0.0001, 1]

Scene Model Overlap
  • Description:

  • Range: [0.0001, 1]

Vote Weight
  • Description:

  • Range: [0, 1]

OverlapWeight
  • Description:

  • Range: [0, 1]

Examples#

Input Image

../_images/%E7%B2%97%E5%8C%B9%E9%85%8D%E8%BE%93%E5%85%A5%E5%9B%BE1.png

Output Image

../_images/%E7%B2%97%E5%8C%B9%E9%85%8D%E6%95%88%E6%9E%9C%E5%9B%BE1.png

Fine Matching#

Introduction#

The fine matching operator mainly provides two functions: one is to create a template based on the target point cloud (where the template creation also includes normal templates and tangent templates, same as the 3D template matching operator); the second is to recognize the target in the scene based on the template and estimate its pose. It can be simply understood as a split version of the “3D template matching” operator (3D template matching = coarse matching + fine matching). It is usually used in conjunction with the coarse matching operator.

Input#
Input Cloud
  • Type: PointCloudNormal

  • Description: Point cloud to be processed

Coarse Pose
  • Type: Pose3DList

  • Description: Reference pose from matching

Output#
Fine Pose
  • Type: Pose3DList

  • Description: Pose of the matching result

Debug3D
  • Type: Debug3D

  • Description: 3D result image

Parameters#
Model Path
  • Description: Path to the template file

Fine Match Method
  • Description: Fine matching method

  • Range: Pyramid fine matching, classic fine matching

  • Pyramid Fine Match - Prya-BoudingBox Expand Size
    • Description:

    • Range: [-1, 200]

  • Pyramid Fine Match - Pyra-Sample Method
    • Description:

    • Range: Skip sampling, uniform sampling

  • Pyramid Fine Match - Pyra-Model Sample Rate
    • Description: Downsampling parameter to control voxel size when downsampling model (template) point cloud

    • Range: [1, 100]

  • Pyramid FineMatch - Pyra-Scene Sample Rate
    • Description: Downsampling parameter to control voxel size when downsampling scene point cloud

    • Range: [1, 100]

  • Pyramid Fine Match - Pyra-Model Sample Value
    • Description: Downsampling parameter to control voxel size when downsampling model (template) point cloud

    • Range: [0.5, 20]

  • Pyramid FineMatch - Pyra-Scene Sample Value
    • Description: Downsampling parameter to control voxel size when downsampling scene point cloud

    • Range: [0.5, 20]

  • Pyramid FineMatch - Use Outiler Pairs
    • Description:

  • Pyramid FineMatch - Iterative Tolerance Threshold
    • Description:

    • Range: [0.0001, 0.1]

  • Pyramid FineMatch - Pyra-Max Iterations
    • Description:

    • Range: [5, 10000]

  • Pyramid FineMatch - Pyra-Min Overlap
    • Description:

    • Range: [0.1, 0.99]

  • Original FineMatch - Compute Method
    • Description:

    • Range: Point-to-surface, point-to-point

  • Original FineMatch - Orig Bounding Box Expand Size
    • Description:

    • Range: [-1, 200]

  • Original FineMatch - Orig Sample Method
    • Description:

    • Range: Skip sampling, uniform sampling

  • Original FineMatch - Orig Model Sample Rate
    • Description: Downsampling parameter to control voxel size when downsampling model (template) point cloud

    • Range: [1, 100]

  • Original FineMatch - Orig Scene Sample Rate
    • Description: Downsampling parameter to control voxel size when downsampling scene point cloud

    • Range: [1, 100]

  • Original FineMatch - Orig Model Sample Value
    • Description: Downsampling parameter to control voxel size when downsampling model (template) point cloud

    • Range: [0.5, 20]

  • Original FineMatch - Orig Scene Sample Value
    • Description: Downsampling parameter to control voxel size when downsampling scene point cloud

    • Range: [0.5, 20]

  • Original FineMatch - Iterative Tolerance Threshold
    • Description:

    • Range: [0.0001, 0.1]

  • OriginalFineMatch - OrigMaxIterations
    • Description:

    • Range: [5, 10000]

  • Original FineMatch - Orig Min Overlap
    • Description:

    • Range: [0.1, 0.99]

Examples#

Algorithm

Example: Input Image

Example: Output Image

Pyramid Fine Matching

../_images/%E7%B2%BE%E5%8C%B9%E9%85%8D%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%B2%BE%E5%8C%B9%E9%85%8D%E9%87%91%E5%AD%97%E5%A1%941.png

Original Fine Matching

../_images/%E7%B2%BE%E5%8C%B9%E9%85%8D%E8%BE%93%E5%85%A5%E5%9B%BE1.png ../_images/%E7%B2%BE%E5%8C%B9%E9%85%8D%E7%BB%8F%E5%85%B81.png

Deep Learning#

CloudObjDetectionFast#

Deep Learning Target Detection - Fast can be used to load pre-trained model files and perform inference on input images to achieve target detection functionality.

Input Detect Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

Output Labels
  • Type: IntList

  • Meaning: A collection of category labels for the detected targets

Output Label Names
  • Type: StringList

  • Meaning: A collection of category labels name for the detected targets

Output Score
  • Type: DoubleList

  • Meaning: A collection of category scores for the detected targets

Output Bound Boxs
  • Type: Rect2DList

  • Meaning: A collection of bounding boxes for the detected targets

Output Masks
  • Type: RegionList

  • Meaning: A collection of region masks for the bounding boxes of the detected targets

Output Result Image
  • Type: Debug2D

  • Meaning: The result image of the target detection

Model Path
  • Meaning: The path to the model file

Threshold
  • Meaning: The score threshold for target detection

  • Range: [0.0, 1.0]

Numbers
  • Meaning: The maximum number of targets to be displayed in target detection

  • Range: [0, 100]

Input Image

../_images/detection_src1.png

Output Image

../_images/detection_dst1.png

CloudObjDetectionPerf#

Deep Learning Target Detection - Precision Detection can be used to load a trained model file and perform inference on an input image to achieve target detection functionality.

Input Detect Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Output Labels
  • Type: IntList

  • Meaning: Collection of category labels from target detection results

Output Label Names
  • Type: StringList

  • Meaning: Collection of category labels names from target detection results

Output Score
  • Type: DoubleList

  • Meaning: Collection of category scores from target detection results

Output Bound Boxs
  • Type: Rect2DList

  • Meaning: Collection of bounding boxes from target detection results

Output Masks
  • Type: RegionList

  • Meaning: Collection of bounding box area masks from target detection results

Output Result Image
  • Type: Debug2D

  • Meaning: Target detection result image

Model Path
  • Meaning: Path where the model file is located

Threshold
  • Meaning: Score threshold for target detection

  • Range: [0.0, 1.0]

Numbers
  • Meaning: Maximum number of targets to display in target detection

  • Range: [0, 100]

Input Image

../_images/detection_pr_src1.png

Output Image

../_images/detection_pr_dst1.png

CloudClassification#

Deep learning classification can be used to load trained model files and perform inference on input images to achieve classification.

Input Detect Image
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

Output Labels
  • Type: StringList

  • Meaning: The category labels of the classification results

Output Score
  • Type: DoubleList

  • Meaning: The category scores of the classification results

Output Result Image
  • Type: Debug2D

  • Meaning: The classification result image

Model Path
  • Meaning: The path to the model file

Input Image

../_images/classify_src1.png

Output Image

../_images/classify_dst1.png

CloudInstanceSegm#

Deep learning instance segmentation can be used to load pretrained model files and perform inference on input images to achieve instance segmentation.

InputDetectImage
  • Type: ImageColor ImageGray

  • Meaning: The image to be processed

Output Labels
  • Type: IntList

  • Meaning: The set of category labels resulting from instance segmentation

Output Label Names
  • Type: StringList

  • Meaning: The set of category labels name resulting from instance segmentation

Output Score
  • Type: DoubleList

  • Meaning: The set of category scores resulting from instance segmentation

Output Bound Boxs
  • Type: Rect2DList

  • Meaning: The set of bounding boxes resulting from instance segmentation

Output Masks
  • Type: RegionList

  • Meaning: The set of object masks within the bounding box resulting from instance segmentation

Output Result Image
  • Type: Debug2D

  • Meaning: The result image of instance segmentation

Model Path
  • Meaning: The path where the model file is located

Threshold
  • Meaning: The score threshold for instance segmentation

  • Range: [0.0, 1.0]

Numbers
  • Meaning: The maximum number of displayed instances for segmentation

  • Range: [0, 100]

Pixel Threshold
  • Meaning: The score threshold for pixel points within the target mask in instance segmentation. This is a sensitive parameter; increasing it may cause incomplete mask display. The default is 0.1

  • Range: [0, 1.0]

Input Image

../_images/mask_src1.png

Output Image

../_images/mask_dst1.png

AlgCloudMaskQuick#

Deep Learning Instance Segmentation (Fast) can be used to load trained model files and perform inference on input images locally using DUCOMind, providing information on the locations, bounding boxes, and categories of detected objects in the current image.

Input Detect Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Output Labels
  • Type: IntList

  • Meaning: Collection of category labels from instance segmentation results

Output Label Names
  • Type: StringList

  • Meaning: Collection of recognition result label names from instance segmentation (Fast)

Output Score
  • Type: DoubleList

  • Meaning: Collection of category scores from instance segmentation results

Output Bound Boxs
  • Type: Rect2DList

  • Meaning: Collection of bounding boxes from instance segmentation results

Output Masks
  • Type: RegionList

  • Meaning: Collection of target masks within the bounding box from instance segmentation results

Output Result Image
  • Type: Debug2D

  • Meaning: Result image from instance segmentation

Model Path
  • Meaning: Path to the model file

Threshold
  • Meaning: Score threshold for instance segmentation

  • Range: [0.0, 1.0]

Numbers
  • Meaning: Maximum number of objects to display from instance segmentation

  • Range: [0, 100]

Pixel Threshold
  • Meaning: Score threshold for pixels of target masks in instance segmentation; a sensitive parameter; increasing the parameter might cause incomplete mask display, default is 0.1

  • Range: [0, 1.0]

Input Image

../_images/maskfast_src1.jpg

Output Image

../_images/maskfast_dst1.png

CloudRotationDetection#

Deep learning rotated box object detection can be used to load trained model files and perform inference on input images to achieve object detection functionality.

InputDetectImage
  • Type: ImageColor ImageGray

  • Description: Image to be processed

Output Labels
  • Type: IntList

  • Description: Set of category labels for rotated box detection results

Output Label Names
  • Type: StringList

  • Meaning: Collection of category labels names from target detection results

Output Score
  • Type: DoubleList

  • Description: Set of category scores for rotated box detection results

Output Rotation Bound Boxs
  • Type: RotationRect2Dlist

  • Description: Set of bounding boxes for rotated box detection results

Output Masks
  • Type: RegionList

  • Description: Set of bounding box region masks for rotated box detection results

Output Result Image
  • Type: Debug2D

  • Description: Result image of rotated box detection

Model Path
  • Description: Path where the model file is located

Threshold
  • Description: Score threshold for rotated box detection

  • Range: [0.0, 1.0]

Numbers
  • Description: Maximum number of displayed objects for rotated box detection

  • Range: [0, 100]

Input Image

../_images/rota_src1.png

Output Image

../_images/rota_dst1.png

CloudKeypointCPMS#

Deep learning keypoint detection can be used to load trained model files and perform inference on input images to achieve keypoint detection functionality.

Input Detect Image
  • Type: ImageColor ImageGray

  • Meaning: Image to be processed

Output Labels
  • Type: IntList

  • Meaning: Collection of category labels for keypoint detection results

Output Label Names
  • Type: StringList

  • Meaning: Collection of category labels names for keypoint detection results

Output Locations
  • Type: Vector2DList

  • Meaning: Collection of keypoint positions for keypoint detection results

Output Result Image
  • Type: Debug2D

  • Meaning: Keypoint detection result image

Model Path
  • Meaning: Path to the model file

Threshold
  • Meaning: Keypoint score threshold

  • Range: [0.0, 1.0]

Numbers
  • Meaning: Maximum number of keypoints to display

  • Range: [0, 100]

Gain
  • Meaning: Keypoint detection gain (default 2500, sensitive parameter requires tuning, for images with a lot of information try larger gain first)

  • Range: [100, 10000]

Input Image

../_images/keypoint_src1.png

Output Image

../_images/keypoint_dst1.png

Variables#

To String#

Convert various variables to string type.

Input Value
  • Type: Any Variable

  • Meaning: Value to be processed

String
  • Type: String

  • Meaning: String

Value Input Settings
  • Meaning: Method of inputting value

  • Range: From input settings, from parameter settings

Serialization Configuration
  • Meaning: Separator flag

  • Range: Prefix, Suffix, Separator, List Prefix, List Suffix, List Separator

Enter String
  • Meaning: Directly enter string

Input Image

Joint string#

Concatenate two strings into one string.

String 1
  • Type: String

  • Meaning: The string to be processed

String 2
  • Type: String

  • Meaning: The string to be processed

Output String
  • Type: String

  • Meaning: The output string

Concatenation Configuration
  • Meaning: Delimiting marker

  • Range: Prefix, Suffix, Separator

Input Image

Value Write#

Assign one variable to another variable.

Source Variable
  • Type: any variable

  • Meaning: Origin of the variable

Target Variable
  • Type: any variable

  • Meaning: The variable to be assigned

Input Image

General Operators#

Script#

Introduction#

This script function manual is applicable for DUCO MIND programming.

The script uses Lua syntax, supporting native Lua syntax as well as some custom syntax and functions specific to this system.

Input#

Click on the script operator and open the template configuration to add or remove input variables. The following image shows how to open the template configuration.

../_images/%E8%84%9A%E6%9C%AC1.png

Click the + symbol indicated by the arrow in the image above to add an input. The default input type is String, and the default name is Script Input 1. Click the area indicated by the arrow in the image below to delete an input variable.

../_images/%E8%84%9A%E6%9C%AC2.png

After adding or removing an input variable, close the template configuration switch. The result after closing is shown in the image below.

../_images/%E8%84%9A%E6%9C%AC3.png

At this point, select a String type variable from the dropdown box after Script Input 1.

You can get the value of Script Input 1 using the following statement:

str1 = Script.get_value("Script Input1")

Output#

Click on the script operator and open the template configuration to add or remove output variables. The following image shows how to open the template configuration.

../_images/%E8%84%9A%E6%9C%AC4.png

Click the + symbol indicated by the arrow in the image above to add an output. The default output type is String, and the output name is Script Output 1. Click the area indicated by the arrow in the image below to delete an output variable.

../_images/%E8%84%9A%E6%9C%AC6.png

After adding or removing an output variable, close the template configuration switch. The result after closing is shown in the image below.

../_images/%E8%84%9A%E6%9C%AC7.png

At this point, click the button indicated by the arrow after Script Output 1 to pop up the Monitor switch. Turning on the Monitor switch will add this output to the monitoring list.

To assign the value hello, world to Script Output 1, use the following statement:

Script.set_value("Script Output1", "hello, world")

Data Types and Variables#

Built-in Data Types#

Nil Type: nil, represents no valid value.

Arithmetic Type: The system’s built-in arithmetic type is double-precision floating-point number (number).

String Type: String, for example, “siasun robot”.

Boolean Type: Bool, such as true or false.

List Type (list): A table (array structure) that can contain other data types, for example, {1,2,3,4,5}, {“a”, “b”, “c”}.

Extended Data Types#
Pose3D#

Stores six Double type variables, for example: {1.1, 2.2, 3.3, 4.4, 5.5, 6.6}, usually used to represent the robot’s pose, for example:

my_pose3d=Pose3D.new({1.1, 2.2, 3.3, 4.4, 5.5, 6.6}) Defines a Pose3D type variable my_pose3d with the value {1.1, 2.2, 3.3, 4.4, 5.5, 6.6}

my_pose3d1=Script.get_value(my_pose3d):get() Reads the value from my_pose3d and assigns it to my_pose3d1

Script.set_value(my_pose3d2, my_pose3d1) Assigns the value of my_pose3d1 to my_pose3d2

Vector3D#

Stores three Double type variables, for example: {1.1, 2.2, 3.3}, for example:

my_vec3d=Vector3D.new({1.1, 2.2, 3.3}) Defines a Vector3D type variable my_vec3d with the value {1.1, 2.2, 3.3}

my_vec3d1=Script.get_value(my_vec3d):get() Reads the value from my_vec3d and assigns it to my_vec3d1

Script.set_value(my_vec3d2, my_vec3d1) Assigns the value of my_vec3d1 to my_vec3d2

System Constants#

A value like 42 is called a literal constant. Each literal constant corresponds to a data type. The form and value of the literal constant determine its data type and how it is used in the script. The system supports the following constants:

Basic Type Constants#

Arithmetic constants, true, false.

Arithmetic constants usually refer to double-precision floating-point constants. These constants can participate in relational operations, arithmetic operations, logical operations, and can be assigned to or initialize basic type variables. They can also be passed as arguments to functions.

In the system, true represents true.

In the system, false represents false.

String Constants#

String constants are collections of characters. String constants can be used to define string variables or passed as function parameters.

Variables#

Variables in the system are usually represented by a unique identifier (id). Variables must be defined before they can be used.

a =1.23 Variable assignment: the type of a is defined as double-precision floating-point, and a is initialized to 1.23.

b = true b is a Boolean variable, initialized to true.

c = false c is a Boolean variable, initialized to false.

s1= “siasun” s1 is a string variable, initialized to “siasun”.

s2= “SiasunCobot” s2 is a string variable, initialized to “SiasunCobot”.

s2=s1 s2 is assigned the value of s1, so s2 becomes “siasun”.

a1 = {} a1 is an empty list, with a length of 0.

a2={1.1, 2.2, 3.3, 4.4} a2 is a list of double-precision floating-point numbers, with a length of 4.

a3={ “a”, “b”, “c” } a3 is a list of strings, with a length of 3.

a4=a3 a4 is assigned the same reference as a3. Modifying a4 will also modify a3.

You can access specific elements using an index, with the index starting from 1. For example:

a2[1]=12

a3[2]= “siasun”

Expressions#

An expression in the system refers to an operation set that returns a value. It is a recursive definition.

Here, exp represents an expression, and op represents an operator.

Arithmetic Expressions#

The system supports four types of arithmetic operations: addition (+), subtraction (-), multiplication (*), and division (/). Arithmetic expressions return arithmetic constants.

Relational Expressions#

The system supports relational operations such as >, <, >=, <=, ==, ~=. Relational expressions return true or false.

Logical Expressions#

The system supports logical operators and, or, not.

exp1 and exp2: If exp1 is true and exp2 is true, the expression returns true; otherwise, it returns false.

exp1 or exp2: If exp1 is true or exp2 is true, the expression returns true; otherwise, it returns false.

not exp1: If exp1 is true, the expression returns false; otherwise, it returns true.

Assignment Expressions#

Variable name (id) = exp

The left-hand side of an assignment expression is a variable identifier. This expression is a valid assignment expression only if the variable has already been defined. If the variable has not been defined, it becomes a variable definition statement.

Function Call Expressions#

Function name (argument list)

Statements#

While Loop#

while (exp)

do

exp

end

Function Definition#

function fun( parameter list )

statement list

return exp

end

Example:

function fun1(a,b,c)

return a+b+c

end

Parameter types: Based on the actual passed parameters.

Return types: Based on the actual returned parameters.

A function can return multiple parameters, separated by ,. For example:

function fun1(a,b,c)

return a,b,c

end

Return Statement#

return exp

Tip

The return statement can only be used inside a function to return the result of the function’s operations.

The data type returned by the return statement determines the function’s return value. If the function does not contain a return statement, the function does not return any value.

Conditional Control Statements#
Form 1:#

if (exp)

then

elseif (exp)

then

else

end

Form 2:#

if (exp)

then

end

Form 3:#

if (exp)

then

else

end

Like most languages, the system supports if conditional control statements. When the judgment expression in if or elseif is true, the content in the statement block is executed.

Tip

The result of the control structure’s conditional expression can be any value. False and nil are false, while true and non-nil are true.

Note that 0 is considered true:

if (0)

then

print("0 is true")

end

Result: 0 is true

Goto Statement#

goto  Label

:: Label::

Example:

a=1

::label::  print("----goto-----"")

if  a<3  then

goto  label

end

Break Statement#

Use the break statement to terminate a loop.

Example:

a=10

while( a<20 )

do

print("a=",a)

a=a+1

if(a>15)  then

break

end

end

Functions#

Click the area indicated by the arrow in the image below to pop up the Script Add interface. This interface contains some commonly used functions. Clicking on a function name will display the function description.

../_images/%E8%84%9A%E6%9C%AC8.png

The Script Add interface is shown below. You can drag the current interface by holding the mouse at the top of the Script Add interface.

../_images/%E8%84%9A%E6%9C%AC9.png

Clicking on a function name will display the function’s introduction page. The following image shows the introduction of the pose_multiply function:

../_images/%E8%84%9A%E6%9C%AC10.png

In the image above, double-clicking a function will directly add it to the script editor.

Assignment Functions#

set_value()

For example, to assign the value of a String type variable Str1 to Scipt Output 1:

set_value("Scipt Output1", Str1)

Value Retrieval Functions#

get_value()

  1. For example, to retrieve the value of a String type Scipt Input 1:

valueStr=get_value("Scipt Input1")

  1. For example, to retrieve the value of a Pose3D type Scipt Input 2:

valuePose=get_value("Scipt Input2")

Global Functions#
pose3d_multiply or pose3d_trans: Multiply two poses to get a new pose.
  • Parameter 1: Pose3D

  • Parameter 2: Pose3D

  • Return value: Pose3D

  • Example: pose1 = pose3d_multiply(pose2, pose3) or pose1 = pose3d_trans(pose2, pose3)

pose3d_inverse or pose3d_inv: Invert a pose.
  • Parameter 1: Pose3D

  • Return value: Pose3D

  • Example: pose1 = pose3d_inverse(pose2)

pose3d_angle: Calculate the axis angle between two poses.
  • Parameter 1: Pose3D

  • Parameter 2: Pose3D

  • Return value 1: Double

  • Return value 2: Vector3D

  • Example: angle, vec = pose3d_angle(pose1, pose2)

pose3d_distance: Calculate the spatial distance between two poses.
  • Parameter 1: Pose3D

  • Parameter 2: Pose3D

  • Return value: Int

  • Example: distance = pose3d_distance(pose1, pose2)

pose3d_offset: Calculate the offset between two poses.
  • Parameter 1: Pose3D

  • Parameter 2: Pose3D

  • Return value: Pose3D

  • Example: poseOff = pose3d_offset(pose1, pose2)

pose3d_get_trans: Extract the x, y, z values from a Pose3D into a Vector3D.
  • Parameter: Pose3D

  • Return value: Vector3D

  • Example: vec = pose3d_get_trans(pose1)

pose3d_get_rpy: Extract the RX, RY, RZ values from a Pose3D into a Vector3D.
  • Parameter: Pose3D

  • Return value: Vector3D

  • Example: vec = pose3d_get_rpy(pose1)

cross_product: Cross product of two vectors.
  • Parameter 1: Vector3D

  • Parameter 2: Vector3D

  • Return value: Vector3D

  • Example: vec = cross_product(vec1, vec2)

rpy_to_axis_angle: Convert Euler angles to axis angles.
  • Parameter 1: RPY

  • Return value: Double

  • Example: var = rpy_to_axis_angle(rpy)

axis_angle_to_rpy: Convert axis angles to Euler angles.
  • Parameter 1: Vector3D

  • Parameter 2: Vector3D

  • Return value: RPY

  • Example: rpy1 = axis_angle_to_rpy(vec1, vec2)

vector3d_norm: Calculate the norm (magnitude) of a vector.
  • Parameter: Vector3D

  • Return value: Float

  • Example: var = vector3d_norm(vec)

vector3d_normalized: Normalize a vector.
  • Parameter: Vector3D

  • Return value: Vector3D

  • Example: vec1 = vector3d_normalized(vec2)

vector3d_cross: Cross product of two vectors.
  • Parameter 1: Vector3D

  • Parameter 2: Vector3D

  • Return value: Vector3D

  • Example: vec = vector3d_cross(vec1, vec2)

vector3d_dot: Dot product of two vectors.
  • Parameter 1: Vector3D

  • Parameter 2: Vector3D

  • Return value: Float

  • Example: dot = vector3d_dot(vec1, vec2)

rpy_to_rot: Convert Euler angles to a rotation matrix.
  • Parameter: Vector3D

  • Return value 1: Vector3D

  • Return value 2: Vector3D

  • Return value 3: Vector3D

  • Example: vx, vy, vz = rpy_to_rot(vec)

rot_to_rpy: Convert a rotation matrix to Euler angles.
  • Parameter 1: Vector3D

  • Parameter 2: Vector3D

  • Parameter 3: Vector3D

  • Return value: Vector3D

  • Example: vec = rot_to_rpy(vec1, vec2, vec3)

sleep: Pause the program for a specified time, in milliseconds.
  • Parameter: Int

  • Example: sleep(500) means the program will pause for 500 milliseconds.

log: Print a log message.
  • Parameter 1: String, log level, supports the following four levels:
    • “debug”

    • “info”

    • “error”: Prints an error log.

    • “warn”

  • Parameter 2: String, log message content.

  • Example: log(“debug”, “hello, world”)

time: Calculate and return the current timestamp in milliseconds.
  • Return value: Double, current timestamp.

  • Example: curTime = time()

Sleep#

Make the program sleep for a period of time

Sleep Time Unit
  • Description: The unit time of the sleep duration

  • Range: seconds, milliseconds

Sleep Time
  • Description: The duration of the sleep

  • Range: [0, 2147483647]

Arrays#

Clear Array#

Clear the contents of an array.

Input Array
  • Type: Any array

  • Meaning: the array to be processed

Add Array Value#

This module get a value from an array.

Input Array
  • Type: any array

  • Description: The array to be processed

Array Element Value
  • Type: any array

  • Description: The value of the retrieved element

Index
  • Description: The index of the element to retrieve

  • Range: [1, 2147483647]

Create Array#

Clear an existing array.

Output Array
  • Type: Any Array

  • Meaning: Newly created array

Array Type
  • Meaning: Type of the newly created array

  • Range: BoolList, Circle2DList, DoubleList, Edge2DList, ImageColorList, ImageGrayList, IntList, Line2DList, LineSegment2DList, Point2DList, PointCloudList, PointCloudNormalList, Polygon2DList, Pose2DList, Pose3DList, PropertyTypeList, Rect2DList, RegionList, Ring2DList, RotatedRect2DList, Size2DList, StringList, Text2DList, Vector2DList, Vector3DList, Vector4DList

Delete Array Value#

Delete a specific value from an array.

Input Array
  • Type: any array

  • Meaning: The array to be processed

Index of Value to Delete
  • Meaning: The index of the value to be deleted

  • Range: [1, 2147483647]

Add Array Element#

Add an element to an array.

Input Array
  • Type: Any Array

  • Meaning: The array to be processed

Element to Add
  • Type: Any Matching Element

  • Meaning: The element to be added

Logic Operators#

Parallel#

Customizable parallel execution logic for branches.

Click the + sign in the upper right corner to add branches. The toggle switch controls branch enablement.

../_images/%E5%B9%B6%E8%A1%8C%E5%88%86%E6%94%AF1.png

Switch#

Customizable logic for branch selection.

Type
  • Definition: The type of the element to be evaluated

  • Range: Int, Double, Bool, String

Variable Description Name
  • Definition: The specific value to be evaluated

Condition
  • Definition: Evaluation condition

Click the + sign in the top right corner to add branches, and use the toggle switch to enable or disable branches.

../_images/%E9%80%89%E6%8B%A9%E5%88%86%E6%94%AF1.png

Loop#

The function of looping based on conditions.

Type
  • Meaning: Select the type of element to be judged

  • Range: Int, Double, Bool, String

Conditional Variable
  • Meaning: The specific value to be judged

Loop Condition
  • Meaning: The condition for loop judgment

../_images/%E6%9D%A1%E4%BB%B6%E5%BE%AA%E7%8E%AF1.png

Foreach#

Functionality to traverse elements in an array.

Input
  • Type: Any array

  • Meaning: The array to process

Output
  • Type: Corresponding element

  • Meaning: The element that is output

../_images/%E6%95%B0%E7%BB%84%E9%81%8D%E5%8E%861.png

Camera#

Camera Capture#

The camera capture operator can call a connected camera in DucoMimd to take a picture. When taking pictures, functions such as retrying upon failure and reconnecting upon failure can be set.

Input Camera
  • Type: Camera

  • Meaning: The name of the connected camera

Output Result
  • Type: Bool

  • Meaning: Whether the camera capture was successful

Auto Reconnect
  • Auto Reconnect: Whether to enable the camera’s auto reconnect feature

  • Reconnect Attempts: The number of times to automatically reconnect when the camera is not connected

  • Reconnect Interval: The time interval between each connection attempt

Retry Capture on Failure
  • Auto Capture: Whether to enable the camera’s auto retry capture feature

  • Retry Attempts: The number of times to automatically retry capturing when the camera fails to capture

  • Retry Interval: The time interval between each retry capture attempt

Camera Type
  • Meaning: Parameters that can be set on the camera before using the camera capture operator

Tip

  1. When setting the camera parameters using the camera capture operator, if the selected camera type does not match the current camera type, the output result of the operator will be false.

  2. The camera parameters displayed in the camera capture operator are the default parameter sets of the camera and cannot be dynamically updated according to the specific camera instance’s parameters. However, after changing the parameters in the camera capture operator, the parameters of the specific camera instance will be updated.

Debugging#

2D Debug#

The 2D debug operator can input a Debug2D operator and draw specific parameters into it, such as images, lines, coordinate axes, and points.

Input Debug2D
  • Type: Debug2D

  • Definition: Input data of type Debug2D, subsequent drawings will be performed on this data.

Input Vector2D
  • Type: Vector2D Vector2DList

  • Definition: Data of types Vector2D and Vector2DList, representing the drawing of points.

Input Pose2D
  • Type: Pose2D Pose2DList

  • Definition: Data of types Pose2D and Pose2DList, representing the drawing of coordinate axes.

Input Region
  • Type: Region RegionList

  • Definition: Data of types Region and RegionList, representing the drawing of Regions.

Input String
  • Type: String StringList

  • Definition: Data of types String and StringList, representing the drawing of text.

Input Image
  • Type: ImageColor ImageGray

  • Definition: Data of types ImageColor and ImageGray, representing the drawing of images.

Drawing type
  • Vector2D: Requires input of data of type Vector2D or Vector2DList, representing drawing points at one or several specific coordinates.

  • Pose2D: Requires input of data of type Pose2D or Pose2DList, representing drawing coordinate axes at one or several specific coordinates.

  • Region: Requires input of data of type Region or RegionList, representing drawing one or multiple Regions.

  • String: Requires input of data of type String, representing drawing text at coordinate points.

  • String_Pose2D: Requires input of data of type String/StringList and Pose2D/Pose2DList, representing drawing text at specific coordinates.

  • Image: Requires input of data of type ImageColor or ImageGray, representing drawing images.

Color and thickness configuration
  • Panel color: The color drawn on the panel, optional Green, Red, Black, Blue, White.

  • Fill color: The fill color, optional Green, Red, Black, Blue, White.

  • Thickness: The thickness of the line or point.

  • Panel switch: Whether to enable panel color.

  • Fill switch: Whether to enable fill color.

  • Line type: Can choose whether to draw the line as Solid or Dashed.

Thickness and size configuration
  • Thickness: The thickness of the drawing line.

  • Size: The size of the drawing points.

Color configuration
  • Color: The color of the drawing panel.

  • Thickness: The thickness of the drawing line.

String and Pose2D configuration
  • Color: The color of the drawing text.

  • Thickness: The size of the drawing text.

3D Debug#

The 3D Debug operator can input a Debug3D operator and draw specific parameters into it, such as point clouds, coordinate axes, and dots.

Input Debug3D
  • Type: Debug3D

  • Meaning: Input data of type Debug3D, subsequent drawings will be performed on this data.

Input Vector3D
  • Type: Vector3D Vector3DList

  • Meaning: Data of type Vector3D and Vector3DList, indicating that dots are to be drawn on Debug3D.

Input Pose3D
  • Type: Pose3D Pose3DList

  • Meaning: Data of type Pose3D and Pose3DList, indicating that coordinate axes are to be drawn on Debug3D.

Input PointCloud
  • Type: PointCloudXYZ PointCloudNormal

  • Meaning: Data of type PointCloudXYZ and PointCloudNormal, indicating that point cloud data is to be drawn on Debug3D.

Drawing Type
  • Vector3D: At this time, you need to input data of type Vector3D or Vector3DList, indicating that dots are drawn at one or several specific coordinates.

  • Pose3D: At this time, you need to input data of type Pose3D or Pose3DList, indicating that coordinate axes are drawn at one or several specific coordinates.

  • PointCloud: At this time, you need to input data of type PointCloud or PointCloudNormal, indicating that point cloud is drawn.

Color and Thickness Configuration
  • Panel color: The color drawn on the panel, optional values Green, Red, Black, Blue, White.

  • Thickness: The thickness of the lines or dots.

  • Panel switch: Whether to enable panel color.

  • Fill switch: Whether to enable fill color.

Length and Thickness Configuration
  • Thickness: The thickness of the lines drawn.

  • Length: The length of the lines drawn.