Rotate

Rotate an image

Supported Technologies

SSE2

Synopsis

FwStatus   fwiRotate_8u_C1R ( const Fw8u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw8u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_8u_C3R ( const Fw8u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw8u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_8u_C4R ( const Fw8u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw8u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_8u_AC4R ( const Fw8u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw8u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_16u_C1R ( const Fw16u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw16u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_16u_C3R ( const Fw16u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw16u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_16u_C4R ( const Fw16u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw16u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_16u_AC4R ( const Fw16u * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw16u * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_32f_C1R ( const Fw32f * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw32f * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_32f_C3R ( const Fw32f * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw32f * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_32f_C4R ( const Fw32f * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw32f * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_32f_AC4R ( const Fw32f * pSrc, FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw32f * pDst, int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_8u_P3R ( const Fw8u * const pSrc[3], FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw8u * const pDst[3], int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_8u_P4R ( const Fw8u * const pSrc[4], FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw8u * const pDst[4], int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_16u_P3R ( const Fw16u * const pSrc[3], FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw16u * const pDst[3], int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_16u_P4R ( const Fw16u * const pSrc[4], FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw16u * const pDst[4], int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_32f_P3R ( const Fw32f* const pSrc[3], FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw32f* const pDst[3], int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );
FwStatus   fwiRotate_32f_P4R ( const Fw32f* const pSrc[4], FwiSize srcSize, int srcStep, FwiRect srcRoi, Fw32f* const pDst[4], int dstStep, FwiRect dstRoi, double angle, double xShift, double yShift, int interpolation );

Parameters

angle   Specifies the rotation angle in degrees, counterclockwise.
dstRoi   Destination image ROI.
dstStep   Destination buffer step size (width of the buffer in bytes).
interpolation   Specifies the method of interpolation.
pDst   Pointer to a location in a destination buffer.
pDst[3]   Pointer to a location in a three-channel planar destination buffer (array values point to a location in each plane).
pDst[4]   Pointer to a location in a four-channel planar destination buffer (array values point to a location in each plane).
pSrc   Pointer to a location in a source buffer.
pSrc[3]   Pointer to a location in a three-channel planar source buffer (array values point to a location in each plane).
pSrc[4]   Pointer to a location in a four-channel planar source buffer (array values point to a location in each plane).
srcRoi   Source image ROI.
srcSize   Source image size.
srcStep   Source buffer step size (width of the buffer in bytes).
xShift   Shift value for X axis direction.
yShift   Shift value for Y axis direction.

Description

These functions step through an ROI in a source buffer, rotate the source data around (0,0) by a specified angle, shift the x-y coordinates according to the x and y shift values, and map the data into a destination ROI using a specified method of interpolation.

The FWI_SMOOTH_EDGE option is available when the destination ROI contains the transformed image.

Depending on the x-y coordinate values and the amount of rotation, the rotated image may be clipped by the destination ROI boundary.

A positive angle value indicates counterclockwise rotation when source data is ordered downward for height.

The following interpolation modes are available.

 FWI_INTER_NN: nearest neighbor interpolation
 FWI_INTER_LINEAR: linear interpolation
 FWI_INTER_CUBIC: cubic interpolation