Table Of Contents

Previous topic

cudawarping. CUDA-accelerated Image Warping

Next topic

shape. Shape Distance and Matching

Image Warping

cuda::remap

Applies a generic geometrical transformation to an image.

C++: void cuda::remap(InputArray src, OutputArray dst, InputArray xmap, InputArray ymap, int interpolation, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream& stream=Stream::Null())
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.

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.

See also

remap()

cuda::resize

Resizes an image.

C++: void cuda::resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR, Stream& stream=Stream::Null())
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()

cuda::warpAffine

Applies an affine transformation to an image.

C++: void 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())
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 .
  • M2x3 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.
  • stream – Stream for the asynchronous version.

See also

warpAffine()

cuda::buildWarpAffineMaps

Builds transformation maps for affine transformation.

C++: void cuda::buildWarpAffineMaps(InputArray M, bool inverse, Size dsize, OutputArray xmap, OutputArray ymap, Stream& stream=Stream::Null())
Parameters:
  • M2x3 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.

cuda::warpPerspective

Applies a perspective transformation to an image.

C++: void 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())
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 .
  • M3x3 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.
  • stream – Stream for the asynchronous version.

cuda::buildWarpPerspectiveMaps

Builds transformation maps for perspective transformation.

C++: void cuda::buildWarpAffineMaps(InputArray M, bool inverse, Size dsize, OutputArray xmap, OutputArray ymap, Stream& stream=Stream::Null())
Parameters:
  • M3x3 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.

cuda::buildWarpPlaneMaps

Builds plane warping maps.

C++: void cuda::buildWarpPlaneMaps(Size src_size, Rect dst_roi, InputArray K, InputArray R, InputArray T, float scale, OutputArray map_x, OutputArray map_y, Stream& stream=Stream::Null())
Parameters:
  • stream – Stream for the asynchronous version.

cuda::buildWarpCylindricalMaps

Builds cylindrical warping maps.

C++: void cuda::buildWarpCylindricalMaps(Size src_size, Rect dst_roi, InputArray K, InputArray R, float scale, OutputArray map_x, OutputArray map_y, Stream& stream=Stream::Null())
Parameters:
  • stream – Stream for the asynchronous version.

cuda::buildWarpSphericalMaps

Builds spherical warping maps.

C++: void cuda::buildWarpSphericalMaps(Size src_size, Rect dst_roi, InputArray K, InputArray R, float scale, OutputArray map_x, OutputArray map_y, Stream& stream=Stream::Null())
Parameters:
  • stream – Stream for the asynchronous version.

cuda::rotate

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

C++: void cuda::rotate(InputArray src, OutputArray dst, Size dsize, double angle, double xShift=0, double yShift=0, int interpolation=INTER_LINEAR, Stream& stream=Stream::Null())
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.

cuda::pyrDown

Smoothes an image and downsamples it.

C++: void cuda::pyrDown(InputArray src, OutputArray dst, Stream& stream=Stream::Null())
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()

cuda::pyrUp

Upsamples an image and then smoothes it.

C++: void cuda::pyrUp(InputArray src, OutputArray dst, Stream& stream=Stream::Null())
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.

See also

pyrUp()