2007-08-29 18:23:50 +02:00
|
|
|
.TH IM_COMPASS 3 "2 May 1991"
|
|
|
|
.SH NAME
|
|
|
|
im_compass, im_rank_image, im_maxvalue, im_lindetect, im_gradient \- extract features from an image with
|
|
|
|
a rotating input mask
|
|
|
|
.SH SYNOPSIS
|
|
|
|
#include <vips/vips.h>
|
|
|
|
|
|
|
|
int im_rank_image(in, out, n, index)
|
|
|
|
.br
|
|
|
|
IMAGE **in;
|
|
|
|
.br
|
|
|
|
IMAGE *out;
|
|
|
|
.br
|
|
|
|
int n;
|
|
|
|
.br
|
|
|
|
int index;
|
|
|
|
|
|
|
|
int im_maxvalue(in, out, n)
|
|
|
|
.br
|
|
|
|
IMAGE **in;
|
|
|
|
.br
|
|
|
|
IMAGE *out;
|
|
|
|
.br
|
|
|
|
int n;
|
|
|
|
|
|
|
|
int im_compass(in, out, mask)
|
|
|
|
.br
|
|
|
|
IMAGE *in, *out;
|
|
|
|
.br
|
|
|
|
INTMASK *mask;
|
|
|
|
|
|
|
|
int im_lindetect(in, out, mask)
|
|
|
|
.br
|
|
|
|
IMAGE *in, *out;
|
|
|
|
.br
|
|
|
|
INTMASK *mask;
|
|
|
|
|
|
|
|
int im_gradient(in, out, mask)
|
|
|
|
.br
|
|
|
|
IMAGE *in, *out;
|
|
|
|
.br
|
|
|
|
INTMASK *mask;
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.B 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
|
|
|
|
.B index
|
|
|
|
parameter. For example, if
|
|
|
|
.B 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.
|
|
|
|
|
2009-03-28 18:07:55 +01:00
|
|
|
The output image is the same size as the input. The edge pixels are calculated
|
|
|
|
by expanding the input image using
|
|
|
|
.B im_embed(3)
|
|
|
|
in mode 1 (replicating edge pixels) just enough so that the output can match
|
|
|
|
the input.
|
2007-08-29 18:23:50 +02:00
|
|
|
|
|
|
|
The output at each point is divided by scale and then the offset is added.
|
|
|
|
Both offset and scale are held in mask.
|
|
|
|
|
|
|
|
.B im_maxvalue()
|
|
|
|
is a convenience function: it is simply:
|
|
|
|
|
|
|
|
im_rank_image( in, out, n, n - 1 )
|
|
|
|
|
|
|
|
.B 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.
|
|
|
|
|
|
|
|
.B 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.
|
|
|
|
|
|
|
|
.B 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.
|
|
|
|
.SH RETURN VALUE
|
|
|
|
All functions returns 0 on success and -1 on error.
|
|
|
|
.SH SEE\ ALSO
|
|
|
|
im_readmask(3), im_conv(3).
|
|
|
|
.SH COPYRIGHT
|
|
|
|
.br
|
|
|
|
N. Dessipris
|
|
|
|
.SH AUTHOR
|
|
|
|
N. Dessipris \- 02/05/1991
|