I recently read this comparison of four vision libraries: OpenCV, VXL, LTI and OpenCV with IPP. It was in the book Learning Learning OpenCV: Computer Vision with the OpenCV Library, authored by the creators of OpenCV themselves. For those who aren't familiar with these libraries, here's a brief introduction.
VXL stands for Vision something Library. It is a C++ library that implements several common computer vision algorithms and related functionality. The idea is to replace the 'X' with one of the several letters:
LTI-Lib is another object oriented library for computer vision. It has also been implemented in C++. It also includes classes that encapsulate multithreading, synchronization, serial port access, etc. And it ensures you don't have to deal with changing operating systems or hardware.
Yet another computer vision library. It includes over 500 functions for various commonly used algorithms. It also comes with a machine learning library and a portable window creation library. With version 2.0, OpenCV comes with a C++ interface as well. Before 2.0, it was only the C interface.
OpenCV developers were friendly with the Intel Performance Primitives team. So, OpenCV makes use of IPP code (which is hand tuned and extremely optimized code) to speed up execution. And this, as you'll see, gives a substantial boost to its execution speed.
The machine used was a Pentium M 1.7GHz. Four tests were done:
The results were like this (I've tried my best to replicate the chart as best as possible):
Hmm. It can't get simpler. If you want to do your computer vision thing super fast, you must use OpenCV. If possible, Go for OpenCV+IPP. If something doesn't work fast enough, there are only two possibilities:
If you can think of other possibilities, please leave a comment and let me know :P Anyway, in either case, the algorithm will work even slower on other vision libraries.
Whatever vision task you have, choose OpenCV :D This (probably) only applies to desktops/laptops. If you're using it on mobile, you can probably reconsider :)
Note: OpenCV does NOT depend on IPP in any way. But, if it detects IPP on a particular system, it will automatically make use of it.
Here's a simple task - given an image find the dominant colors in the image. I'll walk you through a lesser known technique that does not use kmeans.
Read more