Difference between revisions of "CUVI Features"

From CUVI Wiki
 
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page provides a list of all the functionality available in the latest release of CUVI Library.
__NOTOC__
CUVI SDK is an image processing kit written and developed on C-CUDA and C++ for over a period of ten years. The SDK includes 100+ image processing and computer vision functions that are plug-n-play for imaging applications in a plethora of verticals. Each function is hand crafted and highly optimized to run on CUDA supported GPUs. Many functions use our own proprietary approach to algorithms and processing to make the best out of hardware and input data.
 
==Modules==
==Modules==
CUVI comes in following image processing modules.
CUVI comes in following image processing modules.
* Arithmetic & Logical<!--[[Module:cuvial|Arithmetic & Logical]]-->
# Arithmetic & Logical<!--[[Module:cuvial|Arithmetic & Logical]]-->
* Color Operations <!--[[Module:cuvico|Color Operations]]-->
# Color Operations <!--[[Module:cuvico|Color Operations]]-->
* Computer Vision<!--[[Module:cuvicv|Computer Vision]]-->
# Computer Vision<!--[[Module:cuvicv|Computer Vision]]-->
* Data Exchange<!--[[Module:cuvide|Data Exchange]]-->
# Data Exchange<!--[[Module:cuvide|Data Exchange]]-->
* Geometry Transforms<!--[[Module:cuvigt|Geometry Transforms]]-->
# Geometry Transforms<!--[[Module:cuvigt|Geometry Transforms]]-->
* Image Filtering<!--[[Module:cuviif|Image Filtering]]-->
# Image Filtering<!--[[Module:cuviif|Image Filtering]]-->
* Image Statistics<!--[[Module:cuviis|Image Statistics]]-->
# Image Statistics<!--[[Module:cuviis|Image Statistics]]-->
* Image Transforms<!--[[Module:cuviit|Image Transforms]]-->
# Image Transforms<!--[[Module:cuviit|Image Transforms]]-->
* Image Codecs
# Image Codecs
<br/>
<br/>


Line 18: Line 20:
|
|
===Arithmetic & Logical===
===Arithmetic & Logical===
* [[Function:Abs|abs]] - Computes absolute value of each image pixel
# [[Function:Abs|abs]] - Computes absolute value of each image pixel
* [[Function:AbsDiff|absDiff]] - Computes absolute difference between 2 images.
# [[Function:AbsDiff|absDiff]] - Computes absolute difference between 2 images.
* [[Function:Add|add]] - Adds two images
# [[Function:Add|add]] - Adds two images
* [[Function:AND|AND]] - Bitwise AND operation between two images.
# [[Function:AND|AND]] - Bitwise AND operation between two images.
* [[Function:Cbrt|cbrt]] - Computes cube root of each image pixel
# [[Function:Cbrt|cbrt]] - Computes cube root of each image pixel
* [[Function:Ceil|ceil]] - Applies ceil function to each image pixel
# [[Function:Ceil|ceil]] - Applies ceil function to each image pixel
* [[Function:Divide|divide]] - Divides pixel values of two images
# [[Function:Divide|divide]] - Divides pixel values of two images
* [[Function:Exp|exp]] - Computes exponential of each image pixel
# [[Function:dot|dot]]
* [[Function:Floor|floor]] - Applies floor function to each image pixel
# [[Function:Exp|exp]] - Computes exponential of each image pixel
* [[Function:Invert|invert]] - Computes matrix inverse using LU factorization
# [[Function:Floor|floor]] - Applies floor function to each image pixel
* [[Function:MatMul|matMul]] - Performs matrix multiplication
# [[Function:InRange|inRange]] - Checks if image pixels lie between a range of values
* [[Function:MatMulTrans|matMulTrans]] - Performs matrix multiplication with its transpose
# [[Function:Invert|invert]] - Computes matrix inverse using LU factorization
* [[Function:Multiply|multiply]] - Multiplies pixel values of two images
# [[Function:MatMul|matMul]] - Performs matrix multiplication
* [[Function:NOT|NOT]] - Inverts the bits of each pixel.
# [[Function:MatMulTrans|matMulTrans]] - Performs matrix multiplication with its transpose
* [[Function:OR|OR]] - Bitwise OR operation between two images.
# [[Function:Multiply|multiply]] - Multiplies pixel values of two images
* [[Function:Pow|pow]] - Raise each pixel to a specified power.
# [[Function:NOT|NOT]] - Inverts the bits of each pixel.
* [[Function:Round|round]] - Rounds each pixel to nearest integer value.
# [[Function:OR|OR]] - Bitwise OR operation between two images.
* [[Function:SHL|SHL]] - Left shift each pixel of an image
# [[Function:Pow|pow]] - Raise each pixel to a specified power.
* [[Function:SHR|SHR]] - Right shift each pixel of an image
# [[Function:Round|round]] - Rounds each pixel to nearest integer value.
* [[Function:Sqrt|sqrt]] - Takes square root of each pixel of an image.
# [[Function:SHL|SHL]] - Left shift each pixel of an image.
* [[Function:Subtract|subtract]] - Subtracts pixel values of two images.
# [[Function:SHR|SHR]] - Right shift each pixel of an image
* [[Function:XOR|XOR]] - Logical bitwise XOR operation between two images.
# [[Function:Sqrt|sqrt]] - Takes square root of each pixel of an image.
# [[Function:Subtract|subtract]] - Subtracts pixel values of two images.
# [[Function:XOR|XOR]] - Logical bitwise XOR operation between two images.


===Color Operations===
===Color Operations===
* [[Function:Adjust|adjust]] - Equivalent to MATLAB's imadjust
# [[Function:Adjust|adjust]] - Equivalent to MATLAB's imadjust
* [[Function:AutoColor|autoColor]] - Fixes false colors at pixel level using a propriety approach
# [[Function:AutoColor|autoColor]] - Fixes false colors at pixel level using a propriety approach
* [[Function:BorderMask|borderMask]] - Masks image borders with custom intensity
# [[Function:BorderMask|borderMask]] - Masks image borders with custom intensity
* [[Function:ChannelMix|channelMix]] - Applies a color twist matrix to an image
# [[Function:blackGammaLUT|blackGammaLUT]] - Remaps image values according to 3 look up tables
* [[Function:ChannelMerge|channelMerge]] - Merges R, G and B Channel to form a color image
# [[Function:ChannelMix|channelMix]] - Applies a color twist matrix to an image
* [[Function:ChannelSplit|channelSplit]] - Splits a three channel image into R, G and B channels
# [[Function:ChannelMerge|channelMerge]] - Merges R, G and B Channel to form a color image
* [[Function:ColorPick|colorPick]] - Performs color segmentation of image by selecting a single color
# [[Function:ChannelSplit|channelSplit]] - Splits a three channel image into R, G and B channels
* [[Function:Dehaze|dehaze]] - Makes sense of images taken in a blizzard
# [[Function:ColorPick|colorPick]] - Performs color segmentation of image by selecting a single color
* [[Function:Demosaic|demosaic]] - Restores an RGB image from a CFA Bayer image
# [[Function:Dehaze|dehaze]] - Makes sense of images taken in a blizzard
* [[Function:DemosaicDFPD|demosaicDFPD]] - Restores an RGB image from a CFA Bayer image using DFPD algorithm
# [[Function:Demosaic|demosaic]] - Restores an RGB image from a CFA Bayer image
* [[Function:GammaCorrect|gammaCorrect]] - Performs gamma correction of an image
# [[Function:DemosaicDFPD|demosaicDFPD]] - Restores an RGB image from a CFA Bayer image using DFPD algorithm
* [[Function:Gray2rgb|gray2rgb]] - Copy a grayscale image to each channel of an RGB image.
# [[Function:fpn|fpn]] - fixed point noise remove via camera black image
* [[Function:HistEq|histEq]] - Performs histogram equalization
# [[Function:FPNCorrection|FPNCorrection]] - fixed point noise removal via black and white images and gain
* [[Function:Hsv2rgb|hsv2rgb]] - Converts image from HSV color space to RGB.
# [[Function:GammaCorrect|gammaCorrect]] - Performs gamma correction of an image
* [[Function:ImageBinary|imageBinary]] - Converts input image into a binary image based on threshold
# [[Function:Gray2rgb|gray2rgb]] - Copy a grayscale image to each channel of an RGB image.
* [[Function:Lab2rgb|Lab2rgb]] - Converts image from CIE Lab color space to RGB.
# [[Function:HistEq|histEq]] - Performs histogram equalization
* [[Function:LogTransform|logTransform]] - Applies log transformation for contrast enhancement of an image
# [[Function:Hsv2rgb|hsv2rgb]] - Converts image from HSV color space to RGB.
* [[Function:Lowlight|lowlight]] -  enhances the low intensity colors in a dark photo
# [[Function:ImageBinary|imageBinary]] - Converts input image into a binary image based on threshold
* [[Function:LUT|LUT]] - Remaps image values according to look up table
# [[Function:Lab2rgb|Lab2rgb]] - Converts image from CIE Lab color space to RGB.
* [[Function:RGB2Gray|rgb2gray]] - Converts an RGB image to gray scale
# [[Function:LogTransform|logTransform]] - Applies log transformation for contrast enhancement of an image
* [[Function:Rgb2hsv|rgb2hsv]] - Converts an RGB image to HSV color space
# [[Function:Lowlight|lowlight]] -  enhances the low intensity colors in a dark photo
* [[Function:Rgb2Lab|rgb2Lab]] - Converts an RGB image to CIE Lab color space
# [[Function:LUT|LUT]] - Remaps image values according to look up table
* [[Function:Rgb2ycbcr|rgb2ycbcr]] - Converts an RGB image to YCbCr color space
# [[Function:RGB2Gray|rgb2gray]] - Converts an RGB image to gray scale
* [[Function:RGB2YUV|rgb2yuv]] - Converts RGB image to YUV color space
# [[Function:Rgb2hsv|rgb2hsv]] - Converts an RGB image to HSV color space
* [[Function:Ycbcr2rgb|ycbcr2rgb]] - Converts YCbCr image to an RGB image
# [[Function:Rgb2Lab|rgb2Lab]] - Converts an RGB image to CIE Lab color space
* [[Function:YUV2RGB|yuv2rgb]] - Converts YUV image to an RGB image.
# [[Function:Rgb2ycbcr|rgb2ycbcr]] - Converts an RGB image to YCbCr color space
# [[Function:RGB2YUV|rgb2yuv]] - Converts RGB image to YUV color space
# [[Function:Ycbcr2rgb|ycbcr2rgb]] - Converts YCbCr image to an RGB image
# [[Function:YUV2RGB|yuv2rgb]] - Converts YUV image to an RGB image.
# [[Function:YUV422TOV210|YUV422TOV210]] - Converts YUV422 image to an V210 image.
# [[Function:YUV444TOV210|YUV444TOV210]] - Converts YUV444 image to an V210 image.
# [[Function:V210TOYUV444|V210TOYUV444]] - Converts V210 image to an YUV444 image.


===Computer Vision===
===Computer Vision===
* [[Function:EigenValsVecs|eigenValsVecs]] - Calculates eigen values and eigen vectors at each pixel in an image
# [[Function:EigenValsVecs|eigenValsVecs]] - Calculates eigen values and eigen vectors at each pixel in an image
* [[Function:GoodFeaturesToTrack|goodFeaturesToTrack]] - selects N best points on a image using KLT or Harris
# [[Function:findTransformECC|findTransformECC]] - Calculates geometric transform between two images in terms of the ECC criterion
* [[Function:MinEigenVal|minEigenVal]] - Calculates the minimum eigen value at each pixel in an image
# [[Function:GoodFeaturesToTrack|goodFeaturesToTrack]] - selects N best points on a image using KLT or Harris
* [[Function:OpticalFlowHS|opticalFlowHS]] - Calculates flow of each image pixel in two frames using Horn–Schunck method
# [[Function:MinEigenVal|minEigenVal]] - Calculates the minimum eigen value at each pixel in an image
* [[Function:opticalFlowPyrLKDense|opticalFlowPyrLKDense]] - Calculates flow of each image pixel in two frames using pyramidal Lucas–Kanade method
# [[Function:OpticalFlowHS|opticalFlowHS]] - Calculates flow of each image pixel in two frames using Horn–Schunck method
* [[Function:TrackFeatures|trackFeatures]] - Tracks input features from frame 1 onto frame 2 using KLT method
# [[Function:opticalFlowPyrLKDense|opticalFlowPyrLKDense]] - Calculates flow of each image pixel in two frames using pyramidal Lucas–Kanade method
* [[Function:FocusStack|focusStack]] - Stacks multiples photos with various focus into a single all focused image
# [[Function:TrackFeatures|trackFeatures]] - Tracks input features from frame 1 onto frame 2 using KLT method
|
# [[Function:FocusStack|focusStack]] - Stacks multiples photos with various focus into a single all focused image


===Data Exchange===
===Data Exchange===
* [[Function:BitConversion|bitConversion]] - Converts image pixel values from one data type to another.
# [[Function:BitConversion|bitConversion]] - Converts image pixel values from one data type to another.
* [[Function:ConvertScale|convertScale]] - Converts image data type with optional scaling.
# [[Function:ConvertScale|convertScale]] - Converts image data type with optional scaling.
* [[Function:GenerateRandomImage|generateRandomImage]] - Creates a new random image.
# [[Function:GenerateRandomImage|generateRandomImage]] - Creates a new random image.
* [[Function:GetChannel|getChannel]] - Extracts a channel of an image.
# [[Function:GetChannel|getChannel]] - Extracts a channel of an image.
* [[Function:PadImage|padImage]] - Pads any side of the image with the value specified.
# [[Function:PadImage|padImage]] - Pads any side of the image with the value specified.
* [[Function:Rectangle|rectangle]] - Draws a rectangle on the specified region of an image.
# [[Function:Rectangle|rectangle]] - Draws a rectangle on the specified region of an image.
* [[Function:Threshold|threshold]] - Clamps image pixel values between specified thresholds.
# [[Function:Threshold|threshold]] - Clamps image pixel values between specified thresholds.


===Geometry Transforms===
===Geometry Transforms===
* [[Function:Crop|crop]] - Crops the desired portion of an image
# [[Function:Crop|crop]] - Crops the desired portion of an image
* [[Function:Flip|flipImage]] - Mirrors an image about a horizontal or vertical axis, or both
# [[Function:Flip|flipImage]] - Mirrors an image about a horizontal or vertical axis, or both
* [[Function:Resize|resize]] - Resizes input image using specified interpolation
# [[Function:Resize|resize]] - Resizes input image using specified interpolation
* [[Function:Rotate|rotate]] - Rotates an image about specified anchor
# [[Function:Rotate|rotate]] - Rotates an image about specified anchor
* [[Function:RotateNoCrop|RotateNoCrop]] - Rotates an image about specified anchor
# [[Function:RotateNoCrop|RotateNoCrop]] - Rotates an image about specified anchor
* [[Function:Taper|taper]] - Smartly extends image border
# [[Function:Taper|taper]] - Smartly extends image border
* [[Function:Transpose|transpose]] - Takes Transpose of the image
# [[Function:Transpose|transpose]] - Takes Transpose of the image
* [[Function:WarpAffine|warpAffine]] - Applies an affine transformation to an image.
# [[Function:WarpAffine|warpAffine]] - Applies an affine transformation to an image.
* [[Function:WarpAffineBack|warpAffineBack]] - Applies an inverse affine transformation to an image.
# [[Function:WarpAffineBack|warpAffineBack]] - Applies an inverse affine transformation to an image.
* [[Function:WarpPerspective|warpPerspective]] - Applies an affine transformation to an image.
# [[Function:WarpPerspective|warpPerspective]] - Applies an affine transformation to an image.
* [[Function:WarpPerspectiveBack|warpPerspectiveBack]] - Applies an inverse affine transformation to an image.
# [[Function:WarpPerspectiveBack|warpPerspectiveBack]] - Applies an inverse affine transformation to an image.


===Image Filtering===
===Image Filtering===
* [[Function:ImageFilter|imageFilter]] - Performs linear 1D and 2D image filtering
# [[Function:ImageFilter|imageFilter]] - Performs linear 1D and 2D image filtering
* [[Function:ImageGradients|imageGradients]] - Calculates X and Y gradients of image
# [[Function:ImageGradients|imageGradients]] - Calculates X and Y gradients of image
* [[Function:MinFilter|minFilter]] - Filters an image using a min filter
# [[Function:MinFilter|minFilter]] - Filters an image using a min filter
* [[Function:MaxFilter|maxFilter]] - Filters an image using a max filter
# [[Function:MaxFilter|maxFilter]] - Filters an image using a max filter
* [[Function:MedianFilter|medianFilter]] - Applies 2D median filter on an image
# [[Function:MedianFilter|medianFilter]] - Applies 2D median filter on an image
* [[Function:UnderwaterFilter|underwaterFilter]] - Brings out original colors of underwater photography.
# [[Function:UnderwaterFilter|underwaterFilter]] - Brings out original colors of underwater photography.


===Image Statistics===
===Image Statistics===
* [[Function:CalcHist|calcHist]] - Computes the histogram of an 8 bit image.
# [[Function:CalcHist|calcHist]] - Computes the histogram of an 8 bit image.
* [[Function:CountInRange|countInRange]] - Counts the number of pixels within the given intensity range
# [[Function:CountInRange|countInRange]] - Counts the number of pixels within the given intensity range
* [[Function:Max|max]] - Computes the maximum of image pixel values
# [[Function:Max|max]] - Computes the maximum of image pixel values
* [[Function:Mean|mean]] - Computes the mean of image pixel values
# [[Function:Mean|mean]] - Computes the mean of image pixel values
* [[Function:MeanStdDev|meanStdDev]] - Computes the mean and standard deviation of image pixel values
# [[Function:MeanStdDev|meanStdDev]] - Computes the mean and standard deviation of image pixel values
* [[Function:Min|min]] - Computes the minimum of image pixel values
# [[Function:Min|min]] - Computes the minimum of image pixel values
* [[Function:MinMax|minMax]] - Computes the minimum and maximum of image pixel values
# [[Function:MinMax|minMax]] - Computes the minimum and maximum of image pixel values
* [[Function:Sum|sum]] - Computes the sum of image pixel values
# [[Function:Sum|sum]] - Computes the sum of image pixel values


===Image Transforms===
===Image Transforms===
* [[Function:Fft2|fft2]] - Computes the 2D Fast Fourier Transform of an image.
# [[Function:Fft2|fft2]] - Computes the 2D Fast Fourier Transform of an image.
* [[Function:FftGetProperty|fftGetProperty]] - Gets magnitude, phase, real and imaginary part of an FFT image with optional scaling.
# [[Function:FftGetProperty|fftGetProperty]] - Gets magnitude, phase, real and imaginary part of an FFT image with optional scaling.
* [[Function:FftShift|fftShift]] - Moves low frequency components to the center of an FFT image.
# [[Function:FftShift|fftShift]] - Moves low frequency components to the center of an FFT image.
* [[Function:haarFwd|haarFwd]] - Performs one-level wavelet decomposition of an image using haar basis
# [[Function:haarFwd|haarFwd]] - Performs one-level wavelet decomposition of an image using haar basis
* [[Function:haarInv|haarInv]] - Performs one-level haar wavelet reconstruction of an image
# [[Function:haarInv|haarInv]] - Performs one-level haar wavelet reconstruction of an image
 
===Image Codecs===
# [[Function:Encode|encode]] - Encodes image pixel array into JPEG.
# [[Function:Decode|decode]] - Decodes a JPEG into an image pixel array.


<!--===Video Stabilization===
<!--===Video Stabilization===

Latest revision as of 15:11, 7 November 2022

CUVI SDK is an image processing kit written and developed on C-CUDA and C++ for over a period of ten years. The SDK includes 100+ image processing and computer vision functions that are plug-n-play for imaging applications in a plethora of verticals. Each function is hand crafted and highly optimized to run on CUDA supported GPUs. Many functions use our own proprietary approach to algorithms and processing to make the best out of hardware and input data.

Modules

CUVI comes in following image processing modules.

  1. Arithmetic & Logical
  2. Color Operations
  3. Computer Vision
  4. Data Exchange
  5. Geometry Transforms
  6. Image Filtering
  7. Image Statistics
  8. Image Transforms
  9. Image Codecs


Function List

Arithmetic & Logical

  1. abs - Computes absolute value of each image pixel
  2. absDiff - Computes absolute difference between 2 images.
  3. add - Adds two images
  4. AND - Bitwise AND operation between two images.
  5. cbrt - Computes cube root of each image pixel
  6. ceil - Applies ceil function to each image pixel
  7. divide - Divides pixel values of two images
  8. dot
  9. exp - Computes exponential of each image pixel
  10. floor - Applies floor function to each image pixel
  11. inRange - Checks if image pixels lie between a range of values
  12. invert - Computes matrix inverse using LU factorization
  13. matMul - Performs matrix multiplication
  14. matMulTrans - Performs matrix multiplication with its transpose
  15. multiply - Multiplies pixel values of two images
  16. NOT - Inverts the bits of each pixel.
  17. OR - Bitwise OR operation between two images.
  18. pow - Raise each pixel to a specified power.
  19. round - Rounds each pixel to nearest integer value.
  20. SHL - Left shift each pixel of an image.
  21. SHR - Right shift each pixel of an image
  22. sqrt - Takes square root of each pixel of an image.
  23. subtract - Subtracts pixel values of two images.
  24. XOR - Logical bitwise XOR operation between two images.

Color Operations

  1. adjust - Equivalent to MATLAB's imadjust
  2. autoColor - Fixes false colors at pixel level using a propriety approach
  3. borderMask - Masks image borders with custom intensity
  4. blackGammaLUT - Remaps image values according to 3 look up tables
  5. channelMix - Applies a color twist matrix to an image
  6. channelMerge - Merges R, G and B Channel to form a color image
  7. channelSplit - Splits a three channel image into R, G and B channels
  8. colorPick - Performs color segmentation of image by selecting a single color
  9. dehaze - Makes sense of images taken in a blizzard
  10. demosaic - Restores an RGB image from a CFA Bayer image
  11. demosaicDFPD - Restores an RGB image from a CFA Bayer image using DFPD algorithm
  12. fpn - fixed point noise remove via camera black image
  13. FPNCorrection - fixed point noise removal via black and white images and gain
  14. gammaCorrect - Performs gamma correction of an image
  15. gray2rgb - Copy a grayscale image to each channel of an RGB image.
  16. histEq - Performs histogram equalization
  17. hsv2rgb - Converts image from HSV color space to RGB.
  18. imageBinary - Converts input image into a binary image based on threshold
  19. Lab2rgb - Converts image from CIE Lab color space to RGB.
  20. logTransform - Applies log transformation for contrast enhancement of an image
  21. lowlight - enhances the low intensity colors in a dark photo
  22. LUT - Remaps image values according to look up table
  23. rgb2gray - Converts an RGB image to gray scale
  24. rgb2hsv - Converts an RGB image to HSV color space
  25. rgb2Lab - Converts an RGB image to CIE Lab color space
  26. rgb2ycbcr - Converts an RGB image to YCbCr color space
  27. rgb2yuv - Converts RGB image to YUV color space
  28. ycbcr2rgb - Converts YCbCr image to an RGB image
  29. yuv2rgb - Converts YUV image to an RGB image.
  30. YUV422TOV210 - Converts YUV422 image to an V210 image.
  31. YUV444TOV210 - Converts YUV444 image to an V210 image.
  32. V210TOYUV444 - Converts V210 image to an YUV444 image.

Computer Vision

  1. eigenValsVecs - Calculates eigen values and eigen vectors at each pixel in an image
  2. findTransformECC - Calculates geometric transform between two images in terms of the ECC criterion
  3. goodFeaturesToTrack - selects N best points on a image using KLT or Harris
  4. minEigenVal - Calculates the minimum eigen value at each pixel in an image
  5. opticalFlowHS - Calculates flow of each image pixel in two frames using Horn–Schunck method
  6. opticalFlowPyrLKDense - Calculates flow of each image pixel in two frames using pyramidal Lucas–Kanade method
  7. trackFeatures - Tracks input features from frame 1 onto frame 2 using KLT method
  8. focusStack - Stacks multiples photos with various focus into a single all focused image

Data Exchange

  1. bitConversion - Converts image pixel values from one data type to another.
  2. convertScale - Converts image data type with optional scaling.
  3. generateRandomImage - Creates a new random image.
  4. getChannel - Extracts a channel of an image.
  5. padImage - Pads any side of the image with the value specified.
  6. rectangle - Draws a rectangle on the specified region of an image.
  7. threshold - Clamps image pixel values between specified thresholds.

Geometry Transforms

  1. crop - Crops the desired portion of an image
  2. flipImage - Mirrors an image about a horizontal or vertical axis, or both
  3. resize - Resizes input image using specified interpolation
  4. rotate - Rotates an image about specified anchor
  5. RotateNoCrop - Rotates an image about specified anchor
  6. taper - Smartly extends image border
  7. transpose - Takes Transpose of the image
  8. warpAffine - Applies an affine transformation to an image.
  9. warpAffineBack - Applies an inverse affine transformation to an image.
  10. warpPerspective - Applies an affine transformation to an image.
  11. warpPerspectiveBack - Applies an inverse affine transformation to an image.

Image Filtering

  1. imageFilter - Performs linear 1D and 2D image filtering
  2. imageGradients - Calculates X and Y gradients of image
  3. minFilter - Filters an image using a min filter
  4. maxFilter - Filters an image using a max filter
  5. medianFilter - Applies 2D median filter on an image
  6. underwaterFilter - Brings out original colors of underwater photography.

Image Statistics

  1. calcHist - Computes the histogram of an 8 bit image.
  2. countInRange - Counts the number of pixels within the given intensity range
  3. max - Computes the maximum of image pixel values
  4. mean - Computes the mean of image pixel values
  5. meanStdDev - Computes the mean and standard deviation of image pixel values
  6. min - Computes the minimum of image pixel values
  7. minMax - Computes the minimum and maximum of image pixel values
  8. sum - Computes the sum of image pixel values

Image Transforms

  1. fft2 - Computes the 2D Fast Fourier Transform of an image.
  2. fftGetProperty - Gets magnitude, phase, real and imaginary part of an FFT image with optional scaling.
  3. fftShift - Moves low frequency components to the center of an FFT image.
  4. haarFwd - Performs one-level wavelet decomposition of an image using haar basis
  5. haarInv - Performs one-level haar wavelet reconstruction of an image

Image Codecs

  1. encode - Encodes image pixel array into JPEG.
  2. decode - Decodes a JPEG into an image pixel array.


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.
  • upload(const void* pSrcHost, CuviRect srcROI, const Cuvi32s srcPitch, CuviPoint2D<int> dstOrigin) - Copy a chunk of image data from host to device.
  • upload(const void* pSrcHost, CuviRect srcROI, const Cuvi32s srcPitch, CuviPoint2D<int> dstOrigin, const CuviStream& stream) - Asynchronously copy a chunk of 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
  • download(void* pDstHost, CuviPoint2D<int> dstOrigin, const Cuvi32s dstPitch, CuviRect srcROI) - Copy a chunk of image data from device to host
  • download(void* pDstHost, CuviPoint2D<int> dstOrigin, const Cuvi32s dstPitch, CuviRect srcROI, const CuviStream& stream) - Asynchronously copy a chunk of image data from device to host
  • copyTo(CuviImage& dst, CuviPoint2D<int> dstOrigin, CuviRect srcROI, const CuviStream& stream = CuviStream()) - Copy image data (or an ROI of it) from one Cuvi Image to another.
  • 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