Abid K.
Preface
OpenCV is an open-source, cross-platform library that provides building blocks for computer vision experiments and applications. It provides high-level interfaces for capturing, processing, and presenting image data. For example, it abstracts details about camera hardware and array allocation. OpenCV is widely used in both academia and industry. Today, computer vision can reach consumers in many contexts via webcams, camera phones, and gaming sensors such as the Kinect. For better or worse, people love to be on camera, and as developers, we face a demand for applications that capture images, change their appearance, and extract information from them. OpenCV's Python bindings can help us explore solutions to these requirements in a high-level language and in a standardized data format that is interoperable with scientific libraries such as NumPy and SciPy.
Computer vision is found everywhere in modern technology. OpenCV for Python enables us to run computer vision algorithms in real time. With the advent of powerful machines, we are getting more processing power to work with. Using this technology, we can seamlessly integrate our computer vision applications into the cloud. Web developers can develop complex applications without having to reinvent the wheel.
This course is specifically designed to teach the following topics. First, we will learn how to get started with OpenCV and OpenCV 3's Python API, and develop a computer vision application that tracks body parts. Then, we will build amazing intermediate-level computer vision applications such as making an object disappear from an image, identifying different shapes, reconstructing a 3D map from images, and building an augmented reality application. Finally, we'll move to more advanced projects such as hand gesture recognition, tracking visually salient objects, as well as recognizing traffic signs and emotions on faces using support vector machines and multi-layer perceptron respectively.
What this learning path covers
, OpenCV Computer Vision with Python , in this module you can have a development environment that links Python, OpenCV, depth camera libraries (OpenNI, SensorKinect), and general-purpose scientific libraries (NumPy, SciPy).
, OpenCV with Python By Example , this module covers various examples at different levels, teaching you about the different functions of OpenCV, and their actual implementations.
, OpenCV with Python Blueprints , this module intends to give the tools, knowledge, and skills you need to be OpenCV experts and this newly gained experience will allow you to develop your own advanced computer vision applications.
What you need for this learning path
This course provides setup instructions for all the relevant software, including package managers, build tools, Python, NumPy, SciPy, OpenCV, OpenNI, and SensorKinect. The setup instructions are tailored for Windows XP or later versions, Mac OS 10.6 (Snow Leopard) or later versions, and Ubuntu 12.04 or later versions. Other Unix-like operating systems should work too if you are willing to do your own tailoring of the setup steps. You need a webcam for the projects described in the course. For additional features, some variants of the project use a second webcam or even an OpenNI-compatible depth camera such as Microsoft Kinect or Asus Xtion PRO.
The hardware requirement being a webcam (or camera device), except for Chapter 2, Hand Gesture Recognition Using a Kinect Depth Sensor , of the 3rd Module which instead requires access to a Microsoft Kinect 3D Sensor or an Asus Xtion.
The course contains projects with the following requirements.
All projects can run on any of Windows, Mac, or Linux, and they require the following software packages:
- OpenCV 2.4.9 or later: Recent 32-bit and 64-bit versions as well as installation instructions are available at http://opencv.org/downloads.html. Platform-specific installation instructions can be found at http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html.
- Python 2.7 or later: Recent 32-bit and 64-bit installers are available at https://www.python.org/downloads. The installation instructions can be found at https://wiki.python.org/moin/BeginnersGuide/Download.
- NumPy 1.9.2 or later: This package for scientific computing officially comes in 32-bit format only, and can be obtained from http://www.scipy.org/scipylib/download.html. The installation instructions can be found at http://www.scipy.org/scipylib/building/index.html#building.
wxPython 2.8 or later: This GUI programming toolkit can be obtained from http://www.wxpython.org/download.php. Its installation instructions are given at http://wxpython.org/builddoc.php.
In addition, some chapters require the following free Python modules:
- SciPy 0.16.0 or later: This scientific Python library officially comes in 32-bit only, and can be obtained from http://www.scipy.org/scipylib/download.html. The installation instructions can be found at http://www.scipy.org/scipylib/building/index.html#building.
- matplotlib 1.4.3 or later: This 2D plotting library can be obtained from http://matplotlib.org/downloads.html. Its installation instructions can be found by going http://matplotlib.org/faq/installing_faq.html#how-to-install.
- libfreenect 0.5.2 or later: The libfreenect module by the OpenKinect project (http://www.openkinect.org) provides drivers and libraries for the Microsoft Kinect hardware, and can be obtained from https://github.com/OpenKinect/libfreenect. Its installation instructions can be found at http://openkinect.org/wiki/Getting_Started.