This page provides a list of all the functionality available in the latest release of CUVI Library.
Modules
CUVI comes in following image processing modules.
 Arithmetic & Logical
 Color Operations
 Computer Vision
 Data Exchange
 Geometry Transforms
 Image Filtering
 Image Statistics
 Image Transforms
 Video Stabilization
Function List
Arithmetic & Logical
 abs  Computes absolute value of each image pixel
 absDiff  Computes absolute difference between 2 images.
 add  Adds two images
 AND  Bitwise AND operation between two images.
 cbrt  Computes cube root of each image pixel
 ceil  Applies ceil function to each image pixel
 divide  Divides pixel values of two images
 exp  Computes exponential of each image pixel
 floor  Applies floor function to each image pixel
 invert  Computes matrix inverse using LU factorization
 matMul  Performs matrix multiplication
 matMulTrans  Performs matrix multiplication with its transpose
 multiply  Multiplies pixel values of two images
 NOT  Inverts the bits of each pixel.
 OR  Bitwise OR operation between two images.
 pow  Raise each pixel to a specified power.
 round  Rounds each pixel to nearest integer value.
 SHL  Left shift each pixel of an image
 SHR  Right shift each pixel of an image
 sqrt  Takes square root of each pixel of an image.
 subtract  Subtracts pixel values of two images.
 XOR  Logical bitwise XOR operation between two images.
Color Operations
 adjust  Equivalent to MATLAB's imadjust
 borderMask  Masks image borders with custom intensity
 channelMerge  Merges R, G and B Channel to form a color image
 channelSplit  Splits a three channel image into R, G and B channels
 colorPick  Performs color segmentation of image by selecting a single color.
 colorTwist  Applies a color twist matrix to an image
 demosaic  Restores an RGB image from a CFA Bayer image
 demosaicDFPD  Restores an RGB image from a CFA Bayer image using DFPD algorithm
 gammaCorrect  Performs gamma correction of an image
 gray2rgb  Copy a grayscale image to each channel of an RGB image.
 histEq  Performs histogram equalization
 hsv2rgb  Converts image from HSV color space to RGB.
 imageBinary  Converts input image into a binary image based on threshold
 Lab2rgb  Converts image from CIE Lab color space to RGB.
 logTransform  Applies log transformation for contrast enhancement of an image.
 LUT  Remaps image values according to look up table
 rgb2gray  Converts an RGB image to gray scale.
 rgb2hsv  Converts an RGB image to HSV color space.
 rgb2Lab  Converts an RGB image to CIE Lab color space.
 rgb2ycbcr  Converts an RGB image to YCbCr color space.
 rgb2yuv  Converts RGB image to YUV color space.
 ycbcr2rgb  Converts YCbCr image to an RGB image.
 yuv2rgb  Converts YUV image to an RGB image.
Computer Vision
 eigenValsVecs  Calculates eigen values and eigen vectors at each pixel in an image
 goodFeaturesToTrack  selects N best points on a image using KLT or Harris
 minEigenVal  Calculates the minimum eigen value at each pixel in an image
 opticalFlowHS  Calculates flow of each image pixel in two frames using Horn–Schunck method
 opticalFlowPyrLKDense  Calculates flow of each image pixel in two frames using pyramidal Lucas–Kanade method
 trackFeatures  Tracks input features from frame 1 onto frame 2 using KLT method

Data Exchange
 bitConversion  Converts image pixel values from one data type to another.
 convertScale  Converts image data type with optional scaling.
 generateRandomImage  Creates a new random image.
 getChannel  Extracts a channel of an image.
 padImage  Pads any side of the image with the value specified.
 rectangle  Draws a rectangle on the specified region of an image.
 threshold  Clamps image pixel values between specified thresholds.
Geometry Transforms
 crop  Crops the desired portion of an image
 flipImage  Mirrors an image about a horizontal or vertical axis, or both
 resize  Resizes input image using specified interpolation
 rotate  Rotates an image about origin (0,0) or center
 transpose  Takes Transpose of the image
 warpAffine  Applies an affine transformation to an image.
 warpAffineBack  Applies an inverse affine transformation to an image.
Image Filtering
Image Statistics
 calcHist  Computes the histogram of an 8 bit image.
 countInRange  Counts the number of pixels within the given intensity range
 max  Computes the maximum of image pixel values
 mean  Computes the mean of image pixel values
 meanStdDev  Computes the mean and standard deviation of image pixel values
 min  Computes the minimum of image pixel values
 minMax  Computes the minimum and maximum of image pixel values
 sum  Computes the sum of image pixel values
Image Transforms
 fft2  Computes the 2D Fast Fourier Transform of an image.
 fftGetProperty  Gets magnitude, phase, real and imaginary part of an FFT image with optional scaling.
 fftShift  Moves low frequency components to the center of an FFT image.
 haarFwd  Performs onelevel wavelet decomposition of an image using haar basis
 haarInv  Performs onelevel haar wavelet reconstruction of an image
Video Stabilization

CUVI Core
CUVI Core includes the following helper functionality:
CuviImage
A C++ class to hold image data on the device. It has the following methods
 CuviImage();  default constructor
 CuviImage(CuviSize size, Cuvi32s depth, Cuvi32s channels)  Main Constructor. throws exception in case of failure
 CuviImage(const CuviImage&)  copy constructor
 upload(const void* pSrcHost, const Cuvi32s srcPitch)  Copy image data from host to device.
 upload(const void* pSrcHost, const Cuvi32s srcPitch, const CuviStream& stream)  Asynchronously copy image data from host to device.
 download(void* pDstHost, const Cuvi32s dstPitch)  Copy image data from device to host
 download(void* pDstHost, const Cuvi32s dstPitch, const CuviStream& stream)  Asynchronously copy image data from device to host
 show(const std::string& title = "CUVI Image", Cuvi32s milliseconds = 0)  Render device image directly on the screen
 ~CuviImage()  Destructor. Frees Device Memory. throws exception in case of failure
Timer
CUVI provides a C++ Timer class that accurately profiles your application timing
 Start()  Starts the timer.
 Stop()  Stops the timer
 Reset()  Resets the timer
 GetElapsedTime()  Returns the elapsed time between Start and Stop calls in seconds

DeviceProperties
CuviDeviceProperties holds all the important properties of underlying CUDA device. Device management functions are present inside the namespace cuvi::device.
 Cuvi32s getDeviceCount()  Gives the count of devices installed in the machine
 Cuvi32s getCurentDevice()  Returns the ID of selected graphics card
 CuviStatus setCurrentDevice(const Cuvi32s ID)  Makes any device an active device
 CuviStatus getDeviceProperties(const Cuvi32s deviceID, CuviDeviceProperties& props)  Returns all the important properties of desired GPU

