This commit is contained in:
John Cupitt 2010-11-18 14:09:56 +00:00
parent d4e7af5f58
commit dfc7f859cd
3 changed files with 37 additions and 6 deletions

4
TODO
View File

@ -1,7 +1,3 @@
- check that the section intros for the new docs include all the material from
the old reference guide
- nip2-7.22.3 on Windows is not adding the path you load from to the set of

View File

@ -102,7 +102,8 @@
*
* These operations load, save and process mask objects. Masks are used as
* paramaters to convolution and morphology operators, and to represent
* matrices.
* matrices. There are two types of matrix: integer #INTMASK and double
* precision floating point #DOUBLEMASK.
*
* This API is horrible and clunky. Surely it will be replaced soon.
*/

View File

@ -50,7 +50,41 @@
* @stability: Stable
* @include: vips/vips.h
*
* Erode, dilate, rank, count lines, number regions, etc.
* The morphological functions search images
* for particular patterns of pixels, specified with the mask argument,
* either adding or removing pixels when they find a match. They are useful
* for cleaning up images --- for example, you might threshold an image, and
* then use one of the morphological functions to remove all single isolated
* pixels from the result.
*
* If you combine the morphological operators with the mask rotators
* im_rotate_imask45(), for example) and apply them repeatedly, you
* can achieve very complicated effects: you can thin, prune, fill, open edges,
* close gaps, and many others. For example, see `Fundamentals of Digital
* Image Processing' by A. Jain, pp 384-388, Prentice-Hall, 1989 for more
* ideas.
*
* Beware that VIPS reverses the usual image processing convention, by
* assuming white objects (non-zero pixels) on a black background (zero
* pixels).
*
* The mask you give to the morphological functions should contain only the
* values 0 (for background), 128 (for don't care) and 255 (for object). The
* mask must have odd length sides --- the origin of the mask is taken to be
* the centre value. For example, the mask:
*
* 3 3
* 128 255 128
* 255 0 255
* 128 255 128
*
* applied to an image with im_erode(), will find all black pixels
* 4-way connected with white pixels. Essentially, im_dilate()
* sets pixels in the output if any part of the mask matches, whereas
* im_erode() sets pixels only if all of the mask matches.
*
* See im_andimage(), im_orimage() and im_eorimage()
* for analogues of the usual set difference and set union operations.
*/
/* Args to im_profile.