Back to FabImage Studio website

You are here: Start » Filter Reference » Region » Region Global Transforms » SplitRegionIntoBlobs


Module: FoundationBasic

Splits a region into an array of regions corresponding to its connected components.


Segmentation of a region into individual objects when the objects do not touch each other.
Name Type Range Description
Input value inRegion Region Input region
Input value inConnectivity RegionConnectivity Type of connectivity used for the region foreground
Input value inMinBlobArea Integer 0 - Minimal area of a resulting blob
Input value inMaxBlobArea Integer* 0 - Maximal area of a resulting blob
Input value inRemoveBoundaryBlobs Bool Flag indicating whether the blobs on border of the input region should be removed or not
Output value outBlobs RegionArray


The operation computes an array of connected regions corresponding to the connected components of the input region pixels. Each region in the resulting array will have dimensions equal to those of the input region.

Resulting array will contain only regions which have area in range defined by inputs: inMinBlobArea and inMaxBlobArea.

Images below shows neighbor of the gray pixel in different inConnectivity selection.

inConnectivity.FourDirections inConnectivity.EightDirections


  • In most cases this filter works without any parametrization. Just connect a single region to the inRegion input.
  • To reject small blobs, which are often caused by noise, increase inMinBlobArea.
  • To reject big blobs, which sometimes appear due to some background pattern, define inMaxBlobArea.
  • Set inRemoveBoundaryBlobs to ignore blobs of partially visible objects, touching the edges of the image.


Description of usage of this filter can be found in examples and tutorial: Coins, Fuses, Inset Distances, Molybdenum Foil, Washers, Count Nails, Finding PCB Missing Covering, Count the Mounts, Classify the Mounts, Sorting Blobs.

The image below show an input 10x10 pixels region.

Images below shows result of SplitRegionIntoBlobs filter with different inConnectivity.

inConnectivity.FourDirections inConnectivity.EightDirections

Images below shows result of SplitRegionIntoBlobs filter with different inRemoveBoundaryBlobs.

inRemoveBoundaryBlobs = True inRemoveBoundaryBlobs = False


When inRemoveBoundaryBlobs is set to True all filters near the region boundary will be removed. The region boundary is described by region frame.

This filter is mostly used in Blob Analysis Technique please refer to our Machine Vision Guide - Blob Analysis article.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.

Complexity Level

This filter is available on Advanced Complexity Level.

See Also

  • SplitRegionIntoComponents – Splits a region into an array of regions. Operates by merging blobs in accordance to the inMaxDistance parameter.
  • CropRegion – Creates a region from a rectangular fragment of another one.