The distance transform provides a metric or measure of the separation
of points in the image. The bwdist
function calculates
the distance between each pixel that is set to off
(0
)
and the nearest nonzero pixel for binary images.
The bwdist
function supports several distance
metrics, listed in the following table.
Distance Metrics
Distance Metric  Description  Illustration 

Euclidean  The Euclidean distance is the straightline distance between two pixels. 

City Block  The city block distance metric measures the path between the pixels based on a 4connected neighborhood. Pixels whose edges touch are 1 unit apart; pixels diagonally touching are 2 units apart. 

Chessboard  The chessboard distance metric measures the path between the pixels based on an 8connected neighborhood. Pixels whose edges or corners touch are 1 unit apart. 

QuasiEuclidean  The quasiEuclidean metric measures the total Euclidean distance along a set of horizontal, vertical, and diagonal line segments. 

This example creates a binary image containing two intersecting circular objects.
center1 = 10; center2 = center1; dist = sqrt(2*(2*center1)^2); radius = dist/2 * 1.4; lims = [floor(center11.2*radius) ceil(center2+1.2*radius)]; [x,y] = meshgrid(lims(1):lims(2)); bw1 = sqrt((xcenter1).^2 + (ycenter1).^2) <= radius; bw2 = sqrt((xcenter2).^2 + (ycenter2).^2) <= radius; bw = bw1  bw2; figure, imshow(bw), title('bw')
To compute the distance transform of the complement of the binary
image, use the bwdist
function. In the image of
the distance transform, note how the centers of the two circular areas
are white.
D = bwdist(~bw); figure, imshow(D,[]), title('Distance transform of ~bw')