A significant part of my life is connected with the OpenCV library. It has a fairly interesting history that, probably, deserves a thin printed brochure of its own: born in Intel, then "abandoned" to a third-party company to become world's largest Computer Vision library, then "bought" by Intel again with Itseez acquisition.

It's hard to name the single reason which made the library a success, but all-in-all, it was a rock-solid software library that was at the edge of the technology. Both in terms of its main application – Computer Vision – and in terms of software development, in general (it was an early adopter of CMake, git, CUDA, vector intrinsics, etc.)

A skeptic, can, probably, say that if you count the number of tech businesses fueled by OpenCV, the library didn't provide stellar results. But the use of Computer Vision in the industry even today (not to mention 10-15 years ago) is still rather limited. And one thing that's hard to deny is the influence of OpenCV on the area as a whole.

Anyway, at a certain point, I've recorded a set of 15 screencasts that explains a lot of basic Computer Vision concepts and shows how to implement them using OpenCV. To date, only 9 of them were uploaded to YouTube, and I'm afraid, the remaining (most interesting!) videos will never see the light of day.

However, the code accompanying the screencasts is available in full and can serve a good starting point for someone who wants to learn about OpenCV and Computer Vision (and even a little bit about optimization for ARM processors). Of course, the videos provide more detailed explanations and supporting media, but I still think that the code is clean enough to be understood by a fellow coder. Hope you'll enjoy!