OpenCV 4 Computer Vision Application Programming Cookbook
Escriva, David Millan, Laganiere, Robert
- Explore the latest features and APIs in OpenCV 4 and build computer vision algorithms
- Develop effective, robust, and fail-safe vision for your applications
- Build computer vision algorithms with machine learning capabilities
OpenCV is an image and video processing library used for all types of image and video analysis. Throughout the book, you'll work through recipes that implement a variety of tasks, such as facial recognition and detection. With 70 self-contained tutorials, this book examines common pain points and best practices for computer vision (CV) developers. Each recipe addresses a specific problem and offers a proven, best-practice solution with insights into how it works, so that you can copy the code and configuration files and modify them to suit your needs.
This book begins by setting up OpenCV, and explains how to manipulate pixels. You'll understand how you can process images with classes and count pixels with histograms. You'll also learn detecting, describing, and matching interest points. As you advance through the chapters, you'll get to grips with estimating projective relations in images, reconstructing 3D scenes, processing video sequences, and tracking visual motion. In the final chapters, you'll cover deep learning concepts such as face and object detection.
By the end of the book, you'll be able to confidently implement a range to computer vision algorithms to meet the technical requirements of your complex CV projects
What you will learn
- Install and create a program using the OpenCV library
- Segment images into homogenous regions and extract meaningful objects
- Apply image filters to enhance image content
- Exploit image geometry to relay different views of a pictured scene
- Calibrate the camera from different image observations
- Detect people and objects in images using machine learning techniques
- Reconstruct a 3D scene from images
- Explore face detection using deep learning
Who this book is for
If you're a CV developer or professional who already uses or would like to use OpenCV for building computer vision software, this book is for you. You'll also find this book useful if you're a C++ programmer looking to extend your computer vision skillset by learning OpenCV.
David Millán Escrivá was 8 years old when he wrote his first program on an 8086 PC in Basic, which enabled the 2D plotting of basic equations. In 2005, he finished his studies in IT with honors, through the Universitat Politécnica de Valencia, in human-computer interaction supported by computer vision with OpenCV (v0.96). He has worked with Blender, an open source, 3D software project, and on its first commercial movie, Plumiferos, as a computer graphics software developer. David has more than 10 years' experience in IT, with experience in computer vision, computer graphics, pattern recognition, and machine learning, working on different projects, and at different start-ups, and companies. He currently works as a researcher in computer vision.
Robert Laganiere is a professor at the University of Ottawa, Canada. He is also a faculty member of the VIVA research lab and is the coauthor of several scientific publications and patents in content-based video analysis, visual surveillance, driver-assistance, object detection, and tracking. He cofounded Visual Cortek, a video analytics start-up, which was later acquired by iWatchLife. He is also a consultant in computer vision and has assumed the role of chief scientist in a number of start-ups companies, including Cognivue Corp, iWatchLife, and Tempo Analytics. Robert has a Bachelor of Electrical Engineering degree from Ecole Polytechnique in Montreal (1987), and M.Sc. and Ph.D. degrees from INRS-Telecommunications, Montreal (1996).
- Introduction to OpenCV
- Manipulating the pixels
- Processing Images with Classes
- Counting the Pixels with Histograms
- Transforming images with morphological operations
- Filtering the images
- Extracting Lines, Contours, and Components
- Detecting interest points
- Describing and Matching interest Points
- Estimating projective relations in images
- Reconstructing 3D scenes
- Processing video sequences
- Tracking visual motion
- Learning from Examples
- OpenCV Advanced features