CUVI is a simple to use C++ SDK that provides accelerated image processing and computer vision algorithms. To run CUVI on your machine, you’ll need an entry level understanding of C++ and NVIDIA GPU in your system. CUVI requires no or very little knowledge of programming skills yet provides sophisticated computer vision features ranging from medical, security, camera and research domains. Use CUVI to start building complex vision applications today!
Recently we have release version 1.6.0 which is available for download for free (for personal use) with nearly one hundred features including image filtering, transforms, geometric, color operations and computer vision. For any help and assistance, drop us an email at contact[at]cuvilib.com. In this article, I’ll be talking about some of the most sought-after features of CUVI. But first let’s go through how easy it is to use.
Using CUVI is a breeze and requires only an entry level knowledge of C++. The following code performs a simple low light enhancement to an image read from disk. This code can be placed anywhere in your existing C++ code without hassle. CUVI also supports reading data from other sources for example a pointer that already exists in your code. For more information on I/O visit this link.
//Load image from disk and create output image for storing result
CuviImage input("D:/images/dark.jpg", CUVI_LOAD_IMAGE_COLOR_KEEP_DEPTH);
//Perform low-light enhancement
//Save Output to file
The result then can be viewed or stored back to disk or a destination pointer in your existing code. CUVI supports many other I/O types, checks and error handling, which you can see in the example folder in the shipped package, but this code is as simple as it can get.
One (Linear) Filter to Rule them All
Filters are perhaps the most important part to any vision related application. CUVI provides a single function to perform linear filter of all shapes and sizes. Our filtering function is highly optimized for GPU and performs at lightening fast speed compared to any other vision library out there. CUVI allows you to define the size either 2D or 1D (1×3, 3×3, 5×5 and so on) as well as custom coefficients of the filter making it generic with the ability to perform literary any filter out there including Gaussian, sharping, averaging, sobel, channel mix and so on.
Underwater Color Correction
CUVI’s proprietary underwater color corrections works wonders on your underwater photography and videos. The function works on all water types and depths making it ideal for any scenario. It integrates right into your dive capture software and add clarity to the videos without additional effort on your end.
CUVI offers a comprehensive rotate function that includes basic rotate with ROI support as well as non-cropping rotation. We use highly efficient interpolation and border handling for both rotation types. It is benchmarked to perform better than other libraries including GPU accelerated ones.
Linear debayer is prone to aliasing errors but it’s fast and hence used in many industries. We offer DFPD (Directional Filtering and a posteriori Decision) debayer, a method which offers little to none aliasing and better colored output than the linear approach – all at the speed of linear one; thanks to the accelerated approach implemented for GPUs. Our implementation of DFPD debayer is being extensiveness used and appreciated by camera manufactures.