Do all versions of OpenCV run at the same speed?
OpenCV was originally created by Intel to demonstrate how fast Intel CPUs can perform, and therefore the speed performance of OpenCV was of crucial importance. However, OpenCV has recently changed from a low-level image processing C library built for maximum speed, to a higher-level computer vision C++ library. Many cutting-edge techniques are added with each new version of OpenCV, and there have been several quite major changes to the file structure of recent versions of OpenCV as well as the API interface. The good news is that the new C++ interface is usually easier to use than the old C interface, however the bad news is that many functions are now slower than they used to be in previous years! But since the OpenCV developers want everyone to migrate from the old C interface to the new C++ interface, it is not obvious which version of OpenCV should be used for a project. Therefore some timing tests are shown here for 2 very common operations in OpenCV: Hough Line Detection and Haar Face Detection.
Note: These timings are for a single-core. Newer versions of OpenCV take more advantage of multi-core CPUs (eg: using TBB library), so newer versions might actually run faster on multi-core CPUs than older versions, even if the single-threaded performance shown here says the opposite.