EBImage (version 4.14.2)

distmap: Distance map transform

Description

Computes the distance map transform of a binary image. The distance map is a matrix which contains for each pixel the distance to its nearest background pixel.

Usage

distmap(x, metric=c('euclidean', 'manhattan'))

Arguments

x
An Image object or an array. x is considered as a binary image, whose pixels of value 0 are considered as background ones and other pixels as foreground ones.
metric
A character indicating which metric to use, L1 distance (manhattan) or L2 distance (euclidean). Default is euclidean.

Value

An Image object or an array, with pixels containing the distances to the nearest background points.

Details

A fast algorithm of complexity O(M*N*log(max(M,N))), where (M,N) are the dimensions of x, is used to compute the distance map.

References

M. N. Kolountzakis, K. N. Kutulakos. Fast Computation of the Euclidean Distance Map for Binary Images, Infor. Proc. Letters 43 (1992).

Examples

  x = readImage(system.file("images", "shapes.png", package="EBImage"))
  display(x)
  dx = distmap(x)
  display(dx/10, title='Distance map of x')