Difference between revisions of "CUVI Features"
From CUVI Wiki
(19 intermediate revisions by 2 users not shown) | |||
Line 18: | Line 18: | ||
| | | | ||
===Arithmetic & Logical=== | ===Arithmetic & Logical=== | ||
* [[Function:Abs|abs]] - | * [[Function:Abs|abs]] - Computes absolute value of each image pixel | ||
* [[Function:AbsDiff|absDiff]] - | * [[Function:AbsDiff|absDiff]] - Computes absolute difference between 2 images. | ||
* [[Function:Add|add]] - Adds two images | * [[Function:Add|add]] - Adds two images | ||
* [[Function:AND|AND]] - | * [[Function:AND|AND]] - Bitwise AND operation between two images. | ||
* [[Function:Cbrt|cbrt]] - | * [[Function:Cbrt|cbrt]] - Computes cube root of each image pixel | ||
* [[Function:Ceil|ceil]] - | * [[Function:Ceil|ceil]] - Applies ceil function to each image pixel | ||
* [[Function:Divide|divide]] - Divides pixel values of two | * [[Function:Divide|divide]] - Divides pixel values of two images | ||
* [[Function:Exp|exp]] - | * [[Function:Exp|exp]] - Computes exponential of each image pixel | ||
* [[Function:Floor|floor]] - | * [[Function:Floor|floor]] - Applies floor function to each image pixel | ||
* [[Function:Invert|invert]] - | * [[Function:Invert|invert]] - Computes matrix inverse using LU factorization | ||
* [[Function:MatMul|matMul]] - | * [[Function:MatMul|matMul]] - Performs matrix multiplication | ||
* [[Function:MatMulTrans|matMulTrans]] - | * [[Function:MatMulTrans|matMulTrans]] - Performs matrix multiplication with its transpose | ||
* [[Function:Multiply|multiply]] - Multiplies pixel values of two | * [[Function:Multiply|multiply]] - Multiplies pixel values of two images | ||
* [[Function:NOT|NOT]] - | * [[Function:NOT|NOT]] - Inverts the bits of each pixel. | ||
* [[Function:OR|OR]] - | * [[Function:OR|OR]] - Bitwise OR operation between two images. | ||
* [[Function:Pow|pow]] - | * [[Function:Pow|pow]] - Raise each pixel to a specified power. | ||
* [[Function:Round|round]] - | * [[Function:Round|round]] - Rounds each pixel to nearest integer value. | ||
* [[Function:SHL|SHL]] - | * [[Function:SHL|SHL]] - Left shift each pixel of an image | ||
* [[Function:SHR|SHR]] - | * [[Function:SHR|SHR]] - Right shift each pixel of an image | ||
* [[Function:Sqrt|sqrt]] - | * [[Function:Sqrt|sqrt]] - Takes square root of each pixel of an image. | ||
* [[Function:Subtract|subtract]] - Subtracts pixel values of two | * [[Function:Subtract|subtract]] - Subtracts pixel values of two images. | ||
* [[Function:XOR|XOR]] - | * [[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: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:ChannelMerge|channelMerge]] - Merges R, G and B Channel to form a color image | * [[Function:ChannelMerge|channelMerge]] - Merges R, G and B Channel to form a color image | ||
* [[Function:ChannelSplit|channelSplit]] - Splits a three channel image into R, G and B channels | * [[Function:ChannelSplit|channelSplit]] - Splits a three channel image into R, G and B channels | ||
* [[Function:ColorPick|colorPick]] - | * [[Function:ColorPick|colorPick]] - Performs color segmentation of image by selecting a single color | ||
* [[Function: | * [[Function:Dehaze|dehaze]] - Makes sense of images taken in a blizzard | ||
* [[Function:Demosaic|demosaic]] - Restores an RGB image from a CFA Bayer image | * [[Function:Demosaic|demosaic]] - Restores an RGB image from a CFA Bayer image | ||
* [[Function:DemosaicDFPD| | * [[Function:DemosaicDFPD|demosaicDFPD]] - Restores an RGB image from a CFA Bayer image using DFPD algorithm | ||
* [[Function:GammaCorrect|gammaCorrect]] - | * [[Function:GammaCorrect|gammaCorrect]] - Performs gamma correction of an image | ||
* [[Function:Gray2rgb|gray2rgb]] - | * [[Function:Gray2rgb|gray2rgb]] - Copy a grayscale image to each channel of an RGB image. | ||
* [[Function:HistEq|histEq]] - Performs histogram equalization | * [[Function:HistEq|histEq]] - Performs histogram equalization | ||
* [[Function:Hsv2rgb|hsv2rgb]] - | * [[Function:Hsv2rgb|hsv2rgb]] - Converts image from HSV color space to RGB. | ||
* [[Function:ImageBinary|imageBinary]] - Converts input image into a binary image based on threshold | * [[Function:ImageBinary|imageBinary]] - Converts input image into a binary image based on threshold | ||
* [[Function:Lab2rgb|Lab2rgb]] - | * [[Function:Lab2rgb|Lab2rgb]] - Converts image from CIE Lab color space to RGB. | ||
* [[Function:LogTransform|logTransform]] - | * [[Function:LogTransform|logTransform]] - Applies log transformation for contrast enhancement of an image | ||
* [[Function:LUT|LUT]] - | * [[Function:Lowlight|lowlight]] - enhances the low intensity colors in a dark photo | ||
* [[Function:RGB2Gray|rgb2gray]] - Converts an RGB image to gray scale | * [[Function:LUT|LUT]] - Remaps image values according to look up table | ||
* [[Function:Rgb2hsv|rgb2hsv]] - | * [[Function:RGB2Gray|rgb2gray]] - Converts an RGB image to gray scale | ||
* [[Function:Rgb2Lab|rgb2Lab]] - | * [[Function:Rgb2hsv|rgb2hsv]] - Converts an RGB image to HSV color space | ||
* [[Function:Rgb2ycbcr|rgb2ycbcr]] - | * [[Function:Rgb2Lab|rgb2Lab]] - Converts an RGB image to CIE Lab color space | ||
* [[Function:RGB2YUV|rgb2yuv]] - | * [[Function:Rgb2ycbcr|rgb2ycbcr]] - Converts an RGB image to YCbCr color space | ||
* [[Function:Ycbcr2rgb|ycbcr2rgb]] - | * [[Function:RGB2YUV|rgb2yuv]] - Converts RGB image to YUV color space | ||
* [[Function:YUV2RGB|yuv2rgb]] - | * [[Function:Ycbcr2rgb|ycbcr2rgb]] - Converts YCbCr image to an RGB image | ||
* [[Function:YUV2RGB|yuv2rgb]] - Converts YUV image to an RGB image. | |||
===Computer Vision=== | ===Computer Vision=== | ||
Line 77: | Line 80: | ||
===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]] - | * [[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]] - | * [[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]] - | * [[Function:Rectangle|rectangle]] - Draws a rectangle on the specified region of an image. | ||
* [[Function:Threshold|threshold]] - | * [[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 | * [[Function:Resize|resize]] - Resizes input image using specified interpolation | ||
* [[Function:Rotate|rotate]] - Rotates an image about origin (0,0) or center | * [[Function:Rotate|rotate]] - Rotates an image about origin (0,0) or center | ||
* [[Function:Transpose|transpose]] - Takes Transpose of the image | * [[Function:Transpose|transpose]] - Takes Transpose of the image | ||
* [[Function:WarpAffine|warpAffine]] - | * [[Function:WarpAffine|warpAffine]] - Applies an affine transformation to an image. | ||
* [[Function:WarpAffineBack|warpAffineBack]] - | * [[Function:WarpAffineBack|warpAffineBack]] - 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]] - | * [[Function:MedianFilter|medianFilter]] - Applies 2D median filter on an image | ||
* [[Function:UnderwaterFilter|underwaterFilter]] - Brings out original colors of underwater photography. | |||
===Image Statistics=== | ===Image Statistics=== | ||
* [[Function:CalcHist|calcHist]] - | * [[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 | ||
Line 112: | Line 115: | ||
===Image Transforms=== | ===Image Transforms=== | ||
* [[Function:Fft2|fft2]] - | * [[Function:Fft2|fft2]] - Computes the 2D Fast Fourier Transform of an image. | ||
* [[Function:FftGetProperty|fftGetProperty]] - | * [[Function:FftGetProperty|fftGetProperty]] - Gets magnitude, phase, real and imaginary part of an FFT image with optional scaling. | ||
* [[Function:FftShift|fftShift]] - | * [[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 | ||
===Video Stabilization=== | ===Video Stabilization=== | ||
* [[Function:CuviMotionEstimator|CuviMotionEstimator]] - | * [[Function:CuviMotionEstimator|CuviMotionEstimator]] - Class to estimate global motion vectors between an image pair. | ||
* [[Function:CuviVideoStabilizer|CuviVideoStabilizer]] - | * [[Function:CuviVideoStabilizer|CuviVideoStabilizer]] - Class for transparent video stabilization of a video file. | ||
|} | |} | ||
<br/> | <br/> | ||
Line 133: | Line 136: | ||
A C++ class to hold image data on the device. It has the following methods | A C++ class to hold image data on the device. It has the following methods | ||
* CuviImage(); - default constructor | * CuviImage(); - default constructor | ||
* CuviImage(CuviSize size, | * CuviImage(CuviSize size, Cuvi32s depth, Cuvi32s channels) - Main Constructor. throws exception in case of failure | ||
* CuviImage(const CuviImage&) - copy constructor | * 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 | * ~CuviImage() - Destructor. Frees Device Memory. throws exception in case of failure | ||
Line 144: | Line 148: | ||
|-valign="top" | |-valign="top" | ||
|style="width:50%;"| | |style="width:50%;"| | ||
===Timer=== | ===Timer=== | ||
CUVI provides a C++ Timer class that accurately profiles your application timing | CUVI provides a C++ Timer class that accurately profiles your application timing |
Revision as of 20:49, 27 March 2018
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
Color Operations
Computer Vision
|
Data Exchange
Geometry Transforms
Image Filtering
Image Statistics
Image Transforms
Video Stabilization
|
CUVI Core
CUVI Core includes the following helper functionality:
CuviImageA C++ class to hold image data on the device. It has the following methods
|