Image Warping

Overview

// global functions

void
cv::cuda::buildWarpAffineMaps(
    InputArray M,
    bool inverse,
    Size dsize,
    OutputArray xmap,
    OutputArray ymap,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::buildWarpPerspectiveMaps(
    InputArray M,
    bool inverse,
    Size dsize,
    OutputArray xmap,
    OutputArray ymap,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::pyrDown(
    InputArray src,
    OutputArray dst,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::pyrUp(
    InputArray src,
    OutputArray dst,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::remap(
    InputArray src,
    OutputArray dst,
    InputArray xmap,
    InputArray ymap,
    int interpolation,
    int borderMode = BORDER_CONSTANT,
    Scalar borderValue = Scalar(),
    Stream& stream = Stream::Null()
    );

void
cv::cuda::resize(
    InputArray src,
    OutputArray dst,
    Size dsize,
    double fx = 0,
    double fy = 0,
    int interpolation = INTER_LINEAR,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::rotate(
    InputArray src,
    OutputArray dst,
    Size dsize,
    double angle,
    double xShift = 0,
    double yShift = 0,
    int interpolation = INTER_LINEAR,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::warpAffine(
    InputArray src,
    OutputArray dst,
    InputArray M,
    Size dsize,
    int flags = INTER_LINEAR,
    int borderMode = BORDER_CONSTANT,
    Scalar borderValue = Scalar(),
    Stream& stream = Stream::Null()
    );

void
cv::cuda::warpPerspective(
    InputArray src,
    OutputArray dst,
    InputArray M,
    Size dsize,
    int flags = INTER_LINEAR,
    int borderMode = BORDER_CONSTANT,
    Scalar borderValue = Scalar(),
    Stream& stream = Stream::Null()
    );

Detailed Documentation

Global Functions

void
cv::cuda::buildWarpAffineMaps(
    InputArray M,
    bool inverse,
    Size dsize,
    OutputArray xmap,
    OutputArray ymap,
    Stream& stream = Stream::Null()
    )

Builds transformation maps for affine transformation.

Parameters:

M 2x3 transformation matrix.
inverse Flag specifying that M is an inverse transformation ( dst=>src ).
dsize Size of the destination image.
xmap X values with CV_32FC1 type.
ymap Y values with CV_32FC1 type.
stream Stream for the asynchronous version.

See also:

cuda::warpAffine, cuda::remap

void
cv::cuda::buildWarpPerspectiveMaps(
    InputArray M,
    bool inverse,
    Size dsize,
    OutputArray xmap,
    OutputArray ymap,
    Stream& stream = Stream::Null()
    )

Builds transformation maps for perspective transformation.

Parameters:

M 3x3 transformation matrix.
inverse Flag specifying that M is an inverse transformation ( dst=>src ).
dsize Size of the destination image.
xmap X values with CV_32FC1 type.
ymap Y values with CV_32FC1 type.
stream Stream for the asynchronous version.

See also:

cuda::warpPerspective, cuda::remap

void
cv::cuda::pyrDown(
    InputArray src,
    OutputArray dst,
    Stream& stream = Stream::Null()
    )

Smoothes an image and downsamples it.

Parameters:

src Source image.
dst Destination image. Will have Size((src.cols+1)/2, (src.rows+1)/2) size and the same type as src .
stream Stream for the asynchronous version.

See also:

pyrDown

void
cv::cuda::pyrUp(
    InputArray src,
    OutputArray dst,
    Stream& stream = Stream::Null()
    )

Upsamples an image and then smoothes it.

Parameters:

src Source image.
dst Destination image. Will have Size(src.cols*2, src.rows*2) size and the same type as src .
stream Stream for the asynchronous version.
void
cv::cuda::remap(
    InputArray src,
    OutputArray dst,
    InputArray xmap,
    InputArray ymap,
    int interpolation,
    int borderMode = BORDER_CONSTANT,
    Scalar borderValue = Scalar(),
    Stream& stream = Stream::Null()
    )

Applies a generic geometrical transformation to an image.

The function transforms the source image using the specified map:

\[\texttt{dst} (x,y) = \texttt{src} (xmap(x,y), ymap(x,y))\]

Values of pixels with non-integer coordinates are computed using the bilinear interpolation.

Parameters:

src Source image.
dst Destination image with the size the same as xmap and the type the same as src .
xmap X values. Only CV_32FC1 type is supported.
ymap Y values. Only CV_32FC1 type is supported.
interpolation Interpolation method (see resize ). INTER_NEAREST , INTER_LINEAR and INTER_CUBIC are supported for now.
borderMode Pixel extrapolation method (see borderInterpolate ). BORDER_REFLECT101 , BORDER_REPLICATE , BORDER_CONSTANT , BORDER_REFLECT and BORDER_WRAP are supported for now.
borderValue Value used in case of a constant border. By default, it is 0.
stream Stream for the asynchronous version.

See also:

remap

void
cv::cuda::resize(
    InputArray src,
    OutputArray dst,
    Size dsize,
    double fx = 0,
    double fy = 0,
    int interpolation = INTER_LINEAR,
    Stream& stream = Stream::Null()
    )

Resizes an image.

Parameters:

src Source image.
dst Destination image with the same type as src . The size is dsize (when it is non-zero) or the size is computed from src.size() , fx , and fy .
dsize

Destination image size. If it is zero, it is computed as:

\[\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\]

Either dsize or both fx and fy must be non-zero.

fx

Scale factor along the horizontal axis. If it is zero, it is computed as:

\[\texttt{(double)dsize.width/src.cols}\]
fy

Scale factor along the vertical axis. If it is zero, it is computed as:

\[\texttt{(double)dsize.height/src.rows}\]
interpolation Interpolation method. INTER_NEAREST , INTER_LINEAR and INTER_CUBIC are supported for now.
stream Stream for the asynchronous version.

See also:

resize

void
cv::cuda::rotate(
    InputArray src,
    OutputArray dst,
    Size dsize,
    double angle,
    double xShift = 0,
    double yShift = 0,
    int interpolation = INTER_LINEAR,
    Stream& stream = Stream::Null()
    )

Rotates an image around the origin (0,0) and then shifts it.

Parameters:

src Source image. Supports 1, 3 or 4 channels images with CV_8U , CV_16U or CV_32F depth.
dst Destination image with the same type as src . The size is dsize .
dsize Size of the destination image.
angle Angle of rotation in degrees.
xShift Shift along the horizontal axis.
yShift Shift along the vertical axis.
interpolation Interpolation method. Only INTER_NEAREST , INTER_LINEAR , and INTER_CUBIC are supported.
stream Stream for the asynchronous version.

See also:

cuda::warpAffine

void
cv::cuda::warpAffine(
    InputArray src,
    OutputArray dst,
    InputArray M,
    Size dsize,
    int flags = INTER_LINEAR,
    int borderMode = BORDER_CONSTANT,
    Scalar borderValue = Scalar(),
    Stream& stream = Stream::Null()
    )

Applies an affine transformation to an image.

Parameters:

src Source image. CV_8U , CV_16U , CV_32S , or CV_32F depth and 1, 3, or 4 channels are supported.
dst Destination image with the same type as src . The size is dsize .
M 2x3 transformation matrix.
dsize Size of the destination image.
flags Combination of interpolation methods (see resize) and the optional flag WARP_INVERSE_MAP specifying that M is an inverse transformation ( dst=>src ). Only INTER_NEAREST , INTER_LINEAR , and INTER_CUBIC interpolation methods are supported.
borderMode  
borderValue  
stream Stream for the asynchronous version.

See also:

warpAffine

void
cv::cuda::warpPerspective(
    InputArray src,
    OutputArray dst,
    InputArray M,
    Size dsize,
    int flags = INTER_LINEAR,
    int borderMode = BORDER_CONSTANT,
    Scalar borderValue = Scalar(),
    Stream& stream = Stream::Null()
    )

Applies a perspective transformation to an image.

Parameters:

src Source image. CV_8U , CV_16U , CV_32S , or CV_32F depth and 1, 3, or 4 channels are supported.
dst Destination image with the same type as src . The size is dsize .
M 3x3 transformation matrix.
dsize Size of the destination image.
flags Combination of interpolation methods (see resize ) and the optional flag WARP_INVERSE_MAP specifying that M is the inverse transformation ( dst => src ). Only INTER_NEAREST , INTER_LINEAR , and INTER_CUBIC interpolation methods are supported.
borderMode  
borderValue  
stream Stream for the asynchronous version.

See also:

warpPerspective