Difference between revisions of "CUVI Features"

From CUVI Wiki
Line 18: Line 18:
|
|
===Arithmetic & Logical===
===Arithmetic & Logical===
* [[Function:Add|Add]] - Adds two images
* [[Function:Abs|abs]] - description
* [[Function:Subtract|Subtract]] - Subtracts pixel values of two image buffers
* [[Function:AbsDiff|absDiff]] - description
* [[Function:Multiply|Multiply]] - Multiplies pixel values of two image buffers
* [[Function:Add|add]] - Adds two images
* [[Function:Divide|Divide]] - Divides pixel values of two image buffers
* [[Function:AND|AND]] - Logical Bitwise AND
* [[Function:AND|AND]] - Logical Bitwise AND
* [[Function:Cbrt|cbrt]] - description
* [[Function:Ceil|ceil]] - description
* [[Function:Divide|divide]] - Divides pixel values of two image buffers
* [[Function:Exp|exp]] - description
* [[Function:Floor|floor]] - description
* [[Function:Invert|invert]] - description
* [[Function:MatMul|matMul]] - description
* [[Function:MatMulTrans|matMulTrans]] - description
* [[Function:Multiply|multiply]] - Multiplies pixel values of two image buffers
* [[Function:NOT|NOT]] - Performs a bitwise NOT operation on each pixel
* [[Function:NOT|NOT]] - Performs a bitwise NOT operation on each pixel
* [[Function:OR|OR]] - Combines corresponding pixels of two image buffers by a bitwise OR operation
* [[Function:OR|OR]] - Combines corresponding pixels of two image buffers by a bitwise OR operation
* [[Function:Pow|pow]] - description
* [[Function:Round|round]] - description
* [[Function:SHL|SHL]] - description
* [[Function:SHR|SHR]] - description
* [[Function:Sqrt|sqrt]] - description
* [[Function:Subtract|subtract]] - Subtracts pixel values of two image buffers
* [[Function:XOR|XOR]] - Combines corresponding pixels of two image buffers by a bitwise XOR operation
* [[Function:XOR|XOR]] - Combines corresponding pixels of two image buffers by a bitwise XOR operation
===Color Operations===
===Color Operations===
* [[Function:Adjust|Adjust]] - Equivalent to MATLAB's imadjust
* [[Function:Adjust|Adjust]] - Equivalent to MATLAB's imadjust

Revision as of 16:40, 11 June 2014

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 - description
  • absDiff - description
  • add - Adds two images
  • AND - Logical Bitwise AND
  • cbrt - description
  • ceil - description
  • divide - Divides pixel values of two image buffers
  • exp - description
  • floor - description
  • invert - description
  • matMul - description
  • matMulTrans - description
  • multiply - Multiplies pixel values of two image buffers
  • NOT - Performs a bitwise NOT operation on each pixel
  • OR - Combines corresponding pixels of two image buffers by a bitwise OR operation
  • pow - description
  • round - description
  • SHL - description
  • SHR - description
  • sqrt - description
  • subtract - Subtracts pixel values of two image buffers
  • XOR - Combines corresponding pixels of two image buffers by a bitwise XOR operation

Color Operations

  • Adjust - Equivalent to MATLAB's imadjust
  • ChannelMerge - Merges R, G and B Channel to form a color image
  • ChannelSplit - Splits a three channel image into R, G and B channels
  • ColorTwist - Applies a color twist matrix to an image
  • HistEq - Performs histogram equalization
  • RGB2Gray - Converts an RGB image to gray scale using fixed transform coefficients.
  • RGB2YUV - Convert RGB image to YUV color model
  • YUV2RGB - Convert YUV color model to an RGB image
  • Demosaic - Restores an RGB image from a gray-scale Bayer image
  • BorderMask - Masks image borders with custom intensity
  • ImageBinary - Converts input image into a binary image based on threshold
  • Color2Gray - Converts an RGB image to gray scale using custom transform coefficients.
  • RGBA2Gray - Converts an RGBA image to gray scale using fixed transform

Computer Vision

  • GoodFeaturesToTrack - selects N best points on a image using KLT or Harris
  • TrackFeatures - Tracks input features from frame 1 onto frame 2 using KLT method
  • 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
  • MinEigenVal - Calculates the minimum eigen value at each pixel in an image
  • EigenValsVecs - Calculates eigen values and eigen vectors at each pixel in an image

Data Exchange

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 linear-interpolation
  • rotate - Rotates an image about origin (0,0) or center
  • transpose - Takes Transpose of the image
  • warpAffine - descrption
  • warpAffineBack - description

Image Filtering

Image Statistics

  • calcHist - description
  • 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 - description
  • fftGetProperty - description
  • fftShift - description
  • haarFwd - Performs one-level wavelet decomposition of an image using haar basis
  • haarInv - Performs one-level 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, Cuvi32u depth, Cuvi32u channels) - Main Constructor. throws exception in case of failure
  • CuviImage(const CuviImage&) - copy constructor
  • CuviImage(const CuviMat&) - copy constructor to initialize from CuviMat
  • Upload(void* pSrcHost, size_t srcPitch, CuviStream* stream = NULL) - Copy image data from host to device. Async operation supported
  • Download(void* pDstHost, size_t dstPitch, CuviStream* stream = NULL) - Copy image data from device to host
  • Show(char* title = "CUVI Image",int 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