Man Linux: Main Page and Category List

NAME

       im_compass,  im_rank_image,  im_maxvalue,  im_lindetect,  im_gradient -
       extract features from an image with a rotating input mask

SYNOPSIS

       #include <vips/vips.h>

       int im_rank_image(in, out, n, index)
       IMAGE **in;
       IMAGE *out;
       int n;
       int index;

       int im_maxvalue(in, out, n)
       IMAGE **in;
       IMAGE *out;
       int n;

       int im_compass(in, out, mask)
       IMAGE *in, *out;
       INTMASK *mask;

       int im_lindetect(in, out, mask)
       IMAGE *in, *out;
       INTMASK *mask;

       int im_gradient(in, out, mask)
       IMAGE *in, *out;
       INTMASK *mask;

DESCRIPTION

       im_rank_image() sorts the input  images  pixel-wise,  then  outputs  an
       image in which each pixel is selected from the sorted list by the index
       parameter. For example, if index is zero, then each output  pixel  will
       be the minimum of all the corresponding input pixels.  It works for any
       uncoded, non-complex image type. All input images must match  in  size,
       format, and number of bands.

       These  functions  convolve the image pointed by the image descriptor in
       with the mask pointed by mask and put the result in the  image  pointed
       by out.

       The    mask   structure   INTMASK   is   returned   by   the   function
       im_read_imask(3), for integer mask  only.   Input  should  be  unsigned
       char;  processing  is  carried  out using look-up tables. The output is
       integer.  coefficients.  The size of the output image and the number of
       channels are the same as the corresponding of the input.

       The  output  image  is  the same size as the input. The edge pixels are
       calculated by expanding the input image using  im_embed(3)  in  mode  1
       (replicating  edge pixels) just enough so that the output can match the
       input.

       The output at each point is divided by scale and  then  the  offset  is
       added.  Both offset and scale are held in mask.

       im_maxvalue() is a convenience function: it is simply:

         im_rank_image( in, out, n, n - 1 )

       im_compass() convolves each point of the input byte image pointed by in
       with 8 masks.  The first  mask  is  the  entered  mask  and  the  seven
       remaining  masks  are  produced  by successive rotations of the entered
       mask by 45 degrees.  The maximum output of all masks at each  point  is
       written  to  the output integer IMAGE descriptor.  The function expects
       as input a square mask of odd size.

       im_lindetect() convolves each point of the input byte image pointed  by
       in  with  4  masks.   The  first mask is the entered mask and the three
       remaining masks are produced by successive  rotations  of  the  entered
       mask  by  45 degrees.  The maximum output of all masks at each point is
       written to the output integer IMAGE descriptor.  The  function  expects
       as input a square mask of odd size.

       im_gradient()  convolves  each point of the input byte image pointed by
       in with 2 masks; the entered mask and with a 90 degrees rotation of the
       entered  mask.   If  g1, g2 are the result of each convolution then for
       each point abs(g1) + abs(g2) is written to  the  output  integer  IMAGE
       descriptor.  The function expects as input a square mask of any size.

RETURN VALUE

       All functions returns 0 on success and -1 on error.

SEE ALSO

       im_readmask(3), im_conv(3).

COPYRIGHT

       N. Dessipris

AUTHOR

       N. Dessipris - 02/05/1991

                                  2 May 1991