The C++ interface for dilate. More...

array dilate (const array &image, const array &mask)

Detailed Description

The C++ interface for dilate.

The dilation function takes two pieces of data as inputs. The first is the input image to be morphed, and the second is the mask indicating the neighborhood around each pixel to match.

In dilation, for each pixel, the mask is centered at the pixel. If the center pixel of the mask matches the corresponding pixel on the image, then the mask is accepted. If the center pixels do not matches, then the mask is ignored and no changes are made.

Dilation supports n-channel images (ie. 3D matrices). However each tile must be 2D and will be the same for all channels. If you wish to use separate masks for channels, you can extract the channel, apply the operation and store the resulting channel back in the array.

Image dilation is useful for bluring and smoothing edges.

For further reference, see: Dilation (morphology)

// Convert [0-255] image to logical
img_in = img_in > 127;
// Dilate an image, 8-neighbor connectivity
array mask8 = constant(1,3,3);
array img_out = dilate(img_in, mask8);
// Dilate an image, 4-neighbor connectivity
const float h_mask4[] = { 0.0, 1.0, 0.0,
1.0, 1.0, 1.0,
0.0, 1.0, 0.0 };
array mask4 = array(3,3,h_mask4);
array img_out = dilate(img_in, mask4);
Mask (8-neighbor connectivity)
Mask (8-neighbor connectivity)

Function Documentation

array af::dilate ( const array &  image,
const array &  mask 
[in]imageinput image to be dilated
[in]maskindicating neighborhood to match
dilated image
mask must be square and odd length (3x3,5x5,7x7,...)