Preface
Augmented reality, driving assistance, video monitoring; more and more applications are
now using computer vision and image analysis technologies, and yet we are still in the
infancy of the development of new computerized systems capable of understanding our
worlds through the sense of vision. And with the advent of powerful and affordable
computing devices and visual sensors, it has never been easier to create sophisticated
imaging applications. A multitude of software tools and libraries manipulating images and
videos are available, but for anyone who wishes to develop smart vision-based applications,
the OpenCV library is the tool to use. OpenCV (Open source Computer Vision) is an open
source library containing more than 500 optimized algorithms for image and video analysis.
Since its introduction in 1999, it has been largely adopted as the primary development tool
by the community of researchers and developers in computer vision. OpenCV was
originally developed at Intel by a team led by Gary Bradski as an initiative to advance
research in vision and promote the development of rich vision-based, CPU-intensive
applications. After a series of beta releases, version 1.0 was launched in 2006. A second
major release occurred in 2009 with the launch of OpenCV 2 that proposed important
changes, especially the new C++ interface, which we use in this book. In 2012, OpenCV
reshaped itself as a non-profit foundation (h t t p ://o p e n c v . o r g /) relying on crowdfunding
for its future development. OpenCV3 was introduced in 2013; changes were made mainly to
improve the usability of library. Its structure has been revised to remove the unnecessary
dependencies, large modules have been split into smaller ones and the API has been
refined. This book is the third edition of the OpenCV Computer Vision Application
Programming Cookbook and the first one that covers OpenCV version 3. All the programming
recipes of the previous editions have been reviewed and updated. We also have added new
content and new chapters to provide readers with even better coverage of the essential
functionalities of the library. This book covers many of the library’s features and
explains how to use them to accomplish specific tasks. Our objective is not to provide
detailed coverage of every option offered by the OpenCV functions and classes but rather to
give you the elements you need to build your applications from the ground up. We also
explore, in this book, fundamental concepts in image analysis and we describe some of the
important algorithms in computer vision. This book is an opportunity for you to get
introduced to the world of image and video analysis. But this is just the beginning. The
good news is that OpenCV continues to evolve and expand. Just consult the OpenCV online
documentation at h t t p ://o p e n c v . o r g / to stay updated about what the library can do for
you. You can also visit the author’s website at h t t p ://w w w . l a g a n i e r e . n a m e / for updated
information about this cookbook.