finds a segmentation of image, returning an integer matrix in which positive integers label different components.


tries to find a segmentation into components that include pixels indicated by marker.


finds components that are connected at a pixel scale given by r.


  • ImageForestingComponents[image,marker] generates a graph-based segmentation of image, starting with the pixels specified by marker.
  • ImageForestingComponents works with arbitrary 2D and 3D images.
  • The target region marker can be any of the following:
  • markerimagea marker image
    {pos1,pos2,}a list of positions
  • Positions posi are assumed to be in the standard image coordinate system.
  • Nonzero elements of marker are treated as weighted seeds for the segmentation.
  • ImageForestingComponents produces a complete segmentation, assigning each pixel to a foreground component.
  • ImageForestingComponents[image,marker,r] generates a segmentation where pixels in each component are connected within the radius r. The default radius setting is 2.
  • ImageForestingComponents[image,marker,{r1,r2}] specifies different radii in vertical and horizontal directions.

Background & Context

  • ImageForestingComponents returns an array of integers obtained through application of the image foresting transform (IFT). This transform provides a way to segment (separate) images into indexed components, each of which contains pixels having a similar color. The image foresting transform operates by constructing a graph in which neighboring pixels are joined by edges having weights proportional to the similarity of their colors and then partitioning this graph.
  • Like other segmentation functions, ImageForestingComponents returns a label array in which each pixel is replaced by an integer corresponding to the component in which that pixel appears. A characteristic of ImageForestingComponents is that every pixel is assigned to some component. This means there is no separate background. Unlike some other segmentation schemes, ImageForestingComponents works in full color space without converting to intensity values.
  • The image foresting transform is particularly good at segmenting images in which there is a high contrast between the segments to be separated.
  • Other image segmentation functions include MorphologicalComponents and ClusteringComponents. The array returned by ImageForestingComponents may be visualized using Colorize and related functions.


open allclose all

Basic Examples  (2)

Segment a color image:

Segment components in a 3D volume:

Scope  (2)

Use a set of marker positions as the marker:

Use a marker image:

Separate objects in an image:

Use a larger connectivity radius:

Use a horizontally long connectivity:

Use a vertically long connectivity:

Applications  (4)

Segment an image using a set of seeds:

Determine a region of interest in a 3D image with ImageForestingComponents using markers:

Use this mask to highlight the organs in the image:

Use a rectangular neighborhood to segment lines of a text:

Segment different words in a group of text:

Segment lines of text:

Wolfram Research (2010), ImageForestingComponents, Wolfram Language function, (updated 2014).


Wolfram Research (2010), ImageForestingComponents, Wolfram Language function, (updated 2014).


Wolfram Language. 2010. "ImageForestingComponents." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014.


Wolfram Language. (2010). ImageForestingComponents. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_imageforestingcomponents, author="Wolfram Research", title="{ImageForestingComponents}", year="2014", howpublished="\url{}", note=[Accessed: 13-July-2024 ]}


@online{reference.wolfram_2024_imageforestingcomponents, organization={Wolfram Research}, title={ImageForestingComponents}, year={2014}, url={}, note=[Accessed: 13-July-2024 ]}