NAME
rotate - rotates an image
SYNOPSIS
#include "CVIPtoolkit.h"
#include "CVIPgeometry.h"
Image *rotate( Image *input_Image, float degree)
<input> - a pointer to an Image structure
<degree> - amount to rotate image (1 - 360)
PATH
$CVIPHOME/GEOMETRY/rotate.c
DESCRIPTION
This function rotates the image by the degree specified.The
transformation equation used are
X=xcos(rads)+ysin(rads); Y=-xsin(rads)+ycos(rads);
where X=shifted x co-ordinate Y=shifted y co-
ordinate rads=number of radians to be rotated
For the 4 corners of the image,the shifted co-ordinates
are found out and from that the new image size can be
calculated .For each co-ordinate in the new image the
corresponding co-ordinate in the old image is calculated,
if it falls with in the range of the old image size,
the corresponding pixel value is copied,otherwise
the pixel value is set to zero.
TYPES AND CONSTANTS
#define pi 3.141592
RETURN VALUES
Pointer to the rotated image
HISTORY
History information copied from the old to the new
image
EXAMPLE
#include <CVIPtoolkit.h>
#include <CVIPimage.h>
#include <CVIPdef.h>
#include <CVIPgeometry.h>
#include <CVIPconvert.h>
#include <CVIPview.h>
#define VIEWER "picture"
#define VIDEO_APP "SunVideo &"
void main()
{
Image *cvipImage;
IMAGE_FORMAT format;
char *inputfile,*outputfile;
setDisplay_Image(VIEWER, "Default");
print_CVIP("\n\t\tEnter the Input File Name: ");
inputfile =(char *) getString_CVIP();
format = getFormat_CVIP(inputfile);
cvipImage = read_Image(inputfile, 1);
view_Image(cvipImage, inputfile);
free(inputfile);
/*the following call rotates the image by 90
degrees */
cvipImage = rotate(cvipImage,90);
print_CVIP("\n\t\tEnter the Output File Name: ");
outputfile = getString_CVIP();
view_Image(cvipImage,outputfile);
write_Image(cvipImage,outputfile,CVIP_NO,CVIP_NO,format,1);
free(outputfile);
}
SEE ALSO
libgeometry
AUTHOR
Copyright (C) 1996 SIUE - by Scott E. Umbaugh and
Sreenivas Makam.