OpenCV with Python Blueprints
This repository contains all up-to-date source code for the following book:
Michael BeyelerOpenCV with Python Blueprints: Design and develop advanced computer vision projects using OpenCV with Python
Packt Publishing Ltd., London, England
Paperback: 230 pages
ISBN 978-178528269-0
This book demonstrates how to develop a series of intermediate to advanced projects using OpenCV and Python, rather than teaching the core concepts of OpenCV in theoretical lessons. Instead, the working projects developed in this book teach the reader how to apply their theoretical knowledge to topics such as image manipulation, augmented reality, object tracking, 3D scene reconstruction, statistical learning, and object categorization.
By the end of this book, readers will be OpenCV experts whose newly gained experience allows them to develop their own advanced computer vision applications.
If you use either book or code in a scholarly publication, please cite as:
M. Beyeler, (2015). OpenCV with Python Blueprints: Design and develop advanced computer vision projects using OpenCV with Python. Packt Publishing Ltd., London, England, 230 pages, ISBN 978- 178528269-0.
Or use the following bibtex:
@book{OpenCVWithPythonBlueprints,
title = {{OpenCV with Python Blueprints}},
subtitle = {Design and develop advanced computer vision projects using {OpenCV} with {Python}},
author = {Michael Beyeler},
year = {2015},
pages = {230},
publisher = {Packt Publishing Ltd.},
isbn = {978-178528269-0}
}
Scholarly work referencing this book:
- B Zhang et al. (2018). Automatic matching of construction onsite resources under camera views. Automation in Construction.
- A Jakubović & J Velagić (2018). Image Feature Matching and Object Detection Using Brute-Force Matchers. International Symposium ELMAR.
- B Zhang et al. (2018). Multi-View Matching for Onsite Construction Resources with Combinatorial Optimization. International Symposium on Automation and Robotics in Construction (ISARC) 35:1-7.
- LA Marcomini (2018). Identificação automática do comportamento do tráfego a partir de imagens de vÃdeo. Escola de Engenharia de São Carlos, Master's Thesis.
- G Laica et al. (2018). Diseño y construcción de un andador inteligente para el desplazamiento autónomo de los adultos mayores con visión reducida y problemas de movilidad del hogar de vida "Luis Maldonado Tamayo" mediante la investigación de técnicas de visión artificial. Departamento de Ciencias de la EnergÃa y Mecánica, Universidad de las Fuerzas Armadas ESPE, Master's Thesis.
- I Huitzil-Velasco et al. (2017). Test of a Myo Armband. Revista de Ciencias Ambientales y Recursos Naturales 3(10): 48-56.
- Y Güçlütürk et al. (2016). Convolutional sketch inversion. European Conference on Computer Vision (ECCV) 810-824.
All code was tested with OpenCV 2.4.9 and Python 2.7 on Ubuntu 14.04 and Windows 8.1, and is available from: https://github.com/mbeyeler/opencv-python-blueprints.
For questions, discussions, and more detailed help please refer to the Google group: https://groups.google.com/d/forum/opencv-python-blueprints
Critical Reception
What readers on Amazon have to say:
The author does a great job explaining the concepts needed to understand what's happening in the application without the need of going into too many details.
– Sebastian Montabone
Excellent book to build practical OpenCV projects! I'm still relatively new to OpenCV, but all examples are well laid out and easy to follow. The author does a good job explaining the concepts in detail and shows how they apply in real life. As a professional programmer, I especially love that you can just fork the code from GitHub and follow along. Strongly recommend to readers with basic knowledge of computer vision, machine learning, and Python! – Amazon Customer
Usually I'm not a big fan of technical books because they are too dull, but this one is written in an engaging manner with a few dry jokes here and there. Can only recommend!
– lakesouth
Who This Book Is for
As part of Packt's Blueprints series, this book is for intermediate users of OpenCV who aim to master their skills by developing advanced practical applications. You should already have some experience of building simple applications, and you are expected to be familiar with OpenCV's concepts and Python libraries. Basic knowledge of Python programming is expected and assumed.
By the end of this book, you will be an OpenCV expert, and your newly gained experience will allow you to develop your own advanced computer vision applications.
Software Requirements
All projects can run on Windows, Mac, or Linux, and 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.
In addition, some chapters require the following free Python modules:
-
wxPython 2.8 or later (Chapters 1 to 4, 7): 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. If you are using Max OS 10.11 (El Capitan), try:
$ sudo pip install --upgrade --trusted-host wxpython.org --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix
See this bug for context. Thanks to @KaroAntonio for the fix!
-
matplotlib 1.4.3 or later (Chapters 4 to 7): This 2D plotting library can be obtained from http://matplotlib.org/downloads.html. Its installation instructions can be found by going to http://matplotlib.org/faq/installing_faq.html#how-to-install.
-
SciPy 0.16.0 or later (Chapter 1): 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.
-
libfreenect 0.5.2 or later (Chapter 2): 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.
Furthermore, the use of iPython (http://ipython.org/install.html) is highly recommended as it provides a flexible, interactive console interface.
License
The software is released under the GNU General Public License (GPL), which is the most commonly used free software license according to Wikipedia. GPL allows for commercial use, distribution, modification, patent use, and private use.
The GPL is a copyleft license, which means that derived works can only be distributed under the same license terms. For more information, please see the license file.