▶Book Description
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
▶Key Features
- 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
▶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.
▶What this book covers
- Chapter 1, Playing with Images, introduces the OpenCV library and shows you how to build simple applications that can read and display images. It also introduces basic OpenCV data structures.
- Chapter 2, Manipulating the Pixels, explains how an image can be read. It describes different methods for scanning an image in order to perform an operation on each of its pixels.
- Chapter 3, Processing Color Images with Classes, consists of recipes presenting various objectoriented design patterns that can help you to build better computer vision applications. It also discusses the concept of colors in images.
- Chapter 4, Counting the Pixels with Histograms, shows you how to compute image histograms and how they can be used to modify an image. Different applications based on histograms are presented that achieve image segmentation, object detection, and image retrieval.
- Chapter 5, Transforming Images with Morphological Operations, explores the concept of mathematical morphology. It presents different operators and how they can be used to detect edges, corners, and segments in images.
- Chapter 6, Filtering the Images, teaches you the principles of frequency analysis and image filtering. It shows how low-pass and high-pass filters can be applied to images, and presents the concept of derivative operators.
- Chapter 7, Extracting Lines, Contours, and Components, focuses on the detection of geometric image features. It explains how to extract contours, lines, and connected components in an image.
- Chapter 8, Detecting Interest Points, describes various feature point detectors in images.
- Chapter 9, Describing and Matching Interest Points, explains how descriptors of interest points can be computed and used to match points between images.
- Chapter 10, Estimating Projective Relations in Images, explores the projective relations that exist between two images in the same scene. It also describes how to detect specific targets in an image.
- Chapter 11, Reconstructing 3D Scenes, allows you to reconstruct the 3D elements of a scene from multiple images and recover the camera pose. It also includes a description of the camera calibration process.
- Chapter 12, Processing Video Sequences, provides a framework to read and write a video sequence and to process its frames. It also shows you how it is possible to extract foreground objects moving in front of a camera.
- Chapter 13, Tracking Visual Motion, addresses the visual tracking problem. It also shows you how to compute apparent motion in videos, and explains how to track moving objects in an image sequence.
- Chapter 14, Learning from Examples, introduces basic concepts in machine learning. It shows how object classifiers can be built from image samples.
- Chapter 15, OpenCV Advanced Features, covers the most advanced and newest features of OpenCV. This chapter introduces the reader to state-of-the-art deep learning models in artificial intelligence and machine learning. Deep learning is applied to object detection, autonomous cars, and facial recognition. This chapter will introduce you to OpenCV.js, a new binding that ports web technology directly from OpenCV.