Review of the Book “OpenCV Essentials”

A few weeks ago I have been selected by Packt Publishing to review the new book “OpenCV Essentials” by Oscar Deniz Suarez et.al. Thus here is my objective review:

Firstly, let me share with you the link of this book from Packt Publishing, also you can find it in Amazon. I got my copy from the first link, they provide you the source code of the book and also additional formats to download your book, I preferred it in Kindle Edition.

4244OS_OpenCV Essentials

This book is for people who have at least basic knowledge in OpenCV and Computer Vision, if you are new in OpenCV maybe this book won’t be the suitable one. Additionally all the examples are in C++ for Visual Studio, I did not like the last restriction, but it was necessary for some examples. This book show some upcoming OpenCV functions for the next release 3.0 (available at this time in Alpha version), and there are a lot of very useful functions.

Let’s begin with the main review. First chapters are about OpenCV basic functionalities (load images, brightness, contrast, color spaces, arithmetic and geometrical transforms). For every topic they show the code, explanation and results. The book shows tips in each topic, giving you the opportunity to investigate more about the functionality, and also they usually share links to Scientific Papers, thus, if you have a better idea to improve that function it helps you to do research about it.

I found Threshold topic in Chapter 4 (What’s in the Image? Segmentation) very useful and didactic, a lot of developers (also experts) made mistakes in this topic when choosing the type of threshold. Until here, Chapters were about main OpenCV functions, but here on-wards the book becomes better and very useful with content about Pattern Recognition, Classification, also Video Processing. Thus, I will discuss separated every chapter.

Chapter 5: Focusing on the Interesting 2D Features: This Chapter is totally based in Keypoints and its variations, the book provide a lot of examples and also the matching between images using Keypoints. Additionally some new OpenCV feature detectors of the new release are explained (KAZE and AKAZE).

Chapter 6: Where’s Wally? Object Detection: The main topics are Cascade detectors and Latent SVM. The book shows an example of basic pedestrian detection in a few lines of code using HOG cascade detector. Also, if you need to train your own cascade, you will find a detailed explanation about how to do it.

Chapter 7: What is he Doing? Motion: Due to I developed this kind of systems, I particularly liked this Chapter. Topics like Video tracking, Motion and Background subtraction are now included in the new OpenCV 3.0 and certainly will be very useful for everyone who is developing/researching this area. The book does not show the typical Optical Flow, but explains and optimized and faster Lucas-Kanade optical flow instead.

Chapter 8: Advanced Topics: If you are interested in Machine learning, Classification, or CUDA GPU programming this Chapter will be very useful too. It shows how to use the Random Forest classifier, one of the best classifiers available in recognition power and efficiency. Also the typical SVM is explained with a simple version of a recognition system.

People detector

Chapter 6: People detector result

To summarize, if you are using OpenCV for basic image processing certainly you will be more interested in Chapter 1 to 4, and maybe 5. If you need more depth knowledge and want to do complex Pattern Recognition systems you will be interested in Chapter 5 on-wards. The main weak point of this book is about pre-processing image explanation, although authors show some of them, they do not explain the real potential of the pre-processing step for this kind of systems. In all my experience I used a lot of pre-processing functions to improve results. Simple functions like erode, dilate and smoothing to avoid noise in images are very useful in all Computer Vision projects. Afterwards, I found this book very useful and recommendable.

Overall, this is a must-read book for programmers, researchers, and people eager with basic OpenCV, Computer Vision and C++ knowledge.

Leave a comment