# Built-in toolsðŸ”—

## OverviewðŸ”—

The VisionAppster platform comes with a comprehensive set of building
blocks we call *tools*. The built-in tools range from primitive
mathematical functions to complex image analysis algorithms. A few
selected examples:

**Mathematical functions**

**Control structures**

**Utilities**

**Image processing**

**Image analysis**

**Access a camera**

**Deep neural networks**

## List of all toolsðŸ”—

Abs | Takes absolute value of a scalar, a matrix or a tensor. |

Add | Adds up the inputs element by element. |

Add images | Applies weights to two images, adds the weighted images together and outputs the result. |

Add noise | Adds simulated white noise to the input image. |

Adjust calibration | Changes the calibration factors and/or the world frame of an image without changing pixel data. |

Adjust points to gradient | Adjusts the given points in the input image towards maximum gradients and filters out the points which are surrounded by too similar points. |

Align images | Adjusts the world frame and calibration data of an image so that the pixels are aligned with |

Analyze blob geometry | Calculates geometric properties for labeled objects. |

Analyze blob statistics | Calulates histograms of blobs in a gray scale image. |

Analyze histogram | Calculates statistical features from a histogram. |

Angle between lines | Calculates the angle between two lines. |

Arithmetic | Base class for arithmetic tools. |

Array element | Takes the nth element of an array. |

Array to CSV record conversion | Converts elements of an input array to strings and joins them to a single string that can be written to a CSV file. |

Automatic target location | Attempts to localize a target object on a relatively uniform background and to crop it out of the image. |

Automatic target location | Attempts to localize a target object on a relatively uniform background and to crop it out of the image. |

Balance colors | Corrects RGB color balance according to the given scaling factors. |

Barcode detection mask | A compound tool that splits an image to fixed-size blocks and produces a low-resolution detection mask image by classifying each sub-image. |

Barcode probability | Calculates the probability that a barcode is present in an image patch. |

Begin branch | Passes input parameters to alternative branches depending on the |

Begin iterate | A starting point for a part of a processing graph that needs to be repeated multiple times with different parameters. |

Bin pixels | Combines adjacent pixels to produce a lower-resolution and less noisy output image. |

Binarize | Transforms any gray-level or color image to a binary image using a static gray-level threshold. |

Binarize adaptively | Transforms any gray-level or color image to a binary image using one of the selected adaptive thresholding algorithms. |

Binarize with limits | Transforms any gray-level image to a binary image. |

Binary function | Base class for arithmetic and logic tools that take two input parameters. |

Binary morphology | Applies morphological operations to binary images. |

Blob bounding box | Calculates the areas, centroids and bounding boxes of labeled objects. |

Boolean logic | Performs Boolean logic on inputs |

Bounding box | Calculates the axis-aligned bounding box of a set of 2D points. |

Calibrate camera | Calculates intrinsic calibration parameters (principal point, focal length and radial distortion) of a matrix camera. |

Calibrate line-scan camera | Calculates intrinsic calibration parameters for a line-scan camera. |

Calibrate manually | Calculates scaling factors between pixels and world units. |

Caliper | A compound tool that contains a GrayLevelProfileTool and a MeasureGapWidthsTool. |

Collapse array | Base class for tools which collapse a dimension from images, matrices and tensors. |

Color distance | Transforms input image into a gray-level image. |

Color ratio | Given a reference color and a color sample, calculates scaling factors suitable for color balancing. |

Combine color channels | Combines separated color channels to a color image. |

Compare | Compares a numeric value, matrix or tensor |

Complex conjugate | Conjugates the input. |

Compress image | Compresses the pixel buffer of an image. |

Convert colors | Converts encoded images to RGB or grayscale. |

Convert to string | Converts anything to a string. |

Convert type | Changes the data type of the input object or converts a string to a number. |

Correct gamma | Compresses or expands gray or RGB levels using a non-linear power-law function. |

Count | Increases a counter and produces a reset signal every time the counter reaches a user-defined maximum value. |

Count line crossings | Counts the number of times a trajectory or a set of trajectories crosses a line segment. |

Crop image | Quickly extracts a rectangular portion of an image. |

Cryptographic hash | Generates a cryptographic hash string from the input string using a hashing algorithm. |

Deserialize object | Takes in a binary blob and deserializes it to an object. |

Detect blobs | Detects blobs in an image using 4- or 8-connectivity. |

Detect boundaries | Detects boundaries of connected objects in images and outputs them as a matrix that contains the coordinates of vertices that form a polygon. |

Detect boundary shape | A compound that combines boundary detection and the shape context to an easy-to-use key point detector. |

Detect circles | Detects circles in point sets. |

Detect corners | Detects corners in images. |

Detect edges | Detects prominent edges in images. |

Detect LBP texture | This tool is a compound that combines key point finder and local binary patterns to an easy-to-use keypoint and feature vector detector. |

Detect lines | Detects line segments. |

Detect motion | Accumulates a model of a static background of a scene with moving objects. |

Detect shapes | Detects shapes by matching a boundary curve to a known geometric shape or a user-defined shape. |

Detection mask | A compound tool that splits an image to fixed-size blocks and produces a low-resolution detection mask image by classifying each sub-image. |

Distance between point and line | Calculates the shortest distance between a line and a point or a set of points. |

Divide | Divides input |

Draw edges | Detects prominent edges in images. |

End branch | Merges alternative processing pipelines. |

End iterate | Collects results produced by an iterated part of a processing graph to a matrix or a table. |

Equal | Compares a numeric value, matrix or tensor |

Equalize histogram | Equalizes a histogram by making the gray level distribution as uniform as possible. |

Estimate background color | Estimates the background color based on the corners of the image. |

Expand frame | Expands or shrinks the frame by the given margin along coordinate axes. |

File system watcher | A data source that outputs the path to a file or directory each time a change is detected. |

Fill region | Replaces pixels inside a rectangle with a constant color. |

Filter key points | Discards points whose coordinates don't fall inside a rectangular region of interest in world coordinates. |

Find barcode | Finds locations of barcodes in the specified region-of-interest of the input image. |

Find Line Segment | Detects the longest line segments from the input image. |

Find matrix code | Finds location of a matrix code in the specified region-of-interest in the input image. |

Find peaks | Finds peaks in a one-dimensional signal. |

Find QR keypoints | Finds location of a QR code and returns 13 key points of the code. |

Find threshold | Automatically finds a suitable threshold value for binarizing a gray-level image based on its histogram. |

Fit lines | Fits lines to a point set. |

Flip image | Flips an image horizontally and/or vertically. |

Frame to angles | Converts the rotation matrix of a coordinate frame into TaitÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“Bryan angles. |

Gate | Passes input parameters to outputs if and only if the |

Generate grid | Generates a set points that uniformly covers the pixel grid of an image. |

Generate lines | Generates a set of parallel lines that are spaced apart by a constant amount in world coordinates. |

Generate QR code | Generates image of a QR code which contains the given data string. |

Gradient histogram | Calculates a magnitude-weighted gradient orientation histogram. |

Gray level profile | Computes the gray-level profile of any rectangular region. |

Greater | Compares a numeric value, matrix or tensor |

Greater or equal | Compares a numeric value, matrix or tensor |

Height profile | Calculates the height profile of a surface that is illuminated with stripe of light. |

Histogram | Calculates the grayscale histogram of an image. |

Histogram gradient | Generates an image in which the intensity of each pixel indicates the difference (histogram intersection) between histograms that are collected over rectangular areas that touch each other at the pixel. |

Homography | Calculates a coordinate frame which maps one set of coordinates into another. |

HSV to RGB | Converts an HSV image to RGB format. |

Huemap | Sets the chromacity of a pixel in the output image according to the intensity the corresponding pixel in the input image. |

Identity | Passes the input value as such. |

Image corners | Projects the corners of an input image to the XY plane of the world coordinate system. |

Image info | Takes in an image and outputs various information about the image. |

Image sharpness | This tool gives a numeric estimate of image sharpness. |

Image source | Sends image frames received from a camera. |

Image to matrix | Takes in an image and outputs a matrix. |

Image to tensor | Takes in an image and outputs a dense tensor in a predefined format. |

Input external data | Reads data from a supported data source and pushes it to analysis. |

Invert colors | Inverts the intensity of each color channel. |

Invert matrix | Inverts the input matrix. |

JavaScript | Runs user-defined JavaScript code in the processing pipeline. |

Join images | Joins two or more images to a single, possibly bigger image. |

Join matrices | Joins multiple input matrices or tables to a single output matrix or table. |

Keypoint histogram | Calculates the gray-level histogram around a set of key points. |

Less | Compares a numeric value, matrix or tensor |

Less or equal | Compares a numeric value, matrix or tensor |

Line-line intersection | Calculates the points where lines, half-lines or line segments intersect. |

Linear filter | Applies a linear filter to images. |

List directory | Lists files in a directory. |

Local binary patterns histogram | Calculates a histogram of local binary patterns (LBP) in an image. |

Local binary patterns transform | Converts each pixel of an input image to a local binary pattern (LBP) code. |

Logical AND | Performs logical AND operation on inputs |

Logical OR | Performs logical OR operation on inputs |

Logical XOR | Performs logical XOR operation on inputs |

Map gray levels | Maps pixels in the input image to new values in output image according to a lookup table. |

Mask image | Applies a binary mask to the input image. |

Match contours | Matches arbitrary boundary shapes using boundary shape detection and rigid 2D matching. |

Match key points | A superclass for tools that match objects based on key point coordinates and their associated feature descriptors. |

Match rigid 2D object | Matches key points with the RANSAC algorithm using a geometric model that allows a proper rigid transformation and scaling in two dimensions. |

Match textures | Matches textures using texture detection and rigid 2D matching. |

Matching compound | A compound tool that contains a key point detector and a matcher. |

Matrix code detection mask | A compound tool that splits an image to fixed-size blocks and produces a low-resolution detection mask image by classifying each sub-image. |

Matrix code probability | Calculates the probability that a matrix code is present in an image patch. |

Matrix info | Takes in a matrix and outputs various information about the matrix. |

Matrix to image | Converts a matrix to an image. |

Matrix to tensor | Converts a matrix to a tensor. |

Max | Finds the maximum value of the elements of a matrix or a tensor. |

Mean | Calculates the arithmetic mean of the elements of a matrix or a tensor. |

Measure dwell time | Measures the time a tracked object is seen. |

Measure gap widths | Measures gap widths using a gray-level profile. |

Measure speed | Measures the speed of objects represented by coordinates in |

Median filter | Applies a median filter to input images. |

Min | Finds the minimum value of the elements of a matrix or a tensor. |

Monochromatize image | Changes the colors of an image so that it only contains tones of a single color. |

Multiply | Multiplies the inputs element by element. |

Multiply matrices | Multiplies the matrices at inputs |

Nearest neighbor classifier | Implements the (k) nearest neighbors classification algorithm. |

Negate | Negates a numeric or Boolean value, matrix or tensor. |

Normalize histogram | Normalizes a histogram so that it sums up to a constant value. |

Normalize mean gray level | Normalizes an image so that its local average is approximately constant everywhere. |

Not equal | Compares a numeric value, matrix or tensor |

Output external data | Writes data to a data link device. |

Perspective transform | Calculates a coordinate frame (homography) that maps a quadrilateral defined by the corner points |

Pixel coordinates to world | Projects pixel coordinates to world coordinates. |

Position camera | Calculates the position of a matrix camera with respect to the world coordinate system. |

Position line-scan camera | Calculates the position of a line-scan camera with respect to the world coordinate system. |

Postprocess boundary | A specialized tool used by boundary shape detection to subsample and join boundaries for shape context calculation. |

Power | Raises the elements in input |

Process YOLO results | Converts the output tensor of a YOLO deep learning model to generally usable data types. |

Product | Calculates the product of the elements of a matrix or a tensor. |

Profile to image | Generates an image out of any number of one-dimensional signals such as height or gray-level profiles. |

Project to virtual view | Creates a new view of the world as if looked through a virtual window. |

Prune matches | Removes matches that have overlapping bounding boxes or too low confidences. |

Put objects in array | This tool creates an array out of a configurable number of elements. |

Quantize non-uniformly | Given a list of limits in ascending order, finds the smallest limit that is not smaller than the input value and outputs its zero-based index. |

Read barcode | Reads value of a barcode from a bounding box specified by frame and size. |

Read barcode along a line | Reads value of a barcode along a line specified by start and end points. |

Read digital input | Reads the value of an input channel in a remote I/O device. |

Read image file | Reads an image from file and outputs it either as a raw compressed image or as a decoded, processable image. |

Read matrix code | Reads various formats of matrix codes (2D barcodes). |

Read video file | Reads a video file and outputs the frames as RGB images. |

ReadFileTool | Reads the contents of a file as a binary blob. |

Region corners | Converts a region (coordinate frame and size) to a set of corner points. |

Replace coordinate frame | Replaces the coordinate frame of the input image with a new coordinate frame without modifying pixels. |

Reshape tensor | Creates a new tensor that points to the same data as the input tensor, but has a different layout. |

RGB to HSV | Converts an RGB image to HSV format. |

Rotate image | Rotates an image about its principal point. |

Run ONNX model | Runs a machine learning model stored in the ONNX format. |

Sample colors | Calculates average of color channels in the given region of interest. |

Save image | Writes images into files. |

Scale image | Scales an image. |

Separate color channels | Separates a color image to components, each represented by a gray-level image. |

Serialize inputs | Takes in a configurable number of asynchronous input events and outputs them using the first-in-first-out principle. |

Serialize object | Takes in an object and serializes it to a binary blob. |

Set color channel | Sets a color channel in a color image. |

Set intensity range | Scales or clamps the gray levels or color channels of an image into a given range. |

Shape context | Calculates the shape context descriptor for a set of points that describe the shape of an object. |

Simplify polyline | Reduces the number of vertices in a polyline or polygon. |

Sort rows | Sorts matrices and tables according to a key. |

Std | Calculates the standard deviation of the elements of a matrix or a tensor. |

Submatrix | Extracts a part of a matrix or a table. |

Subtract | Subtracts input |

Subtract images | Subtracts a reference image from another image and outputs the difference. |

Sum | Calculates the sum of the elements of a matrix or a tensor. |

Synchronize inputs | Receives data from multiple asynchronous sources and outputs the received objects in synchronization with the |

Tensor info | Takes in a tensor and outputs various information about the tensor. |

Tensor to classification | Given a tensor representing classification results, outputs the indices of accepted classes and the corresponding tensor values. |

Tensor to image | Converts a tensor to an image. |

Tensor to matrix | Converts a tensor to a matrix. |

Timer | Produces time stamps. |

Track moving objects | This tool takes in a set of points representing the locations of an arbitrary number of moving object at a time instant. |

Transform coordinates | Transforms point coordinates to/from a coordinate frame. |

Translate and rotate frame | Translates and rotates a |

Transpose matrix | Transposes the input matrix. |

Unary function | A base class for functions that have a single input parameter. |

Unwarp cylinder | Unwarps a cylindrical surface so that it appears flat. |

Variance | Calculates the variance of the elements of a matrix or a tensor. |

Vector to image | Converts a one-dimensional array of numbers to a gray-level image. |

World coordinates to pixels | Projects world coordinates to pixel coordinates. |

Write digital output | Writes a value to an output channel in a remote I/O device. |

Write file | Writes the input data into a new file or appends the data to an existing file. |

Write log | Writes a line of text to log. |

Write to database | Writes data to a table in an SQL database. |