Cover
Copyright
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: General Overview of Computer Vision Systems
Introducing computer vision systems
Approaching computer vision problems
Data acquisition
Preprocessing
Feature extraction by image processing
Post-processing and post-filtering
Recognition or detection
Acting in the real world
Connecting the pieces
Summary
Chapter 2: Fundamentals and Installation of OpenCV
Fundamentals of OpenCV
The installation of OpenCV
Installing OpenCV on Linux
Installing and configuring packages
Using OpenCV with Eclipse CDT
Installing OpenCV on Mac OS
Getting command-line tools
Installing HomeBrew
Using OpenCV in Xcode
Installing OpenCV on Windows
Installing MS Visual Studio 2013
OpenCV on iOS
OpenCV on Android
Installing OpenCV4Android
Eclipse integration
Running samples
Summary
Chapter 3: Data Acquisition with OpenCV and Arduino
Image and video acquisition
Camera selection
Resolution
Color capabilities
Frame rate
2D or 3D
Communication interface
Image acquisition
Reading a static image
Taking a snapshot from a webcam
Getting a video stream from the webcam
Interaction with Kinect
Integration of Kinect with OpenCV
Sensor data acquisition
Setting up an Arduino environment
Fundamentals of sensors
Sensor types
Sampling theorem
Dealing with noise
Reading data from the temperature sensor
Summary
Chapter 4: Filtering Data with OpenCV
Getting started with filtering
2D convolution
Spatial domain filtering
Smoothing
Sharpening
Color conversions
Grayscale
Binary
Constant thresholding
Adaptive thresholding
Morphological filters
Erosion and dilation
Erosion
Dilation
Opening and closing
Closing
Opening
Gradients and edge detection
The Canny edge detector
Laplacian of Gaussian filter
Sobel
Custom filtering
Histogram equalization
Chapter project
Summary
Chapter 5: Processing Vision Data
with OpenCV
Extracting features
Using basic statistics
Using color features
Using template matching features
Using contours
Using the convex hull
Using moments
Using the Hough transform
Using corners
Using SIFT
Using SURF
Using ORB
Using blob analysis
Summary
Chapter 6: Recognition with OpenCV
Building applications which can think
Template matching
Feature matching
FLANN-based matching
Using cascade classifiers
Using support vector machines
Summary
Chapter 7: Communicating with Arduino Using OpenCV
Communicating with Arduino
Wired communications
Communicating via USB
Communicating via the serial port
Communicating via Ethernet
Wireless communications
Communicating via Bluetooth Low Energy
Communicating via ZigBee
Communicating via Wi-Fi
Communicating via radio frequency
Communicating with Java
Communicating with C++
Summary
Chapter 8: Acting in the Real World
with Arduino
Interfacing electric motors
Driving DC motors
Driving stepper motors
Driving servo motors
Using display screens
Using LCD screens
Using TFT screens
Summary
Chapter 9: Building a "Click-to-Go" Robot
System overview
Building a robot
Building mechanics
Building the electronics
Robot/receiver and transmitter drawings
Building the robot controller and communications
Building the vision application
Building a vision controller and communications
Summary
Index