Back to FabImage Studio website

You are here: Start » Filter Reference » Data Flow

Data Flow

Conditional Processing

Icon Name Description / Applications Modules
ChooseByCase

Returns one of the input objects depending on the specified case index.

FoundationLite
ChooseByPredicate

Returns one of the two input objects depending on the specified condition.


E.g. to choose GREEN color to visualize correct objects or RED to visualize defective ones.

FoundationLite
ChooseByRange

Returns one of the three input objects depending on whether the associated input value falls below, in or above the specified range.


E.g. to choose GREEN, YELLOW or RED color for visualization on the basis of three ranges of some value: OK, WARNING, NOK.

FoundationLite
ClassifyByCase

Separates the elements of the input array into several output arrays, depending on the associated array of case indices.

FoundationLite
ClassifyByPredicate

Separates the elements of the input array into two output arrays. The first output array contains all the elements for which the associated predicate is True.


E.g. creating separate arrays of OK and NOK objects.

FoundationLite
ClassifyByRange

Separates the elements of the input array into three output arrays, depending on whether the related values fall below, into or above the specified range.


E.g. selection of the objects (e.g. blobs) whose associated values (e.g. area) meet the specified minimum and maximum requirements.

FoundationLite
ConditionalToOptional

Makes it possible to conditionally preprocess data that will be used on an optional input.

FoundationLite
GroupByCase

Groups the elements of the input array into output arrays, depending on the associated array of case indices.

FoundationLite
GroupByCase_Synchronized

Groups the elements of the input array into output arrays, depending on the associated array of case indices. Assumes that the range of case indices is continuous and starts at zero.

FoundationLite
MakeConditional

Checks a condition and: if the condition is True, then it copies the input object to the output; otherwise returns Nil.


Introduces conditional data flow on a condition defined by the user. This filter can be used to skip some parts of the program - e.g. when a detected object does not fulfill some quality criteria.

FoundationLite
MergeBranches

Chooses the first non-Nil object, or reports an error if there is no such object.

FoundationLite
MergeConditionals

Returns the first not-Nil input object.

FoundationLite
MergeDefault

Copies an object from a conditional input to an non-conditional output, replacing Nil with a predefined default value.


Usually used to create a definite result for the special cases represented by the Nil value.

FoundationLite
MergeIntoArray

Creates an array from all the non-Nil input elements.

FoundationLite
OptionalToConditional

Makes it possible to use conditional execution inside macrofilters with optional inputs.

FoundationLite
SelectByPredicate

Selects the elements from the input array for which the associated predicate is True.

FoundationLite
SelectByRange

Selects the elements of the input that fall into the specified range.

FoundationLite
SwapObjects

Swaps two objects depending on the specified condition.

FoundationLite

Loop Generators

Icon Name Description / Applications Modules
EnumerateCombinations

In each consecutive iteration produces a consecutive combination of integer numbers.

FoundationLite
EnumerateElementPairs

Produces a total number of 'inCount1 * inCount2' of pairs of elements.

FoundationLite
EnumerateElements

In each iteration gets a consecutive element of the input array.

FoundationLite
EnumerateIntegerPairs

Produces a total number of 'inCount1 * inCount2' of pairs of integer numbers.

FoundationLite
EnumerateIntegers

In each consecutive iteration produces a consecutive number from an arithmetic sequence.

FoundationLite
EnumerateRealPairs

Produces a total number of 'inCount1 * inCount2' of pairs of real numbers.

FoundationLite
EnumerateReals

In each consecutive iteration produces a consecutive number from an arithmetic sequence.

FoundationLite
Loop

Generates a loop that ends at the first invocation with False on the input.


Put this filter into a task that should have a loop, but does not have any other loop generators (e.g. GrabImage).

FoundationLite
Repeat

Generates a loop that ends at the first invocation with True on the input.


Put this filter into a task that should have a loop, but does not have any other loop generators (e.g. GrabImage).

FoundationLite

Loop Utils

Icon Name Description / Applications Modules
AccumulateElements

Creates an array from elements appearing in many iterations.

FoundationLite
CountValueInLoop

Counts value occurrences in all loop iterations.

FoundationLite
Exit

If the specified condition is true, exits the macrofilter loop.

FoundationLite
GetPreviousObjects

Returns the current and the previous objects.

FoundationLite
LastExactlyNObjects

Returns an array of N most recent objects.

FoundationLite
LastMarkedObject

Returns the last value passed with inCondition set to 'True'.

FoundationLite
LastMultipleObjects

Returns an array of most recent objects.

FoundationLite
LastNotNil

Returns the last value passed that existed.

FoundationLite
LastTwoObjects

Returns the current and the previous object.

FoundationLite
LoopMaximum

Returns the object for which the associated value was the highest among all iterations.

FoundationLite
LoopMinimum

Returns the object for which the associated value was the lowest among all iterations.

FoundationLite
TestObjectChanged

Checks if the input object is different than in the previous iteration.

FoundationLite
CountConditions

Counts in how many iterations the input condition was met.


Typically used to check how many PASS or FAIL cases there were in a cycle.

FoundationLite
TestFirstIteration

Checks if a loop is in the first iteration.

FoundationLite