Difference between revisions of "CUVI Features"

From CUVI Wiki
Line 2: Line 2:
==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]]-->

Revision as of 12:20, 18 April 2013

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 & Initialization
  • Geometry Transforms
  • Image Filtering
  • Image Statistics
  • Image Transforms


Function List

  • Add - Adds two images
  • Adjust - Equivalent to MATLAB's imadjust
  • AND - Logical Bitwise AND
  • BitConversion - Converts image pixel values from one data type to another
  • 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
  • Color2Gray - Converts an RGB image to gray scale using custom transform coefficients.
  • ColorTwist - Applies a color twist matrix to an image
  • CountInRange - Counts the number of pixels within the given intensity range
  • Crop - Crops the desired portion of an image
  • Demosaic - Restores an RGB image from a gray-scale Bayer image
  • Divide - Divides pixel values of two image buffers
  • EigenValsVecs - Calculates eigen values and eigen vectors at each pixel in an image
  • FlipImage - Mirrors an image about a horizontal or vertical axis, or both
  • GoodFeaturesToTrack - selects N best points on a image using KLT or Harris
  • haarFwd - Performs one-level wavelet decomposition of an image using haar basis
  • haarInv - Performs one-level haar wavelet reconstruction of an image
  • HistEq - Performs histogram equalization
  • ImageBinary - Converts input image into a binary image based on threshold
  • ImageGradients - Calculates X and Y gradients of image
  • ImageFilter - Performs linear 1D and 2D image filtering
  • Max - Computes the maximum of image pixel values
  • MaxFilter - Filters an image using a max filter

intensity 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
  • MinEigenVal - Calculates the minimum eigen value at each pixel in an image
  • MinFilter - Filters an image using a min filter
  • MinMax - Computes the minimum and maximum of image pixel values
  • Multiply - Multiplies pixel values of two image buffers
  • NOT - Performs a bitwise NOT operation on each pixel
  • 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
  • OR - Combines corresponding pixels of two image buffers by a bitwise OR operation
  • Resize - Resizes input image using linear-interpolation
  • RGB2Gray - Converts an RGB image to gray scale using fixed transform coefficients.
  • RGB2YUV - Convert RGB image to YUV color model
  • RGBA2Gray - Converts an RGBA image to gray scale using fixed transform
  • Rotate - Rotates an image about origin (0,0) or center
  • Subtract - Subtracts pixel values of two image buffers
  • Sum - Computes the sum of image pixel values
  • TrackFeatures - Tracks input features from frame 1 onto frame 2 using KLT method
  • Transpose - Takes Transpose of the image
  • XOR - Combines corresponding pixels of two image buffers by a bitwise XOR operation
  • YUV2RGB - Convert YUV color model to an RGB image


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


CuviMat

A C structure to hold image data on the device. It has the following functions

  • cuviCreateMat(CuviMat** mat, CuviSize size, Cuvi32u depth, Cuvi32u channels) - Allocates device memory to CuviMat
  • cuviCloneMat(CuviMat** dstMat, CuviMat* srcMat, int copyData) - Creates an exact copy of a CuviMat, with optionally copying data
  • cuviUploadData(CuviMat* dstMat, void* pSrcHost, size_t srcPitch, CuviStream* stream) - Copy data from host to CuviMat and supports async operation
  • cuviDownloadData(CuviMat* srcMat, void* pDstHost, size_t dstPitch, CuviStream* stream) - Copy data from device back to host
  • cuviDestroyMat(CuviImage** mat) - Frees device memory from CuviMat object
  • cuviShowMat(char* title, CuviMat* mat, int milliseconds) - Renders a CuviMat directly on the screen for specified time


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 microseconds

DeviceProperties

CuviDeviceProperties holds all the important properties of underlying CUDA device

  • cuviGetDeviceCount() - Gives the count of devices installed in the machine
  • cuviGetCurrentDeviceID() - Returns the ID of selected graphics card
  • cuviSetCurrentDevice() - Makes any device an active device
  • cuviGetDeviceProperties() - Returns all the important properties of desired GPU