Man Linux: Main Page and Category List

NAME

       im_similarity_area,  im_similarity - apply a similarity transform to an
       image

SYNOPSIS

       #include <vips/vips.h>

       int im_similarity_area(in, out, s, a, dx, dy, x, y, w, h)
       IMAGE *in, *out;
       double s, a, dx, dy;
       int x, y;
       int w, h;

       int im_similarity(in, out, s, a, dx, dy)
       IMAGE *in, *out;
       double s, a, dx, dy;

DESCRIPTION

       im_similarity_area() applies a similarity transformation on  the  image
       held  by  the  IMAGE  descriptor in and puts the result at the location
       pointed by the IMAGE descriptor out. in many have any number of  bands,
       be any size, and have any non-complex type.

       The  transformation  is  described by s, a, dx, dy.  The point (x,y) in
       the input is mapped onto point (X,Y) in the output by

            X = s * x - a * y + dx      Y = a * x + s * y + dy

       s and a do not correspond to scale and angle of the transformation; the
       actual scale and angle are given by the equations:

            scale = sqrt(s*s + a*a)      angle = arctan(s/a).

       The area of the output image given by x, y, w, h is generated. (0,0) is
       the position of the  transformed  top-left-hand  corner  of  the  input
       image.   Function  im_similarity_area  resamples  the transformed image
       using bilinear interpolation.

       im_similarity works exactly as im_similarity_area, but calculates x, y,
       w, h for you such that the rectangle described just encloses all of the
       transformed input pixels.

RETURN VALUE

       The functions return 0 on success and -1 on error.

BUGS

       As with most resamplers, im_similarity performs poorly at the edges  of
       images.

SEE ALSO

       similarity(1), similarity_area(1)

AUTHORS

       N. Dessipris - 13/01/1992
       J.Ph. Laurent - 12/12/92
       J. Cupitt - 22/02/93

                                13 January 1992