Synopses & Reviews
If you want a basic understanding of computer visions underlying theory and algorithms, this hands-on introduction is the ideal place to start. Youll learn techniques for object recognition, 3D reconstruction, stereo imaging, augmented reality, and other computer vision applications as you follow clear examples written in Python.
Programming Computer Vision with Python explains computer vision in broad terms that wont bog you down in theory. You get complete code samples with explanations on how to reproduce and build upon each example, along with exercises to help you apply what youve learned. This book is ideal for students, researchers, and enthusiasts with basic programming and standard mathematical skills.
- Learn techniques used in robot navigation, medical image analysis, and other computer vision applications
- Work with image mappings and transforms, such as texture warping and panorama creation
- Compute 3D reconstructions from several images of the same scene
- Organize images based on similarity or content, using clustering methods
- Build efficient image retrieval techniques to search for images based on visual content
- Use algorithms to classify image content and recognize objects
- Access the popular OpenCV library through a Python interface
If you want a basic understanding of computer visions underlying theory and algorithms, this hands-on introduction is the ideal place to start. As a student, researcher, hacker, or enthusiast, youll learn as you follow examples written in Python—the easy-to-learn language that has modules for handling images and mathematical computing and data mining on a par with commercial alternatives.
Programming Computer Vision with Python teaches computer vision in broad terms that wont bog you down in theory. Instead, youll find this book to be inspiring and motivating. Youll get all the code you need, with clear explanations on how to reproduce the books examples and build upon them directly.
About the Author
Jan Erik Solem is a Python enthusiast and a computer vision researcher and entrepreneur. He is an applied mathematician and has worked as associate professor, startup CTO, and now also book author. He sometimes writes about computer vision and Python on his blog www.janeriksolem.net. He has used Python for computer vision in teaching, research and industrial applications for many years. He currently lives in San Francisco.
Table of Contents
Preface; Prerequisites and Overview; Introduction to Computer Vision; Python and NumPy; Notation and Conventions; Using Code Examples; How to Contact Us; Safari® Books Online; Acknowledgments; Chapter 1: Basic Image Handling and Processing; 1.1 1.1 PIL--The Python Imaging Library; 1.2 1.2 Matplotlib; 1.3 1.3 NumPy; 1.4 1.4 SciPy; 1.5 1.5 Advanced Example: Image De-Noising; 1.6 Exercises; 1.7 Conventions for the Code Examples; Chapter 2: Local Image Descriptors; 2.1 2.1 Harris Corner Detector; 2.2 2.2 SIFT--Scale-Invariant Feature Transform; 2.3 2.3 Matching Geotagged Images; 2.4 Exercises; Chapter 3: Image to Image Mappings; 3.1 3.1 Homographies; 3.2 3.2 Warping Images; 3.3 3.3 Creating Panoramas; 3.4 Exercises; Chapter 4: Camera Models and Augmented Reality; 4.1 4.1 The Pin-Hole Camera Model; 4.2 4.2 Camera Calibration; 4.3 4.3 Pose Estimation from Planes and Markers; 4.4 4.4 Augmented Reality; 4.5 Exercises; Chapter 5: Multiple View Geometry; 5.1 5.1 Epipolar Geometry; 5.2 5.2 Computing with Cameras and 3D Structure; 5.3 5.3 Multiple View Reconstruction; 5.4 5.4 Stereo Images; 5.5 Exercises; Chapter 6: Clustering Images; 6.1 6.1 K-Means Clustering; 6.2 6.2 Hierarchical Clustering; 6.3 6.3 Spectral Clustering; 6.4 Exercises; Chapter 7: Searching Images; 7.1 7.1 Content-Based Image Retrieval; 7.2 7.2 Visual Words; 7.3 7.3 Indexing Images; 7.4 7.4 Searching the Database for Images; 7.5 7.5 Ranking Results Using Geometry; 7.6 7.6 Building Demos and Web Applications; 7.7 Exercises; Chapter 8: Classifying Image Content; 8.1 8.1 K-Nearest Neighbors; 8.2 8.2 Bayes Classifier; 8.3 8.3 Support Vector Machines; 8.4 8.4 Optical Character Recognition; 8.5 Exercises; Chapter 9: Image Segmentation; 9.1 9.1 Graph Cuts; 9.2 9.2 Segmentation Using Clustering; 9.3 9.3 Variational Methods; 9.4 Exercises; Chapter 10: OpenCV; 10.1 10.1 The OpenCV Python Interface; 10.2 10.2 OpenCV Basics; 10.3 10.3 Processing Video; 10.4 10.4 Tracking; 10.5 10.5 More Examples; 10.6 Exercises; Installing Packages; A.1 NumPy and SciPy; A.2 Matplotlib; A.3 PIL; A.4 LibSVM; A.5 OpenCV; A.6 VLFeat; A.7 PyGame; A.8 PyOpenGL; A.9 Pydot; A.10 Python-graph; A.11 Simplejson; A.12 PySQLite; A.13 CherryPy; Image Datasets; B.1 Flickr; B.2 Panoramio; B.3 Oxford Visual Geometry Group; B.4 University of Kentucky Recognition Benchmark Images; B.5 Other; Image Credits; C.1 Images from Flickr; C.2 Other Images; C.3 Illustrations; References; About the Author; Colophon;