Book Image

OpenCV 4 for Secret Agents - Second Edition

By : Joseph Howse
Book Image

OpenCV 4 for Secret Agents - Second Edition

By: Joseph Howse

Overview of this book

OpenCV 4 is a collection of image processing functions and computer vision algorithms. It is open source, supports many programming languages and platforms, and is fast enough for many real-time applications. With this handy library, you’ll be able to build a variety of impressive gadgets. OpenCV 4 for Secret Agents features a broad selection of projects based on computer vision, machine learning, and several application frameworks. To enable you to build apps for diverse desktop systems and Raspberry Pi, the book supports multiple Python versions, from 2.7 to 3.7. For Android app development, the book also supports Java in Android Studio, and C# in the Unity game engine. Taking inspiration from the world of James Bond, this book will add a touch of adventure and computer vision to your daily routine. You’ll be able to protect your home and car with intelligent camera systems that analyze obstacles, people, and even cats. In addition to this, you’ll also learn how to train a search engine to praise or criticize the images that it finds, and build a mobile app that speaks to you and responds to your body language. By the end of this book, you will be equipped with the knowledge you need to advance your skills as an app developer and a computer vision specialist.
Table of Contents (16 chapters)
Free Chapter
1
Section 1: The Briefing
4
Section 2: The Chase
9
Section 3: The Big Reveal
12
Making WxUtils.py Compatible with Raspberry Pi
13
Learning More about Feature Detection in OpenCV
14
Running with Snakes (or, First Steps with Python)

Implementing the Angora Blue app

The Angora Blue app uses three new files—GeomUtils.py, MailUtils.py, and AngoraBlue.py, which should all be in our project's top folder. Given the app's dependencies on our previous work, the following files are relevant to Angora Blue:

  • cascades/haarcascade_frontalface_alt.xml
  • cascades/haarcascade_frontalcatface.xml
  • recognizers/lbph_human_faces.xml
  • recognizers/lbph_cat_faces.xml
  • ResizeUtils.py: A utility function for resizing images, including camera capture dimensions
  • GeomUtils.py: A utility function for geometric operations
  • MailUtils.py: A utility function for sending emails
  • AngoraBlue.py: The application that sends an email alert when a person or cat is recognized

First, let's create GeomUtils.py. It doesn't need any import statements. Let's add the following intersects function, which accepts two rectangles...