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;
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.