RotateCenter

Rotates an image about an arbitrary center.

Syntax

Case 1: Operation on pixel-order data

IppStatus ippiRotateCenter_<mod>(const Ipp<datatype>* pSrc, IppiSize srcSize, int srcStep, IppiRect srcRoi, Ipp<datatype>* pDst, int dstStep, IppiRect dstRoi, double angle, double xCenter, double yCenter, int interpolation);

Supported values for mod:

8u_C1R

16u_C1R

32f_C1R

64f_C1R

8u_C3R

16u_C3R

32f_C3R

64f_C3R

8u_C4R

16u_C4R

32f_C4R

64f_C4R

8u_AC4R

16u_AC4R

32f_AC4R

64f_AC4R

Case 2: Operation on planar-order data

IppStatus ippiRotateCenter_<mod>(const Ipp<datatype>* const pSrc[3], IppiSize srcSize, int srcStep, IppiRect srcRoi, Ipp<datatype>* const pDst[3], int dstStep, IppiRect dstRoi, double angle, double xCenter, double yCenter, int interpolation);

Supported values for mod:

8u_P3R

16u_P3R

32f_P3R

64f_P3R

IppStatus ippiRotateCenter_<mod>(const Ipp<datatype>* const pSrc[4], IppiSize srcSize, int srcStep, IppiRect srcRoi, Ipp<datatype>* const pDst[4], int dstStep, IppiRect dstRoi, double angle, double xCenter, double yCenter, int interpolation);

Supported values for mod:

8u_P4R

16u_P4R

32f_P4R

64f_P4R

Parameters

pSrc

Pointer to the source image origin. An array of separate pointers to each plane for data in planar format.

srcSize

Size in pixels of the source image.

srcStep

Distance in bytes between starts of consecutive lines in the source image buffer.

srcRoi

Region of interest in the source image (of the IppiRect type).

pDst

Pointer to the destination image origin. An array of separate pointers to each plane for data in planar format.

dstStep

Distance in bytes between starts of consecutive lines in the destination image buffer.

dstRoi

Region of interest in the destination image (of the IppiRect type).

angle

The angle of rotation in degrees.

xCenter, yCenter

Center of rotation coordinates.

interpolation

Specifies the interpolation mode. Possible values are:

IPPI_INTER_NN - nearest neighbor interpolation

IPPI_INTER_LINEAR - linear interpolation

IPPI_INTER_CUBIC - cubic interpolation

IPPI_INTER_CUBIC2P_CATMULLROM - Catmull-Rom spline

the following flag is used additionally to the above modes:

IPPI_SMOOTH_EDGE - edge smoothing

Description

The function ippiRotateCenter is declared in the ippi.h file. It operates with ROI (see ROI Processing in Geometric Transforms).

This function rotates the ROI of the source image by angle degrees (counterclockwise for positive angle values) around the point with coordinates xCenter, yCenter. The origin of the source image is implied to be in the top left corner. The result is resampled using the interpolation mode specified by the interpolation parameter, and written to the destination image ROI.

Example “Using the function ippiRotateCenter” shows how to use the function ippiRotateCenter_8u_C1R.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or a warning.

ippStsNullPtrErr

Indicates an error condition if one of the specified pointers is NULL.

ippStsSizeErr

Indicates an error condition if any image dimension has zero or negative value.

ippStsStepErr

Indicates an error condition if srcStep or dstStep has a zero or negative value.

ippStsInterpolationErr

Indicates an error condition if interpolation has an illegal value.

ippStsRectErr

Indicates an error condition if width or height of the intersection of the srcRoi and source image is less than or equal to 1.

ippStsWrongIntersectQuad

Indicates a warning that no operation is performed if the transformed source ROI has no intersection with the destination ROI.

Using the function ippiRotateCenter

IppiSize srcSize = { 4, 4 }, dstSize = { 6, 6 };
IppiRect srcRect = { 0, 0, 4, 4};
IppiRect dstRect = { 0, 0, 6, 6};
Ipp8u src[4*4] = {4, 4, 4, 4,
      3, 3, 3, 3,
      2, 2, 2, 2,
      1, 1, 1, 1};
Ipp8u dst[6*6];
double angle = -45.0;
double xCenter = 1.0;
double yCenter = 4.0;
 
ippiSet_8u_C1R ( 0, dst, 6, dstSize);
 
ippiRotateCenter_8u_C1R (src, srcSize, 4, srcRect, dst, 6, dstRect, angle,
                         xCenter, yCenter, IPPI_INTER_NN);

		
Result:
 
4 4 4 4
3 3 3 3
2 2 2 2    src
1 1 1 1
 
0 0 0 0 0 0
0 0 0 4 0 0
0 0 2 3 4 0
0 0 1 2 3 0    dst
0 0 0 1 0 0
0 0 0 0 0 0
 

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.