| .TH IM_DILATE 3 "14 May 1991" |
| .SH NAME |
| im_dilate, im_dilate_raw, im_erode, im_erode_raw \- perform morphological operations on a white object against a black background |
| .SH SYNOPSIS |
| .B #include <vips/vips.h> |
| |
| .B int im_dilate(in, out, m) |
| .br |
| .B IMAGE *in, *out; |
| .br |
| .B INTMASK *m; |
| |
| .B int im_erode(in, out, m) |
| .br |
| .B IMAGE *in, *out; |
| .br |
| .B INTMASK *m; |
| |
| .B int im_dilate_raw(in, out, m) |
| .br |
| .B IMAGE *in, *out; |
| .br |
| .B INTMASK *m; |
| |
| .B int im_erode_raw(in, out, m) |
| .br |
| .B IMAGE *in, *out; |
| .br |
| .B INTMASK *m; |
| |
| .SH DESCRIPTION |
| The above functions are applications of morphological operations on one |
| channel binary images ie. images with pixels that are either 0 (black) or 255 |
| (white). All functions assume that input images contain white objects against |
| a black background. |
| |
| Mask coefficients can be either 0 (for object) or 255 (for background) or 128 |
| (for do not care). |
| |
| The mask should have odd length sides and the origin of the mask is at location |
| (m-\>xsize/2,m-\>ysize/2) integer division. All algorithms have been based on |
| the book "Fundamentals of Digital Image Processing" by A. Jain, pp 384-388, |
| Prentice-Hall, 1989. Essentially, |
| .B im_dilate(3) |
| sets pixels in the output if |
| *any* part of the mask matches, whereas |
| .B im_erode(3) |
| sets pixels only if *all* |
| of the mask matches. |
| |
| .B im_dilate(3) |
| dilates the image pointed by in, according to the mask pointed by m and writes |
| the result in the location pointed by the IMAGE descriptor out. The output |
| image is the same size as the input, in the manner of |
| .B im_conv(3). |
| |
| .B im_dilate_raw(3) |
| works as im_dilate(3), but does not expand the input. |
| |
| .B im_erode(3) |
| erodes the image pointed by in, according to the mask pointed by m and writes |
| the result in the location pointed by the IMAGE descriptor out. Again, the |
| output image is forced to have the same size as the input. |
| |
| .B im_erode_raw(3) |
| works as im_erode(3), but does not expand the input. |
| |
| See the boolean operations |
| .B im_andimage(3), |
| .B im_orimage(3) |
| and |
| .B im_eorimage(3) |
| for analogues |
| of the usual set difference and set union operations. |
| |
| .SH RETURN VALUE |
| All functions returns 0 on success and -1 on error. |
| .SH SEE ALSO |
| im_read_imask(3), im_conv(3), im_andimage(3), im_rotate_imask(3). |
| .SH COPYRIGHT |
| 1991-1995, Birkbeck College and the National Gallery |