/* Copyright 2009-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * * NOTICE TO LICENSEE: * * The source code and/or documentation ("Licensed Deliverables") are * subject to NVIDIA intellectual property rights under U.S. and * international Copyright laws. * * The Licensed Deliverables contained herein are PROPRIETARY and * CONFIDENTIAL to NVIDIA and are being provided under the terms and * conditions of a form of NVIDIA software license agreement by and * between NVIDIA and Licensee ("License Agreement") or electronically * accepted by Licensee. Notwithstanding any terms or conditions to * the contrary in the License Agreement, reproduction or disclosure * of the Licensed Deliverables to any third party without the express * written consent of NVIDIA is prohibited. * * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THESE LICENSED DELIVERABLES. * * U.S. Government End Users. These Licensed Deliverables are a * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT * 1995), consisting of "commercial computer software" and "commercial * computer software documentation" as such terms are used in 48 * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government * only as a commercial end item. Consistent with 48 C.F.R.12.212 and * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all * U.S. Government End Users acquire the Licensed Deliverables with * only those rights set forth herein. * * Any use of the Licensed Deliverables in individual and commercial * software must include, in the user documentation and internal * comments to the code, the above Disclaimer and U.S. Government End * Users Notice. */ #ifndef NV_NPPI_GEOMETRY_TRANSFORMS_H #define NV_NPPI_GEOMETRY_TRANSFORMS_H /** * \file nppi_geometry_transforms.h * Image Geometry Transform Primitives. */ #include "nppdefs.h" #ifdef __cplusplus extern "C" { #endif /** @defgroup image_geometry_transforms Geometry Transforms * @ingroup nppi * * Routines manipulating an image geometry. * * These functions can be found in the nppig library. Linking to only the sub-libraries that you use can significantly * save link time, application load time, and CUDA runtime startup time when using dynamic libraries. * * \section geometric_transform_api Geometric Transform API Specifics * * This section covers some of the unique API features common to the * geometric transform primitives. * * \subsection geometric_transform_roi Geometric Transforms and ROIs * * Geometric transforms operate on source and destination ROIs. The way * these ROIs affect the processing of pixels differs from other (non * geometric) image-processing primitives: Only pixels in the intersection * of the destination ROI and the transformed source ROI are being * processed. * * The typical processing proceedes as follows: * -# Transform the rectangular source ROI (given in source image coordinates) * into the destination image space. This yields a quadrilateral. * -# Write only pixels in the intersection of the transformed source ROI and * the destination ROI. * * \subsection geometric_transforms_interpolation Pixel Interpolation * * The majority of image geometry transform operation need to perform a * resampling of the source image as source and destination pixels are not * coincident. * * NPP supports the following pixel inerpolation modes (in order from fastest to * slowest and lowest to highest quality): * - nearest neighbor * - linear interpolation * - cubic convolution * - supersampling * - interpolation using Lanczos window function * * @{ * */ /** @defgroup image_resize_square_pixel ResizeSqrPixel * * ResizeSqrPixel functions attempt to choose source pixels that would approximately represent the center of the destination pixels. * It does so by using the following scaling formula to select source pixels for interpolation: * * \code * nAdjustedXFactor = 1.0 / nXFactor; * nAdjustedYFactor = 1.0 / nYFactor; * nAdjustedXShift = nXShift * nAdjustedXFactor + ((1.0 - nAdjustedXFactor) * 0.5); * nAdjustedYShift = nYShift * nAdjustedYFactor + ((1.0 - nAdjustedYFactor) * 0.5); * nSrcX = nAdjustedXFactor * nDstX - nAdjustedXShift; * nSrcY = nAdjustedYFactor * nDstY - nAdjustedYShift; * \endcode * * ResizeSqrPixel functions support the following interpolation modes: * * \code * NPPI_INTER_NN * NPPI_INTER_LINEAR * NPPI_INTER_CUBIC * NPPI_INTER_CUBIC2P_BSPLINE * NPPI_INTER_CUBIC2P_CATMULLROM * NPPI_INTER_CUBIC2P_B05C03 * NPPI_INTER_SUPER * NPPI_INTER_LANCZOS * \endcode * * In the ResizeSqrPixel functions below source image clip checking is handled as follows: * * If the source pixel fractional x and y coordinates are greater than or equal to oSizeROI.x and less than oSizeROI.x + oSizeROI.width and * greater than or equal to oSizeROI.y and less than oSizeROI.y + oSizeROI.height then the source pixel is considered to be within * the source image clip rectangle and the source image is sampled. Otherwise the source image is not sampled and a destination pixel is not * written to the destination image. * * \section resize_error_codes Error Codes * The resize primitives return the following error codes: * * - ::NPP_WRONG_INTERSECTION_ROI_ERROR indicates an error condition if * srcROIRect has no intersection with the source image. * - ::NPP_RESIZE_NO_OPERATION_ERROR if either destination ROI width or * height is less than 1 pixel. * - ::NPP_RESIZE_FACTOR_ERROR Indicates an error condition if either nXFactor or * nYFactor is less than or equal to zero or in the case of NPPI_INTER_SUPER are not both downscaling. * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * - ::NPP_SIZE_ERROR if source size width or height is less than 2 pixels. * * @{ * */ /** @name GetResizeRect * Returns NppiRect which represents the offset and size of the destination rectangle that would be generated by * resizing the source NppiRect by the requested scale factors and shifts. * * @{ * */ /** * \param oSrcROI Region of interest in the source image. * \param pDstRect User supplied host memory pointer to an NppiRect structure that will be filled in by this function with the region of interest in the destination image. * \param nXFactor Factor by which x dimension is changed. * \param nYFactor Factor by which y dimension is changed. * \param nXShift Source pixel shift in x-direction. * \param nYShift Source pixel shift in y-direction. * \param eInterpolation The type of eInterpolation to perform resampling. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes */ NppStatus nppiGetResizeRect(NppiRect oSrcROI, NppiRect *pDstRect, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** @} */ /** @name ResizeSqrPixel * Resizes images. * *

Common parameters for nppiResizeSqrPixel packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the source image. * \param oSrcROI Region of interest in the source image. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Region of interest in the destination image. * \param nXFactor Factor by which x dimension is changed. * \param nYFactor Factor by which y dimension is changed. * \param nXShift Source pixel shift in x-direction. * \param nYShift Source pixel shift in y-direction. * \param eInterpolation The type of eInterpolation to perform resampling. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes * *

Common parameters for nppiResizeSqrPixel planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the source image. * \param oSrcROI Region of interest in the source image. * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstROI Region of interest in the destination image. * \param nXFactor Factor by which x dimension is changed. * \param nYFactor Factor by which y dimension is changed. * \param nXShift Source pixel shift in x-direction. * \param nYShift Source pixel shift in y-direction. * \param eInterpolation The type of eInterpolation to perform resampling. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes * * @{ * */ /** * 1 channel 8-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 8-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 8-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 8-bit unsigned image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 8-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_8u_P3R_Ctx(const Npp8u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_P3R(const Npp8u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 8-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_8u_P4R_Ctx(const Npp8u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_P4R(const Npp8u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 1 channel 16-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 16-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 16-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 16-bit unsigned image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 16-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_16u_P3R_Ctx(const Npp16u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16u_P3R(const Npp16u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 16-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_16u_P4R_Ctx(const Npp16u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16u_P4R(const Npp16u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 1 channel 16-bit signed image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16s_C1R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16s_C1R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 16-bit signed image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16s_C3R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16s_C3R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 16-bit signed image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16s_C4R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16s_C4R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 16-bit signed image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_16s_AC4R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16s_AC4R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 16-bit signed planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_16s_P3R_Ctx(const Npp16s * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16s_P3R(const Npp16s * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 16-bit signed planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_16s_P4R_Ctx(const Npp16s * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_16s_P4R(const Npp16s * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16s * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 1 channel 32-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 32-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 32-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 32-bit floating point image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 32-bit floating point planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_32f_P3R_Ctx(const Npp32f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_32f_P3R(const Npp32f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 32-bit floating point planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_32f_P4R_Ctx(const Npp32f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_32f_P4R(const Npp32f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 1 channel 64-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_64f_C1R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_64f_C1R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 64-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_64f_C3R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_64f_C3R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 64-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_64f_C4R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_64f_C4R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 64-bit floating point image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel packed pixel functions. * */ NppStatus nppiResizeSqrPixel_64f_AC4R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_64f_AC4R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 3 channel 64-bit floating point planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_64f_P3R_Ctx(const Npp64f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_64f_P3R(const Npp64f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst[3], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * 4 channel 64-bit floating point planar image resize. * * For common parameter descriptions, see Common parameters for nppiResizeSqrPixel planar pixel functions. * */ NppStatus nppiResizeSqrPixel_64f_P4R_Ctx(const Npp64f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_64f_P4R(const Npp64f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst[4], int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation); /** * Buffer size for \ref nppiResizeSqrPixel_8u_C1R_Advanced. * \param oSrcROI \ref roi_specification. * \param oDstROI \ref roi_specification. * \param hpBufferSize Required buffer size. Important: hpBufferSize is a * host pointer. \ref general_scratch_buffer. * \param eInterpolationMode The type of eInterpolation to perform resampling. Currently only supports NPPI_INTER_LANCZOS3_Advanced. * \return NPP_NULL_POINTER_ERROR if hpBufferSize is 0 (NULL), \ref roi_error_codes. */ NppStatus nppiResizeAdvancedGetBufferHostSize_8u_C1R(NppiSize oSrcROI, NppiSize oDstROI, int * hpBufferSize /* host pointer */, int eInterpolationMode); /** * 1 channel 8-bit unsigned image resize. This primitive matches the behavior of GraphicsMagick++. * * \param pSrc \ref source_image_pointer. * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the source image. * \param oSrcROI Region of interest in the source image. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Region of interest in the destination image. * \param nXFactor Factor by which x dimension is changed. * \param nYFactor Factor by which y dimension is changed. * \param pBuffer Device buffer that is used during calculations. * \param eInterpolationMode The type of eInterpolation to perform resampling. Currently only supports NPPI_INTER_LANCZOS3_Advanced. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes */ NppStatus nppiResizeSqrPixel_8u_C1R_Advanced_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, Npp8u * pBuffer, int eInterpolationMode, NppStreamContext nppStreamCtx); NppStatus nppiResizeSqrPixel_8u_C1R_Advanced(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, Npp8u * pBuffer, int eInterpolationMode); /** @} */ /** @} image_resize_square_pixel */ /** @defgroup image_resize Resize * * Resize functions use scale factor automatically determined by the width and height ratios of input and output \ref roi_specification. * * This simplified function replaces the previous version which was deprecated in an earlier release. In this function the resize * scale factor is automatically determined by the width and height ratios of oSrcRectROI and oDstRectROI. If either of those * parameters intersect their respective image sizes then pixels outside the image size width and height will not be processed. * * Resize supports the following interpolation modes: * * \code * NPPI_INTER_NN * NPPI_INTER_LINEAR * NPPI_INTER_CUBIC * NPPI_INTER_SUPER * NPPI_INTER_LANCZOS * \endcode * * \section resize_error_codes Error Codes * The resize primitives return the following error codes: * * - ::NPP_RESIZE_NO_OPERATION_ERROR if either destination ROI width or * height is less than 1 pixel. * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * - ::NPP_SIZE_ERROR if source size width or height is less than 2 pixels. * * @{ * */ /** @name GetResizeTiledSourceOffset * Helper function that can be used when tiling a destination image with a source image using multiple Resize calls. * oSrcRectROI and oDstRectROI widths and heights should remain unmodified even if they will overlap source and destination * image sizes. oDstRectROI offsets should be set to the destination offset of the new tile. * Resize function processing will stop when source or destination image sizes are reached, any unavailable source image pixels * beyond source image size will be border replicated. There is no particular association assumed between source and destination image locations. * The values of oSrcRectROI.x and oSrcRectROI.y are ignored during this function call. * * @{ * */ /** * * \param oSrcRectROI Region of interest in the source image (may overlap source image size width and height). * \param oDstRectROI Region of interest in the destination image (may overlap destination image size width and height). * \param pNewSrcRectOffset Pointer to host memory NppiPoint object that will contain the new source image ROI offset * to be used in the nppiResize call to generate that tile. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes */ NppStatus nppiGetResizeTiledSourceOffset(NppiRect oSrcRectROI, NppiRect oDstRectROI, NppiPoint * pNewSrcRectOffset); /** @} */ /** @name Resize * Resizes images. * *

Common parameters for nppiResize packed pixel functions include:

* * \param pSrc \ref source_image_pointer to origin of source image. * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the entire source image. * \param oSrcRectROI Region of interest in the source image (may overlap source image size width and height). * \param pDst \ref destination_image_pointer to origin of destination image. * \param nDstStep \ref destination_image_line_step. * \param oDstSize Size in pixels of the entire destination image. * \param oDstRectROI Region of interest in the destination image (may overlap destination image size width and height). * \param eInterpolation The type of eInterpolation to perform resampling (16f versions do not support Lanczos interpolation). * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes * *

Common parameters for nppiResize planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane origin pointers). * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the entire source image. * \param oSrcRectROI Region of interest in the source image (may overlap source image size width and height). * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane origin pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstSize Size in pixels of the entire destination image. * \param oDstRectROI Region of interest in the destination image (may overlap destination image size width and height). * \param eInterpolation The type of eInterpolation to perform resampling. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes * * @{ * */ /** * 1 channel 8-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_8u_C1R_Ctx(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_8u_C1R(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 8-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_8u_C3R_Ctx(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_8u_C3R(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 8-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_8u_C4R_Ctx(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_8u_C4R(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 8-bit unsigned image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_8u_AC4R_Ctx(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_8u_AC4R(const Npp8u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 8-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_8u_P3R_Ctx(const Npp8u * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_8u_P3R(const Npp8u * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 8-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_8u_P4R_Ctx(const Npp8u * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_8u_P4R(const Npp8u * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp8u * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 1 channel 16-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16u_C1R_Ctx(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16u_C1R(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 16-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16u_C3R_Ctx(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16u_C3R(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit unsigned image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16u_C4R_Ctx(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16u_C4R(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit unsigned image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16u_AC4R_Ctx(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16u_AC4R(const Npp16u * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 16-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_16u_P3R_Ctx(const Npp16u * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16u_P3R(const Npp16u * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit unsigned planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_16u_P4R_Ctx(const Npp16u * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16u_P4R(const Npp16u * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16u * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 1 channel 16-bit signed image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16s_C1R_Ctx(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16s_C1R(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 16-bit signed image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16s_C3R_Ctx(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16s_C3R(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit signed image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16s_C4R_Ctx(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16s_C4R(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit signed image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16s_AC4R_Ctx(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16s_AC4R(const Npp16s * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 16-bit signed planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_16s_P3R_Ctx(const Npp16s * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16s_P3R(const Npp16s * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit signed planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_16s_P4R_Ctx(const Npp16s * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16s_P4R(const Npp16s * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16s * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 1 channel 16-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16f_C1R_Ctx(const Npp16f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16f_C1R(const Npp16f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 16-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16f_C3R_Ctx(const Npp16f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16f_C3R(const Npp16f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 16-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_16f_C4R_Ctx(const Npp16f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_16f_C4R(const Npp16f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp16f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 1 channel 32-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_32f_C1R_Ctx(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_32f_C1R(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 32-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_32f_C3R_Ctx(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_32f_C3R(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 32-bit floating point image resize. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_32f_C4R_Ctx(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_32f_C4R(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 32-bit floating point image resize not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResize packed pixel functions. * */ NppStatus nppiResize_32f_AC4R_Ctx(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_32f_AC4R(const Npp32f * pSrc, int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst, int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 3 channel 32-bit floating point planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_32f_P3R_Ctx(const Npp32f * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_32f_P3R(const Npp32f * pSrc[3], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst[3], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** * 4 channel 32-bit floating point planar image resize. * * For common parameter descriptions, see Common parameters for nppiResize planar pixel functions. * */ NppStatus nppiResize_32f_P4R_Ctx(const Npp32f * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResize_32f_P4R(const Npp32f * pSrc[4], int nSrcStep, NppiSize oSrcSize, NppiRect oSrcRectROI, Npp32f * pDst[4], int nDstStep, NppiSize oDstSize, NppiRect oDstRectROI, int eInterpolation); /** @} */ /** @} image_resize */ /** @defgroup image_resize_batch ResizeBatch * * ResizeBatch functions use scale factor automatically determined by the width and height ratios for each pair of input / output images in provided batches. * * In this function as in nppiResize the resize scale factor is automatically determined by the width and height ratios of oSrcRectROI and oDstRectROI. If either of those * parameters intersect their respective image sizes then pixels outside the image size width and height will not be processed. * Details of the resize operation are described above in the Resize section. ResizeBatch generally takes the same parameter list as * Resize except that there is a list of N instances of those parameters (N > 1) and that list is passed in device memory. A convenient * data structure is provided that allows for easy initialization of the parameter lists. The only restriction on these functions is * that there is one single source ROI rectangle and one single destination ROI rectangle which are applied respectively to each image * in the batch. The primary purpose of this function is to provide improved performance for batches of smaller images as long as GPU * resources are available. Therefore it is recommended that the function not be used for very large images as there may not be resources * available for processing several large images simultaneously. * A single set of oSrcRectROI and oDstRectROI values are applied to each source image and destination image in the batch in the nppiResizeBatch * version of the function while per image specific oSrcRectROI and oDstRectROI values can be used in the nppiResizeBatch_Advanced version of the function. * Source and destination image sizes may vary but oSmallestSrcSize and oSmallestDstSize must be set to the smallest * source and destination image sizes in the batch. The parameters in the NppiResizeBatchCXR structure represent the corresponding * per-image nppiResize parameters for each image in the nppiResizeBatch functions and the NppiImageDescriptor and NppiResizeBatchROI_Advanced structures represent * the corresponding per-image nppiResize parameters for the nppiResizeBatch_Advanced functions. The NppiResizeBatchCXR or * NppiImageDescriptor and NppiResizeBatchROI_Advanced arrays must be in device memory. * * ResizeBatch supports the following interpolation modes: * * \code * NPPI_INTER_NN * NPPI_INTER_LINEAR * NPPI_INTER_CUBIC * NPPI_INTER_SUPER * \endcode * * Below is the diagram of batch resize functions for variable ROIs. Figure shows the flexibility that the API can handle. * The ROIs for source and destination images can be any rectangular width and height that reflects the needed resize factors, inside or beyond the image boundary. * * \image html resize.png * * \section resize_error_codes Error Codes * The resize primitives return the following error codes: * * - ::NPP_RESIZE_NO_OPERATION_ERROR if either destination ROI width or * height is less than 1 pixel. * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * - ::NPP_SIZE_ERROR if source size width or height is less than 2 pixels. * *

Common parameters for nppiResizeBatch functions include:

* * \param oSmallestSrcSize Size in pixels of the entire smallest source image width and height, may be from different images. * \param oSrcRectROI Region of interest in the source images (may overlap source image size width and height). * \param oSmallestDstSize Size in pixels of the entire smallest destination image width and height, may be from different images. * \param oDstRectROI Region of interest in the destination images (may overlap destination image size width and height). * \param eInterpolation The type of eInterpolation to perform resampling. Currently limited to NPPI_INTER_NN, NPPI_INTER_LINEAR, NPPI_INTER_CUBIC, or NPPI_INTER_SUPER. * \param pBatchList Device memory pointer to nBatchSize list of NppiResizeBatchCXR structures. * \param pBatchSrc Device pointer to NppiImageDescriptor list of source image descriptors. User needs to intialize this structure and copy it to device. * \param pBatchDst Device pointer to NppiImageDescriptor list of destination image descriptors. User needs to intialize this structure and copy it to device. * \param pBatchROI Device pointer to NppiResizeBatchROI_Advanced list of per-image variable ROIs. User needs to initialize this structure and copy it to device. * \param nBatchSize Number of NppiResizeBatchCXR structures in this call (must be > 1). * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes * *

Common parameters for nppiResizeBatchAdvanced functions include:

* * \param nMaxWidth The maximum width of all destination ROIs * \param nMaxHeight The maximum height of all destination ROIs * \param pBatchSrc Device pointer to NppiImageDescriptor list of source image descriptors. User needs to intialize this structure and copy it to device. * \param pBatchDst Device pointer to NppiImageDescriptor list of destination image descriptors. User needs to intialize this structure and copy it to device. * \param pBatchROI Device pointer to NppiResizeBatchROI_Advanced list of per-image variable ROIs. User needs to initialize this structure and copy it to device. * \param nBatchSize Number of images in a batch. * \param eInterpolation The type of eInterpolation to perform resampling. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref resize_error_codes * * @{ * */ typedef struct { const void * pSrc; /* device memory pointer */ int nSrcStep; void * pDst; /* device memory pointer */ int nDstStep; } NppiResizeBatchCXR; /** * Data structure for variable ROI image resizing. * */ typedef struct { NppiRect oSrcRectROI; NppiRect oDstRectROI; } NppiResizeBatchROI_Advanced; /** * 1 channel 8-bit image resize batch. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_8u_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 8-bit image resize batch. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_8u_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 8-bit image resize batch. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_8u_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 8-bit image resize batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_8u_AC4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_AC4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 32-bit floating point image resize batch. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_32f_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 32-bit floating point image resize batch. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_32f_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 32-bit floating point image resize batch. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_32f_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 32-bit floating point image resize batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeBatch functions. * */ NppStatus nppiResizeBatch_32f_AC4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_AC4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiSize oSmallestDstSize, NppiRect oDstRectROI, int eInterpolation, NppiResizeBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 8-bit image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_8u_C1R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_C1R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 3 channel 8-bit image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_8u_C3R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_C3R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 4 channel 8-bit image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_8u_C4R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_C4R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 4 channel 8-bit image resize batch for variable ROI not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_8u_AC4R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_8u_AC4R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 1 channel 16-bit floating point image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_16f_C1R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_16f_C1R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 3 channel 16-bit floating point image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_16f_C3R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_16f_C3R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 4 channel 16-bit floating point image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_16f_C4R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_16f_C4R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 1 channel 32-bit floating point image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_32f_C1R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_C1R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 3 channel 32-bit floating point image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_32f_C3R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_C3R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 4 channel 32-bit floating point image resize batch for variable ROI. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_32f_C4R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_C4R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** * 4 channel 32-bit floating point image resize batch for variable ROI not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiResizeBatchAdvanced functions. * */ NppStatus nppiResizeBatch_32f_AC4R_Advanced_Ctx(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiResizeBatch_32f_AC4R_Advanced(int nMaxWidth, int nMaxHeight, NppiImageDescriptor * pBatchSrc, NppiImageDescriptor * pBatchDst, NppiResizeBatchROI_Advanced * pBatchROI, unsigned int nBatchSize, int eInterpolation); /** @} image_resize_batch */ /** @defgroup image_remap Remap * * Routines providing remap functionality. * * Remap supports the following interpolation modes: * * NPPI_INTER_NN * NPPI_INTER_LINEAR * NPPI_INTER_CUBIC * NPPI_INTER_CUBIC2P_BSPLINE * NPPI_INTER_CUBIC2P_CATMULLROM * NPPI_INTER_CUBIC2P_B05C03 * NPPI_INTER_LANCZOS * * Remap chooses source pixels using pixel coordinates explicitely supplied in two 2D device memory image arrays pointed to by the pXMap and pYMap pointers. * The pXMap array contains the X coordinated and the pYMap array contains the Y coordinate of the corresponding source image pixel to * use as input. These coordinates are in floating point format so fraction pixel positions can be used. The coordinates of the source * pixel to sample are determined as follows: * * nSrcX = pxMap[nDstX, nDstY] * nSrcY = pyMap[nDstX, nDstY] * * In the Remap functions below source image clip checking is handled as follows: * * If the source pixel fractional x and y coordinates are greater than or equal to oSizeROI.x and less than oSizeROI.x + oSizeROI.width and * greater than or equal to oSizeROI.y and less than oSizeROI.y + oSizeROI.height then the source pixel is considered to be within * the source image clip rectangle and the source image is sampled. Otherwise the source image is not sampled and a destination pixel is not * written to the destination image. * * \section remap_error_codes Error Codes * The remap primitives return the following error codes: * * - ::NPP_WRONG_INTERSECTION_ROI_ERROR indicates an error condition if * srcROIRect has no intersection with the source image. * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * *

Common parameters for nppiRemap packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the source image. * \param oSrcROI Region of interest in the source image. * \param pXMap Device memory pointer to 2D image array of X coordinate values to be used when sampling source image. * \param nXMapStep pXMap image array line step in bytes. * \param pYMap Device memory pointer to 2D image array of Y coordinate values to be used when sampling source image. * \param nYMapStep pYMap image array line step in bytes. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstSizeROI Region of interest size in the destination image. * \param eInterpolation The type of eInterpolation to perform resampling. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref remap_error_codes * *

Common parameters for nppiRemap planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array. * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the source image. * \param oSrcROI Region of interest in the source image. * \param pXMap Device memory pointer to 2D image array of X coordinate values to be used when sampling source image. * \param nXMapStep pXMap image array line step in bytes. * \param pYMap Device memory pointer to 2D image array of Y coordinate values to be used when sampling source image. * \param nYMapStep pYMap image array line step in bytes. * \param pDst \ref destination_planar_image_pointer_array. * \param nDstStep \ref destination_image_line_step. * \param oDstSizeROI Region of interest size in the destination image. * \param eInterpolation The type of eInterpolation to perform resampling. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref remap_error_codes * * @{ * */ /** @name Remap * Remaps images. * * @{ * */ /** * 1 channel 8-bit unsigned image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 8-bit unsigned image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 8-bit unsigned image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 8-bit unsigned image remap not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 8-bit unsigned planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_8u_P3R_Ctx(const Npp8u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_8u_P3R(const Npp8u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 8-bit unsigned planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_8u_P4R_Ctx(const Npp8u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_8u_P4R(const Npp8u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp8u * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 1 channel 16-bit unsigned image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 16-bit unsigned image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 16-bit unsigned image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 16-bit unsigned image remap not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 16-bit unsigned planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_16u_P3R_Ctx(const Npp16u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16u_P3R(const Npp16u * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 16-bit unsigned planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_16u_P4R_Ctx(const Npp16u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16u_P4R(const Npp16u * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16u * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 1 channel 16-bit signed image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16s_C1R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16s_C1R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 16-bit signed image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16s_C3R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16s_C3R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 16-bit signed image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16s_C4R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16s_C4R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 16-bit signed image remap not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_16s_AC4R_Ctx(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16s_AC4R(const Npp16s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 16-bit signed planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_16s_P3R_Ctx(const Npp16s * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16s_P3R(const Npp16s * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 16-bit signed planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_16s_P4R_Ctx(const Npp16s * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_16s_P4R(const Npp16s * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp16s * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 1 channel 32-bit floating point image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 32-bit floating point image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 32-bit floating point image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 32-bit floating point image remap not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 32-bit floating point planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_32f_P3R_Ctx(const Npp32f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_32f_P3R(const Npp32f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 32-bit floating point planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_32f_P4R_Ctx(const Npp32f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_32f_P4R(const Npp32f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp32f * pXMap, int nXMapStep, const Npp32f * pYMap, int nYMapStep, Npp32f * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 1 channel 64-bit floating point image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_64f_C1R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_64f_C1R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 64-bit floating point image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_64f_C3R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_64f_C3R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 64-bit floating point image remap. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_64f_C4R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_64f_C4R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 64-bit floating point image remap not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiRemap packed pixel functions. * */ NppStatus nppiRemap_64f_AC4R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_64f_AC4R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst, int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 3 channel 64-bit floating point planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_64f_P3R_Ctx(const Npp64f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_64f_P3R(const Npp64f * const pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst[3], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** * 4 channel 64-bit floating point planar image remap. * * For common parameter descriptions, see Common parameters for nppiRemap planar pixel functions. * */ NppStatus nppiRemap_64f_P4R_Ctx(const Npp64f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRemap_64f_P4R(const Npp64f * const pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const Npp64f * pXMap, int nXMapStep, const Npp64f * pYMap, int nYMapStep, Npp64f * pDst[4], int nDstStep, NppiSize oDstSizeROI, int eInterpolation); /** @} */ /** @} image_remap */ /** @defgroup image_rotate Rotate * * Rotates an image around the origin (0,0) and then shifts it. * * \section rotate_error_codes Rotate Error Codes * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1. * - ::NPP_WRONG_INTERSECTION_ROI_ERROR indicates an error condition if * srcROIRect has no intersection with the source image. * - ::NPP_WRONG_INTERSECTION_QUAD_WARNING indicates a warning that no * operation is performed if the transformed source ROI does not * intersect the destination ROI. * * @{ * */ /** @defgroup rotate_utility_functions Rotate Utility Functions * The set of rotate utility functions. * @{ * */ /** * Compute shape of rotated image. * * \param oSrcROI Region-of-interest of the source image. * \param aQuad Array of 2D points. These points are the locations of the corners * of the rotated ROI. * \param nAngle The rotation nAngle. * \param nShiftX Post-rotation shift in x-direction * \param nShiftY Post-rotation shift in y-direction * \return \ref roi_error_codes. */ NppStatus nppiGetRotateQuad(NppiRect oSrcROI, double aQuad[4][2], double nAngle, double nShiftX, double nShiftY); /** * Compute bounding-box of rotated image. * \param oSrcROI Region-of-interest of the source image. * \param aBoundingBox Two 2D points representing the bounding-box of the rotated image. All four points * from nppiGetRotateQuad are contained inside the axis-aligned rectangle spanned by the the two * points of this bounding box. * \param nAngle The rotation angle. * \param nShiftX Post-rotation shift in x-direction. * \param nShiftY Post-rotation shift in y-direction. * * \return \ref roi_error_codes. */ NppStatus nppiGetRotateBound(NppiRect oSrcROI, double aBoundingBox[2][2], double nAngle, double nShiftX, double nShiftY); /** @} rotate_utility_functions */ /** @defgroup rotate_ Rotate * The set of rotate functions available in the library. * *

Common parameters for nppiRotate functions include:

* * \param pSrc \ref source_image_pointer. * \param nSrcStep \ref source_image_line_step. * \param oSrcSize Size in pixels of the source image * \param oSrcROI Region of interest in the source image. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Region of interest in the destination image. * \param nAngle The angle of rotation in degrees. * \param nShiftX Shift along horizontal axis * \param nShiftY Shift along vertical axis * \param eInterpolation The type of interpolation to perform resampling * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref rotate_error_codes * * @{ * */ /** * 8-bit unsigned image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 3 channel 8-bit unsigned image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 4 channel 8-bit unsigned image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 4 channel 8-bit unsigned image rotate ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 16-bit unsigned image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 3 channel 16-bit unsigned image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 4 channel 16-bit unsigned image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 4 channel 16-bit unsigned image rotate ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 32-bit float image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 3 channel 32-bit float image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 4 channel 32-bit float image rotate. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** * 4 channel 32-bit float image rotate ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiRotate functions. * */ NppStatus nppiRotate_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiRotate_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, double nAngle, double nShiftX, double nShiftY, int eInterpolation); /** @} rotate */ /** @} image_rotate */ /** @defgroup image_mirror Mirror * Mirrors images horizontally, vertically or diagonally. * * \section mirror_error_codes Mirror Error Codes * - ::NPP_MIRROR_FLIP_ERROR if flip has an illegal value. * - ::NPP_SIZE_ERROR if in_place ROI width or height are not even numbers. * *

Common parameters for nppiMirror non-inplace and inplace functions include:

* * \param pSrcDst \ref in_place_image_pointer for inplace functions. * \param nSrcDstStep \ref in_place_image_line_step for inplace functions. * \param pSrc \ref source_image_pointer for non-inplace functions. * \param nSrcStep \ref source_image_line_step for non-inplace functions. * \param pDst \ref destination_image_pointer for non-inplace functions. * \param nDstStep \ref destination_image_line_step for non-inplace functions. * \param oROI \ref roi_specification (in_place ROI widths and heights must be even numbers). * \param flip Specifies the axis about which the image is to be mirrored. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref mirror_error_codes * * @{ * */ /** * 1 channel 8-bit unsigned image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_C1R_Ctx(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_C1R(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 8-bit unsigned in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_C1IR_Ctx(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_C1IR(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 8-bit unsigned image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_C3R_Ctx(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_C3R(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 8-bit unsigned in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_C3IR_Ctx(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_C3IR(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 8-bit unsigned image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_C4R_Ctx(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_C4R(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 8-bit unsigned in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_C4IR_Ctx(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_C4IR(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 8-bit unsigned image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_AC4R_Ctx(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_AC4R(const Npp8u * pSrc, int nSrcStep, Npp8u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 8-bit unsigned in place image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_8u_AC4IR_Ctx(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_8u_AC4IR(Npp8u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 16-bit unsigned image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_C1R_Ctx(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_C1R(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 16-bit unsigned in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_C1IR_Ctx(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_C1IR(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 16-bit unsigned image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_C3R_Ctx(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_C3R(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 16-bit unsigned in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_C3IR_Ctx(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_C3IR(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit unsigned image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_C4R_Ctx(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_C4R(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit unsigned in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_C4IR_Ctx(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_C4IR(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit unsigned image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_AC4R_Ctx(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_AC4R(const Npp16u * pSrc, int nSrcStep, Npp16u * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit unsigned in place image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16u_AC4IR_Ctx(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16u_AC4IR(Npp16u * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 16-bit signed image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_C1R_Ctx(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_C1R(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 16-bit signed in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_C1IR_Ctx(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_C1IR(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 16-bit signed image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_C3R_Ctx(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_C3R(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 16-bit signed in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_C3IR_Ctx(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_C3IR(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit signed image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_C4R_Ctx(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_C4R(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit signed in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_C4IR_Ctx(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_C4IR(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit signed image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_AC4R_Ctx(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_AC4R(const Npp16s * pSrc, int nSrcStep, Npp16s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 16-bit signed in place image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_16s_AC4IR_Ctx(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_16s_AC4IR(Npp16s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 32-bit image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_C1R_Ctx(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_C1R(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 32-bit signed in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_C1IR_Ctx(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_C1IR(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 32-bit image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_C3R_Ctx(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_C3R(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 32-bit signed in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_C3IR_Ctx(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_C3IR(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_C4R_Ctx(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_C4R(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit signed in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_C4IR_Ctx(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_C4IR(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_AC4R_Ctx(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_AC4R(const Npp32s * pSrc, int nSrcStep, Npp32s * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit signed in place image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32s_AC4IR_Ctx(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32s_AC4IR(Npp32s * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 32-bit float image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_C1R_Ctx(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_C1R(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 1 channel 32-bit float in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_C1IR_Ctx(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_C1IR(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 32-bit float image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_C3R_Ctx(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_C3R(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 3 channel 32-bit float in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_C3IR_Ctx(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_C3IR(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit float image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_C4R_Ctx(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_C4R(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit float in place image mirror. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_C4IR_Ctx(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_C4IR(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit float image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_AC4R_Ctx(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_AC4R(const Npp32f * pSrc, int nSrcStep, Npp32f * pDst, int nDstStep, NppiSize oROI, NppiAxis flip); /** * 4 channel 32-bit float in place image mirror not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirror functions. * */ NppStatus nppiMirror_32f_AC4IR_Ctx(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip, NppStreamContext nppStreamCtx); NppStatus nppiMirror_32f_AC4IR(Npp32f * pSrcDst, int nSrcDstStep, NppiSize oROI, NppiAxis flip); /** @} image_mirror */ /** @defgroup mirror_batch MirrorBatch * Mirrors batches of images horizontally, vertically or diagonally. * * MirrorBatch generally takes the same parameter list as Mirror except that there is a list of N instances of those parameters (N > 1) * and that list is passed in device memory. A convenient data structure is provided that allows for easy initialization of the * parameter lists. The only restriction on these functions is that there is one single ROI and a single mirror flag which are * applied respectively to each image in the batch. The primary purpose of this function is to * provide improved performance for batches of smaller images as long as GPU resources are available. Therefore it is recommended * that the function not be used for very large images as there may not be resources available for processing several large images * simultaneously. * *

Common parameters for nppiMirrorBatch non-inplace and inplace functions include:

* * \param oSizeROI \ref roi_specification. * \param flip Specifies the axis about which the images are to be mirrored. * \param pBatchList Device memory pointer to nBatchSize list of NppiMirrorBatchCXR structures. * \param nBatchSize Number of NppiMirrorBatchCXR structures in this call (must be > 1). * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref mirror_error_codes * * @{ * */ typedef struct { const void * pSrc; /* device memory pointer, ignored for in place versions */ int nSrcStep; void * pDst; /* device memory pointer */ int nDstStep; } NppiMirrorBatchCXR; /** * 1 channel 32-bit float image mirror batch. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_C1R_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_C1R(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 1 channel 32-bit float in place image mirror batch. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_C1IR_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_C1IR(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 3 channel 32-bit float image mirror batch. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_C3R_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_C3R(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 3 channel 32-bit float in place image mirror batch. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_C3IR_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_C3IR(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 4 channel 32-bit float image mirror batch. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_C4R_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_C4R(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 4 channel 32-bit float in place image mirror batch. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_C4IR_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_C4IR(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 4 channel 32-bit float image mirror batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_AC4R_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_AC4R(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** * 4 channel 32-bit float in place image mirror batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiMirrorBatch functions. * */ NppStatus nppiMirrorBatch_32f_AC4IR_Ctx(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiMirrorBatch_32f_AC4IR(NppiSize oSizeROI, NppiAxis flip, NppiMirrorBatchCXR * pBatchList, int nBatchSize); /** @} mirror_batch */ /** @defgroup image_affine_transform Affine Transforms * The set of affine transform functions available in the library. * * \section affine_transform_error_codes Affine Transform Error Codes * * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_WRONG_INTERSECTION_ROI_ERROR Indicates an error condition if * oSrcROI has no intersection with the source image * - ::NPP_INTERPOLATION_ERROR Indicates an error condition if * interpolation has an illegal value * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid * - ::NPP_WRONG_INTERSECTION_QUAD_WARNING Indicates a warning that no * operation is performed if the transformed source ROI has no * intersection with the destination ROI * * @{ * */ /** @defgroup affine_transform_utility_functions Affine Transform Utility Functions * The set of affine transform utility functions. * @{ * */ /** * Computes affine transform coefficients based on source ROI and destination quadrilateral. * * The function computes the coefficients of an affine transformation that maps the * given source ROI (axis aligned rectangle with integer coordinates) to a quadrilateral * in the destination image. * * An affine transform in 2D is fully determined by the mapping of just three vertices. * This function's API allows for passing a complete quadrilateral effectively making the * prolem overdetermined. What this means in practice is, that for certain quadrilaterals it is * not possible to find an affine transform that would map all four corners of the source * ROI to the four vertices of that quadrilateral. * * The function circumvents this problem by only looking at the first three vertices of * the destination image quadrilateral to determine the affine transformation's coefficients. * If the destination quadrilateral is indeed one that cannot be mapped using an affine * transformation the functions informs the user of this situation by returning a * ::NPP_AFFINE_QUAD_INCORRECT_WARNING. * * \param oSrcROI The source ROI. This rectangle needs to be at least one pixel wide and * high. If either width or hight are less than one an ::NPP_RECTANGLE_ERROR is returned. * \param aQuad The destination quadrilateral. * \param aCoeffs The resulting affine transform coefficients. * \return Error codes: * - ::NPP_SIZE_ERROR Indicates an error condition if any image dimension * has zero or negative value * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid * - ::NPP_AFFINE_QUAD_INCORRECT_WARNING Indicates a warning when quad * does not conform to the transform properties. Fourth vertex is * ignored, internally computed coordinates are used instead */ NppStatus nppiGetAffineTransform(NppiRect oSrcROI, const double aQuad[4][2], double aCoeffs[2][3]); /** * Compute shape of transformed image. * * This method computes the quadrilateral in the destination image that * the source ROI is transformed into by the affine transformation expressed * by the coefficients array (aCoeffs). * * \param oSrcROI The source ROI. * \param aQuad The resulting destination quadrangle. * \param aCoeffs The afine transform coefficients. * \return Error codes: * - ::NPP_SIZE_ERROR Indicates an error condition if any image dimension * has zero or negative value * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid */ NppStatus nppiGetAffineQuad(NppiRect oSrcROI, double aQuad[4][2], const double aCoeffs[2][3]); /** * Compute bounding-box of transformed image. * * The method effectively computes the bounding box (axis aligned rectangle) of * the transformed source ROI (see nppiGetAffineQuad()). * * \param oSrcROI The source ROI. * \param aBound The resulting bounding box. * \param aCoeffs The afine transform coefficients. * \return Error codes: * - ::NPP_SIZE_ERROR Indicates an error condition if any image dimension * has zero or negative value * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid */ NppStatus nppiGetAffineBound(NppiRect oSrcROI, double aBound[2][2], const double aCoeffs[2][3]); /** @} affine_transform_utility_functions */ /** @defgroup affine_transform Affine Transform * Transforms (warps) an image based on an affine transform. * * The affine transform is given as a \f$2\times 3\f$ matrix C. A pixel location \f$(x, y)\f$ in the * source image is mapped to the location \f$(x', y')\f$ in the destination image. * The destination image coorodinates are computed as follows: * \f[ * x' = c_{00} * x + c_{01} * y + c_{02} \qquad * y' = c_{10} * x + c_{11} * y + c_{12} \qquad * C = \left[ \matrix{c_{00} & c_{01} & c_{02} \cr c_{10} & c_{11} & c_{12} } \right] * \f] * Affine transforms can be understood as a linear transformation (traditional * matrix multiplication) and a shift operation. The \f$2\times 2\f$ matrix * \f[ * L = \left[ \matrix{c_{00} & c_{01} \cr * c_{10} & c_{11} } \right] * \f] * represents the linear transform portion of the affine transformation. The * vector * \f[ * v = \left( \matrix{c_{02} \cr c_{12} } \right) * \f] * represents the post-transform shift, i.e. after the pixel location is transformed * by \f$L\f$ it is translated by \f$v\f$. * *

Common parameters for nppiWarpAffine packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Affine transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref affine_transform_error_codes * *

Common parameters for nppiWarpAffine planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_planar_image_pointer_array. (host memory array containing device memory image plane pointers) * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Affine transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref affine_transform_error_codes * * @{ * */ /** * Single-channel 8-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 8-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 8-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 8-bit unsigned affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 8-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_8u_P3R_Ctx(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_8u_P3R(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 8-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_8u_P4R_Ctx(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_8u_P4R(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 16-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 16-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 16-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 16-bit unsigned affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 16-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_16u_P3R_Ctx(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16u_P3R(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 16-bit unsigned affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_16u_P4R_Ctx(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16u_P4R(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 32-bit signed affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32s_C1R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32s_C1R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 32-bit signed affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32s_C3R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32s_C3R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit signed affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32s_C4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32s_C4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit signed affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32s_AC4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32s_AC4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 32-bit signed affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_32s_P3R_Ctx(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32s_P3R(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 32-bit signed affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_32s_P4R_Ctx(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32s_P4R(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 16-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16f_C1R_Ctx(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16f_C1R(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 16-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16f_C3R_Ctx(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16f_C3R(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 16-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_16f_C4R_Ctx(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_16f_C4R(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 32-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 32-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit floating-point affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 32-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_32f_P3R_Ctx(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32f_P3R(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 32-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_32f_P4R_Ctx(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_32f_P4R(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 64-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_64f_C1R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_64f_C1R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 64-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_64f_C3R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_64f_C3R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 64-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_64f_C4R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_64f_C4R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 64-bit floating-point affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffine packed pixel functions. * */ NppStatus nppiWarpAffine_64f_AC4R_Ctx(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_64f_AC4R(const Npp64f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 64-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_64f_P3R_Ctx(const Npp64f * aSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * aDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_64f_P3R(const Npp64f * aSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * aDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 64-bit floating-point affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffine planar pixel functions. * */ NppStatus nppiWarpAffine_64f_P4R_Ctx(const Npp64f * aSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * aDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffine_64f_P4R(const Npp64f * aSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp64f * aDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** @} affine_transform */ /** @defgroup affine_transform_batch Affine Transform Batch * * Details of the warp affine operation are described above in the WarpAffine section. WarpAffineBatch generally takes the same parameter list as * WarpAffine except that there is a list of N instances of those parameters (N > 1) and that list is passed in device memory. A convenient * data structure is provided that allows for easy initialization of the parameter lists. The aTransformedCoeffs array is for internal use only * and should not be directly initialized by the application. The only restriction on these functions is * that there is one single source ROI rectangle and one single destination ROI rectangle which are applied respectively to each image * in the batch. The primary purpose of this function is to provide improved performance for batches of smaller images as long as GPU * resources are available. Therefore it is recommended that the function not be used for very large images as there may not be resources * available for processing several large images simultaneously. * A single set of oSrcRectROI and oDstRectROI values are applied to each source image and destination image in the batch. * Source and destination image sizes may vary but oSmallestSrcSize must be set to the smallest * source and image size in the batch. The parameters in the NppiWarpAffineBatchCXR structure represent the corresponding * per-image nppiWarpAffine parameters for each image in the batch. The NppiWarpAffineBatchCXR array must be in device memory. * The nppiWarpAffineBatchInit function MUST be called AFTER the application has initialized the array of NppiWarpAffineBatchCXR structures * and BEFORE calling any of the nppiWarpAffineBatch functions to so that the aTransformedCoeffs array can be internally pre-initialized * for each image in the batch. The batch size passed to nppiWarpAffineBatchInit must match the batch size passed to the corresponding * warp affine batch function. * * * WarpAffineBatch supports the following interpolation modes: * * \code * NPPI_INTER_NN * NPPI_INTER_LINEAR * NPPI_INTER_CUBIC * \endcode * * \section Error Codes * The warp affine primitives return the following error codes: * * - ::NPP_RECTANGLE_ERROR if either destination ROI width or * height is less than 1 pixel. * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * - ::NPP_SIZE_ERROR if source size width or height is less than 2 pixels. * *

Common parameters for nppiWarpAffineBatch functions include:

* * \param oSmallestSrcSize Size in pixels of the entire smallest source image width and height, may be from different images. * \param oSrcRectROI Region of interest in the source images. * \param oDstRectROI Region of interest in the destination images. * \param eInterpolation The type of eInterpolation to perform resampling. Currently limited to NPPI_INTER_NN, NPPI_INTER_LINEAR, or NPPI_INTER_CUBIC. * \param pBatchList Device memory pointer to nBatchSize list of NppiWarpAffineBatchCXR structures. * \param nBatchSize Number of NppiWarpAffineBatchCXR structures in this call (must be > 1). * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes * * @{ * */ typedef struct { const void * pSrc; /* device memory pointer */ int nSrcStep; void * pDst; /* device memory pointer */ int nDstStep; Npp64f * pCoeffs; /* device memory pointer to the tranformation matrix with double precision floating-point coefficient values to be used for this image */ Npp64f aTransformedCoeffs[2][3]; /* FOR INTERNAL USE, DO NOT INITIALIZE */ } NppiWarpAffineBatchCXR; /** * Initializes the aTransformdedCoeffs array in pBatchList for each image in the list. * MUST be called before calling the corresponding warp affine batch function whenever any of the transformation matrices in the list have changed. * * \param pBatchList Device memory pointer to nBatchSize list of NppiWarpAffineBatchCXR structures. * \param nBatchSize Number of NppiWarpAffineBatchCXR structures in this call (must be > 1). * \param nppStreamCtx \ref application_managed_stream_context. */ NppStatus nppiWarpAffineBatchInit_Ctx(NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatchInit(NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 8-bit unsigned integer image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_8u_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_8u_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 8-bit unsigned integer image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_8u_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_8u_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 8-bit unsigned integer image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_8u_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_8u_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 8-bit unsigned integer image warp affine batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_8u_AC4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_8u_AC4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 16-bit floating point image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_16f_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_16f_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 16-bit floating point image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_16f_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_16f_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 16-bit floating point image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_16f_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_16f_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 32-bit floating point image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_32f_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_32f_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 32-bit floating point image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_32f_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_32f_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 32-bit floating point image warp affine batch. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_32f_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_32f_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 32-bit floating point image warp affine batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBatch functions. * */ NppStatus nppiWarpAffineBatch_32f_AC4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBatch_32f_AC4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpAffineBatchCXR * pBatchList, unsigned int nBatchSize); /** @} affine_transform_batch */ /** @defgroup backwards_affine_transform Backwards Affine Transform * Transforms (warps) an image based on an affine transform. * * The affine transform is given as a \f$2\times 3\f$ matrix C. A pixel location \f$(x, y)\f$ in the * source image is mapped to the location \f$(x', y')\f$ in the destination image. * The destination image coorodinates fullfil the following properties: * \f[ * x = c_{00} * x' + c_{01} * y' + c_{02} \qquad * y = c_{10} * x' + c_{11} * y' + c_{12} \qquad * C = \left[ \matrix{c_{00} & c_{01} & c_{02} \cr c_{10} & c_{11} & c_{12} } \right] * \f] * In other words, given matrix \f$C\f$ the source image's shape is transfored to the destination image * using the inverse matrix \f$C^{-1}\f$: * \f[ * M = C^{-1} = \left[ \matrix{m_{00} & m_{01} & m_{02} \cr m_{10} & m_{11} & m_{12} } \right] * x' = m_{00} * x + m_{01} * y + m_{02} \qquad * y' = m_{10} * x + m_{11} * y + m_{12} \qquad * \f] * *

Common parameters for nppiWarpAffineBack packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Affine transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref affine_transform_error_codes * *

Common parameters for nppiWarpAffineBack planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Affine transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref affine_transform_error_codes * * @{ * */ /** * Single-channel 8-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 8-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 8-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 8-bit unsigned integer backwards affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 8-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_8u_P3R_Ctx(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_8u_P3R(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 8-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_8u_P4R_Ctx(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_8u_P4R(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 16-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 16-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 16-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 16-bit unsigned integer backwards affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 16-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_16u_P3R_Ctx(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_16u_P3R(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 16-bit unsigned integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_16u_P4R_Ctx(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_16u_P4R(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 32-bit signed integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32s_C1R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32s_C1R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 32-bit signed integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32s_C3R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32s_C3R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit signed integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32s_C4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32s_C4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit signed integer backwards affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32s_AC4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32s_AC4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 32-bit signed integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_32s_P3R_Ctx(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32s_P3R(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 32-bit signed integer backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_32s_P4R_Ctx(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32s_P4R(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Single-channel 32-bit floating-point backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel 32-bit floating-point backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit floating-point backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel 32-bit floating-point backwards affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack packed pixel functions. * */ NppStatus nppiWarpAffineBack_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Three-channel planar 32-bit floating-point backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_32f_P3R_Ctx(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32f_P3R(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** * Four-channel planar 32-bit floating-point backwards affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineBack planar pixel functions. * */ NppStatus nppiWarpAffineBack_32f_P4R_Ctx(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineBack_32f_P4R(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[2][3], int eInterpolation); /** @} backwards_affine_transfrom */ /** @defgroup quad_based_affine_transform Quad-Based Affine Transform * Transforms (warps) an image based on an affine transform. * * The affine transform is computed such that it maps a quadrilateral in source image space to a * quadrilateral in destination image space. * * An affine transform is fully determined by the mapping of 3 discrete points. * The following primitives compute an affine transformation matrix that maps * the first three corners of the source quad are mapped to the first three * vertices of the destination image quad. If the fourth vertices do not match * the transform, an ::NPP_AFFINE_QUAD_INCORRECT_WARNING is returned by the primitive. * *

Common parameters for nppiWarpAffineQuad packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param aSrcQuad Source quad. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aDstQuad Destination quad. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref affine_transform_error_codes * *

Common parameters for nppiWarpAffineQuad planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI * \param aSrcQuad Source quad. * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI * \param aDstQuad Destination quad. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref affine_transform_error_codes * * @{ * */ /** * Single-channel 32-bit floating-point quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 8-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 8-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 8-bit unsigned integer quad-based affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 8-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_8u_P3R_Ctx(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_8u_P3R(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 8-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_8u_P4R_Ctx(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_8u_P4R(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Single-channel 16-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 16-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 16-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 16-bit unsigned integer quad-based affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 16-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_16u_P3R_Ctx(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_16u_P3R(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 16-bit unsigned integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_16u_P4R_Ctx(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_16u_P4R(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Single-channel 32-bit signed integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32s_C1R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32s_C1R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 32-bit signed integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32s_C3R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32s_C3R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit signed integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32s_C4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32s_C4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit signed integer quad-based affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32s_AC4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32s_AC4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 32-bit signed integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_32s_P3R_Ctx(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32s_P3R(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 32-bit signed integer quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_32s_P4R_Ctx(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32s_P4R(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Single-channel 32-bit floating-point quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 32-bit floating-point quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit floating-point quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit floating-point quad-based affine warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad packed pixel functions. * */ NppStatus nppiWarpAffineQuad_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 32-bit floating-point quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_32f_P3R_Ctx(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32f_P3R(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 32-bit floating-point quad-based affine warp. * * For common parameter descriptions, see Common parameters for nppiWarpAffineQuad planar pixel functions. * */ NppStatus nppiWarpAffineQuad_32f_P4R_Ctx(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpAffineQuad_32f_P4R(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** @} quad_based_affine_transform */ /** @} image_affine_transforms */ /** @defgroup image_perspective_transforms Perspective Transform * The set of perspective transform functions available in the library. * * \section perspective_transform_error_codes Perspective Transform Error Codes * * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_WRONG_INTERSECTION_ROI_ERROR Indicates an error condition if * oSrcROI has no intersection with the source image * - ::NPP_INTERPOLATION_ERROR Indicates an error condition if * interpolation has an illegal value * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid * - ::NPP_WRONG_INTERSECTION_QUAD_WARNING Indicates a warning that no * operation is performed if the transformed source ROI has no * intersection with the destination ROI * * @{ * */ /** @defgroup perspective_transform_utility_functions Perspective Transform Utility Functions * The set of perspective transform utility functions. * @{ * */ /** * Calculates perspective transform coefficients given source rectangular ROI * and its destination quadrangle projection * * \param oSrcROI Source ROI * \param quad Destination quadrangle * \param aCoeffs Perspective transform coefficients * \return Error codes: * - ::NPP_SIZE_ERROR Indicates an error condition if any image dimension * has zero or negative value * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid */ NppStatus nppiGetPerspectiveTransform(NppiRect oSrcROI, const double quad[4][2], double aCoeffs[3][3]); /** * Calculates perspective transform projection of given source rectangular * ROI * * \param oSrcROI Source ROI * \param quad Destination quadrangle * \param aCoeffs Perspective transform coefficients * \return Error codes: * - ::NPP_SIZE_ERROR Indicates an error condition if any image dimension * has zero or negative value * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid */ NppStatus nppiGetPerspectiveQuad(NppiRect oSrcROI, double quad[4][2], const double aCoeffs[3][3]); /** * Calculates bounding box of the perspective transform projection of the * given source rectangular ROI * * \param oSrcROI Source ROI * \param bound Bounding box of the transformed source ROI * \param aCoeffs Perspective transform coefficients * \return Error codes: * - ::NPP_SIZE_ERROR Indicates an error condition if any image dimension * has zero or negative value * - ::NPP_RECTANGLE_ERROR Indicates an error condition if width or height of * the intersection of the oSrcROI and source image is less than or * equal to 1 * - ::NPP_COEFFICIENT_ERROR Indicates an error condition if coefficient values * are invalid */ NppStatus nppiGetPerspectiveBound(NppiRect oSrcROI, double bound[2][2], const double aCoeffs[3][3]); /** @} perspective_transform_utility_functions */ /** @defgroup perspective_transform Perspective Transform * Transforms (warps) an image based on a perspective transform. * * The perspective transform is given as a \f$3\times 3\f$ matrix C. A pixel location \f$(x, y)\f$ in the * source image is mapped to the location \f$(x', y')\f$ in the destination image. * The destination image coorodinates are computed as follows: * \f[ * x' = \frac{c_{00} * x + c_{01} * y + c_{02}}{c_{20} * x + c_{21} * y + c_{22}} \qquad * y' = \frac{c_{10} * x + c_{11} * y + c_{12}}{c_{20} * x + c_{21} * y + c_{22}} * \f] * \f[ * C = \left[ \matrix{c_{00} & c_{01} & c_{02} \cr c_{10} & c_{11} & c_{12} \cr c_{20} & c_{21} & c_{22} } \right] * \f] * *

Common parameters for nppiWarpPerspective packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Perspective transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref perspective_transform_error_codes * *

Common parameters for nppiWarpPerspective planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Perspective transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref perspective_transform_error_codes * * @{ * */ /** * Single-channel 8-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 8-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 8-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 8-bit unsigned integer perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 8-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_8u_P3R_Ctx(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_8u_P3R(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 8-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_8u_P4R_Ctx(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_8u_P4R(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 16-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 16-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3],int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3],int eInterpolation); /** * Four-channel 16-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 16-bit unsigned integer perspective warp, igoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 16-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_16u_P3R_Ctx(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16u_P3R(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 16-bit unsigned integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_16u_P4R_Ctx(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16u_P4R(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 32-bit signed integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32s_C1R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32s_C1R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 32-bit signed integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32s_C3R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32s_C3R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit signed integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32s_C4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32s_C4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit signed integer perspective warp, igoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32s_AC4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32s_AC4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 32-bit signed integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_32s_P3R_Ctx(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32s_P3R(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 32-bit signed integer perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_32s_P4R_Ctx(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32s_P4R(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 16-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16f_C1R_Ctx(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16f_C1R(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 16-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16f_C3R_Ctx(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16f_C3R(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 16-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_16f_C4R_Ctx(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_16f_C4R(const Npp16f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 32-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 32-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit floating-point perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective packed pixel functions. * */ NppStatus nppiWarpPerspective_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 32-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_32f_P3R_Ctx(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32f_P3R(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 32-bit floating-point perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspective planar pixel functions. * */ NppStatus nppiWarpPerspective_32f_P4R_Ctx(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspective_32f_P4R(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** @} perspective_transform */ /** @defgroup perspective_transform_batch Perspective Transform Batch * * Details of the warp perspective operation are described above in the WarpPerspective section. WarpPerspectiveBatch generally takes the same parameter list as * WarpPerspective except that there is a list of N instances of those parameters (N > 1) and that list is passed in device memory. A convenient * data structure is provided that allows for easy initialization of the parameter lists. The aTransformedCoeffs array is for internal use only * and should not be directly initialized by the application. The only restriction on these functions is * that there is one single source ROI rectangle and one single destination ROI rectangle which are applied respectively to each image * in the batch. The primary purpose of this function is to provide improved performance for batches of smaller images as long as GPU * resources are available. Therefore it is recommended that the function not be used for very large images as there may not be resources * available for processing several large images simultaneously. * A single set of oSrcRectROI and oDstRectROI values are applied to each source image and destination image in the batch. * Source and destination image sizes may vary but oSmallestSrcSize must be set to the smallest * source and image size in the batch. The parameters in the NppiWarpPerspectiveBatchCXR structure represent the corresponding * per-image nppiWarpPerspective parameters for each image in the batch. The NppiWarpPerspectiveBatchCXR array must be in device memory. * The nppiWarpPerspectiveBatchInit function MUST be called AFTER the application has initialized the array of NppiWarpPerspectiveBatchCXR structures * and BEFORE calling any of the nppiWarpPerspectiveBatch functions to so that the aTransformedCoeffs array can be internally pre-initialized * for each image in the batch. The batch size passed to nppiWarpPerspectiveBatchInit must match the batch size passed to the corresponding * warp perspective batch function. * * * WarpPerspectiveBatch supports the following interpolation modes: * * \code * NPPI_INTER_NN * NPPI_INTER_LINEAR * NPPI_INTER_CUBIC * \endcode * * \section Error Codes * The warp perspective primitives return the following error codes: * * - ::NPP_RECTANGLE_ERROR if either destination ROI width or * height is less than 1 pixel. * - ::NPP_INTERPOLATION_ERROR if eInterpolation has an illegal value. * - ::NPP_SIZE_ERROR if source size width or height is less than 2 pixels. * *

Common parameters for nppiWarpPerspectiveBatch functions include:

* * \param oSmallestSrcSize Size in pixels of the entire smallest source image width and height, may be from different images. * \param oSrcRectROI Region of interest in the source images. * \param oDstRectROI Region of interest in the destination images. * \param eInterpolation The type of eInterpolation to perform resampling. Currently limited to NPPI_INTER_NN, NPPI_INTER_LINEAR, or NPPI_INTER_CUBIC. * \param pBatchList Device memory pointer to nBatchSize list of NppiWarpPerspectiveBatchCXR structures. * \param nBatchSize Number of NppiWarpPerspectiveBatchCXR structures in this call (must be > 1). * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes * * @{ * */ typedef struct { const void * pSrc; /* device memory pointer */ int nSrcStep; void * pDst; /* device memory pointer */ int nDstStep; Npp64f * pCoeffs; /* device memory pointer to the tranformation matrix with double precision floating-point coefficient values to be used for this image */ Npp64f aTransformedCoeffs[3][3]; /* FOR INTERNAL USE, DO NOT INITIALIZE */ } NppiWarpPerspectiveBatchCXR; /** * Initializes the aTransformdedCoeffs array in pBatchList for each image in the list. * MUST be called before calling the corresponding warp perspective batch function whenever any of the transformation matrices in the list have changed. * * \param pBatchList Device memory pointer to nBatchSize list of NppiWarpPerspectiveBatchCXR structures. * \param nBatchSize Number of NppiWarpPerspectiveBatchCXR structures in this call (must be > 1). * \param nppStreamCtx \ref application_managed_stream_context. */ NppStatus nppiWarpPerspectiveBatchInit_Ctx(NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatchInit(NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 8-bit unsigned integer image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_8u_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_8u_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 8-bit unsigned integer image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_8u_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_8u_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 8-bit unsigned integer image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_8u_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_8u_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 8-bit unsigned integer image warp perspective batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_8u_AC4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_8u_AC4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 16-bit floating point image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_16f_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_16f_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 16-bit floating point image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_16f_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_16f_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 16-bit floating point image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_16f_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_16f_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 1 channel 32-bit floating point image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_32f_C1R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_32f_C1R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 3 channel 32-bit floating point image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_32f_C3R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_32f_C3R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 32-bit floating point image warp perspective batch. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_32f_C4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_32f_C4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** * 4 channel 32-bit floating point image warp perspective batch not affecting alpha. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBatch functions. * */ NppStatus nppiWarpPerspectiveBatch_32f_AC4R_Ctx(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBatch_32f_AC4R(NppiSize oSmallestSrcSize, NppiRect oSrcRectROI, NppiRect oDstRectROI, int eInterpolation, NppiWarpPerspectiveBatchCXR * pBatchList, unsigned int nBatchSize); /** @} perspective_transform_batch */ /** @defgroup backwards_perspective_transform Backwards Perspective Transform * Transforms (warps) an image based on a perspective transform. * * The perspective transform is given as a \f$3\times 3\f$ matrix C. A pixel location \f$(x, y)\f$ in the * source image is mapped to the location \f$(x', y')\f$ in the destination image. * The destination image coorodinates fullfil the following properties: * \f[ * x = \frac{c_{00} * x' + c_{01} * y' + c_{02}}{c_{20} * x' + c_{21} * y' + c_{22}} \qquad * y = \frac{c_{10} * x' + c_{11} * y' + c_{12}}{c_{20} * x' + c_{21} * y' + c_{22}} * \f] * \f[ * C = \left[ \matrix{c_{00} & c_{01} & c_{02} \cr c_{10} & c_{11} & c_{12} \cr c_{20} & c_{21} & c_{22} } \right] * \f] * In other words, given matrix \f$C\f$ the source image's shape is transfored to the destination image * using the inverse matrix \f$C^{-1}\f$: * \f[ * M = C^{-1} = \left[ \matrix{m_{00} & m_{01} & m_{02} \cr m_{10} & m_{11} & m_{12} \cr m_{20} & m_{21} & m_{22} } \right] * x' = \frac{c_{00} * x + c_{01} * y + c_{02}}{c_{20} * x + c_{21} * y + c_{22}} \qquad * y' = \frac{c_{10} * x + c_{11} * y + c_{12}}{c_{20} * x + c_{21} * y + c_{22}} * \f] * *

Common parameters for nppiWarpPerspectiveBack packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Perspective transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref perspective_transform_error_codes * *

Common parameters for nppiWarpPerspectiveBack planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aCoeffs Perspective transform coefficients. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref perspective_transform_error_codes * * @{ * */ /** * Single-channel 8-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 8-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 8-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 8-bit unsigned integer backwards perspective warp, igoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 8-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_8u_P3R_Ctx(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_8u_P3R(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 8-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_8u_P4R_Ctx(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_8u_P4R(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 16-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 16-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 16-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 16-bit unsigned integer backwards perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 16-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_16u_P3R_Ctx(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_16u_P3R(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 16-bit unsigned integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_16u_P4R_Ctx(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_16u_P4R(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 32-bit signed integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32s_C1R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32s_C1R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 32-bit signed integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32s_C3R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32s_C3R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit signed integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32s_C4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32s_C4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit signed integer backwards perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32s_AC4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32s_AC4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 32-bit signed integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32s_P3R_Ctx(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32s_P3R(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 32-bit signed integer backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32s_P4R_Ctx(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32s_P4R(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Single-channel 32-bit floating-point backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel 32-bit floating-point backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit floating-point backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel 32-bit floating-point backwards perspective warp, ignorning alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack packed pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Three-channel planar 32-bit floating-point backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32f_P3R_Ctx(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32f_P3R(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** * Four-channel planar 32-bit floating-point backwards perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveBack planar pixel functions. * */ NppStatus nppiWarpPerspectiveBack_32f_P4R_Ctx(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveBack_32f_P4R(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aCoeffs[3][3], int eInterpolation); /** @} backward_perspective_transform */ /** @defgroup quad_based_perspective_transform Quad-Based Perspective Transform * Transforms (warps) an image based on an perspective transform. * * The perspective transform is computed such that it maps a quadrilateral in source image space to a * quadrilateral in destination image space. * *

Common parameters for nppiWarpPerspectiveQuad packed pixel functions include:

* * \param pSrc \ref source_image_pointer. * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param aSrcQuad Source quad. * \param pDst \ref destination_image_pointer. * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aDstQuad Destination quad. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref perspective_transform_error_codes * *

Common parameters for nppiWarpPerspectiveQuad planar pixel functions include:

* * \param pSrc \ref source_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param oSrcSize Size of source image in pixels. * \param nSrcStep \ref source_image_line_step. * \param oSrcROI Source ROI. * \param aSrcQuad Source quad. * \param pDst \ref destination_planar_image_pointer_array (host memory array containing device memory image plane pointers). * \param nDstStep \ref destination_image_line_step. * \param oDstROI Destination ROI. * \param aDstQuad Destination quad. * \param eInterpolation Interpolation mode: can be NPPI_INTER_NN, * NPPI_INTER_LINEAR or NPPI_INTER_CUBIC. * \param nppStreamCtx \ref application_managed_stream_context. * \return \ref image_data_error_codes, \ref roi_error_codes, \ref perspective_transform_error_codes * * @{ * */ /** * Single-channel 8-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_8u_C1R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 8-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_8u_C3R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_8u_C3R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 8-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_8u_C4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_8u_C4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 8-bit unsigned integer quad-based perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_8u_AC4R_Ctx(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_8u_AC4R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 8-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_8u_P3R_Ctx(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_8u_P3R(const Npp8u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 8-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_8u_P4R_Ctx(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_8u_P4R(const Npp8u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp8u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Single-channel 16-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_16u_C1R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_16u_C1R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 16-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_16u_C3R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_16u_C3R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 16-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_16u_C4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_16u_C4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 16-bit unsigned integer quad-based perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_16u_AC4R_Ctx(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_16u_AC4R(const Npp16u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 16-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_16u_P3R_Ctx(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_16u_P3R(const Npp16u * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 16-bit unsigned integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_16u_P4R_Ctx(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_16u_P4R(const Npp16u * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp16u * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Single-channel 32-bit signed integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32s_C1R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32s_C1R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 32-bit signed integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32s_C3R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32s_C3R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit signed integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32s_C4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32s_C4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit signed integer quad-based perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32s_AC4R_Ctx(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32s_AC4R(const Npp32s * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 32-bit signed integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32s_P3R_Ctx(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32s_P3R(const Npp32s * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 32-bit signed integer quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32s_P4R_Ctx(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32s_P4R(const Npp32s * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32s * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Single-channel 32-bit floating-point quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32f_C1R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32f_C1R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel 32-bit floating-point quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32f_C3R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32f_C3R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit floating-point quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32f_C4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32f_C4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel 32-bit floating-point quad-based perspective warp, ignoring alpha channel. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad packed pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32f_AC4R_Ctx(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32f_AC4R(const Npp32f * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst, int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Three-channel planar 32-bit floating-point quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32f_P3R_Ctx(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32f_P3R(const Npp32f * pSrc[3], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[3], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** * Four-channel planar 32-bit floating-point quad-based perspective warp. * * For common parameter descriptions, see Common parameters for nppiWarpPerspectiveQuad planar pixel functions. * */ NppStatus nppiWarpPerspectiveQuad_32f_P4R_Ctx(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation, NppStreamContext nppStreamCtx); NppStatus nppiWarpPerspectiveQuad_32f_P4R(const Npp32f * pSrc[4], NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, const double aSrcQuad[4][2], Npp32f * pDst[4], int nDstStep, NppiRect oDstROI, const double aDstQuad[4][2], int eInterpolation); /** @} quad_based_perspective_transform */ /** @} image_perspective_transforms */ /** @} image_geometry_transforms */ #ifdef __cplusplus } /* extern "C" */ #endif #endif /* NV_NPPI_GEOMETRY_TRANSFORMS_H */