# CUVI Release Notes

From CUVI Wiki

## Version 1.3.1

- Release Date: June 12, 2014
- Requirements:
- Color Operations:
- Added
**demosiacDFPD**that restores an RGB image from a CFA Bayer image using DFPD algorithm.

- Added
- Added
*Video Stabilization*module- Added
**CuviVideoStabilizer**class for transparent video stabilization. - Added
**CuviMotionEstimator**class to determine the global motion vector between 2 frames.

- Added
- Core
- Added
*cuvi::showImage*function to display the image. - Added
*cuvi::waitKeyPress*function to keep displaying the window opened by*cuvi::showImage*.

- Added

## Version 1.3.0

- Release Date: May 05, 2014
- Requirements:
- Core:
- Added arithmtic and logic operators for CuviImage.
- Added channel extraction operator [] for CuviImage.
- Added CuviPyramid class
- Added CuviHistogram class
- Added CuviSpecialFilters class for creating standard predefined filters.

- Data Exchange:
- Added getChannel function for channel extraction.

- Arithmetic and Logical:
- Added different point scalar functions
- abs -> Image absolute value
- exp -> e raised to power image
- absDiff -> Absolute difference between 2 images
- sqrt -> Square root
- cbrt -> Cube root
- floor
- ceil
- round
- Added bit shifting functions (SHL and SHR)
- Added matrix multiplication (matMul)
- Added matrix multiplication with transpose -> A*A' or A'*A
- Added matrix inversion for square images.

- Color Operations:
- Added lookup table transformation function (LUT)
- Merged rgba2gray into rgb2gray
- Added color space conversions:
- Grayscale --> RGB (gray2rgb)
- RGB <--> YCbCr (rgb2ycbcr and ycbcr2rgb)
- RGB <--> HSV (rgb2hsv and hsv2rgb)
- RGB <--> Lab (rgb2Lab and Lab2rgb)

- Image Filtering:
- Added median filtering (medianFilter)
- Added image enhancement algorithm (fusion)

- Image Statistics:
- Added histogram calculation function (calcHist)

- Misc:
- Replaced raw pointer/array arguments with CuviScalar class for the following functions:
- rgb2gray
- sum, mean, min, max, minMax, countInRange

- Replaced raw pointer/array arguments with CuviScalar class for the following functions:

## Version 1.2.1

- Release Date: April 17, 2013
- Requirements:
- New Features/Enchancements

- Framework Enhancements
- C Interface has been discontinued.
- All functions in C++ interface now take CuviImage references instead of pointers.
- Added image I/O. CuviImage can now be loaded and saved directly on the disk without the requirement of a host.
- Added namespace "device" which contains device management functions:
- getDeviceCount
- getCurrentDevice
- setCurrentDevice(const Cuvi32s id);
- syncCurrentDevice()
- resetCurrentDevice()
- getDeviceProperties(const int deviceID, CuviDeviceProperties& props);

- Features removal:
- eigenVals
- eigenValsVecs
- meanStdDev
- Color2Gray (added as an overload of rgb2gray)

## Version 1.2

- Release Date: May 11, 2012
- Requirements:
- New Features
- CountInRange - Counts the number of pixels within the given intensity range
- Sum - Computes the sum of pixel values of each channel in an image
- Max - Computes the maximum pixel value of each channel in an image
- Min - Computes the minimum pixel value of each channel in an image
- MinMax - Computes the minimum and maximum pixel value of each channel in an image
- Mean - Computes the mean of each channel of the input image
- MeanStdDev - Computes the mean and standard deviation of each channel in an image
- EigenValsVecs - Calculates eigen values and eigen vectors at each pixel in an image
- Flip - Mirrors an image about a horizontal or vertical axis, or both
- ImageGradients - Calculates X and Y gradients of image
- MinEigenVal - Calculates the minimum eigen value at each pixel in an image
- Rotate - Rotates an image with the origin (0,0) or center
- Transpose - Takes Transpose of the image

- Framework Enhancements
- Instead of a single function for all color operations and one for arithmetic operations, the new build contains individual functions like RGB2YUV and Add to improve usability
- The functions 'split' and 'merge' are renamed to ChannelSplit and ChannelMerge
- The function 'bayerToRGB' is renamed to Demosaic
- The function 'imFilter' is renamed to ImageFilter and its input argument have been simplified
- The function 'dwt' and 'idwt' have been renamed to haarFwd and haarInv respectively
- CUVI now includes a C++ Timer class that accurately profiles your application timing
- CuviMat is introduced which is C counterpart of the class CuviImage

- Bug Fixes
- ImageFilter bug fixed

*Release notes for previous versions is not available*