Skip to main content
main-content

Über dieses Buch

Practical OpenCV is a hands-on project book that shows you how to get the best results from OpenCV, the open-source computer vision library.

Computer vision is key to technologies like object recognition, shape detection, and depth estimation. OpenCV is an open-source library with over 2500 algorithms that you can use to do all of these, as well as track moving objects, extract 3D models, and overlay augmented reality. It's used by major companies like Google (in its autonomous car), Intel, and Sony; and it is the backbone of the Robot Operating System’s computer vision capability. In short, if you're working with computer vision at all, you need to know OpenCV.

With Practical OpenCV, you'll be able to:

Get OpenCV up and running on Windows or Linux. Use OpenCV to control the camera board and run vision algorithms on Raspberry Pi. Understand what goes on behind the scenes in computer vision applications like object detection, image stitching, filtering, stereo vision, and more. Code complex computer vision projects for your class/hobby/robot/job, many of which can execute in real time on off-the-shelf processors. Combine different modules that you develop to create your own interactive computer vision app.

Inhaltsverzeichnis

Frontmatter

Getting Comfortable

Frontmatter

Chapter 1. Introduction to Computer Vision and OpenCV

A significant share of the information that we get from the world while we are awake is through sight. Our eyes do a wonderful job of swiveling about incessantly and changing focus as needed to see things. Our brain does an even more wonderful job of processing the information stream from both eyes and creating a 3D map of the world around us and making us aware of our position and orientation in this map. Wouldn't it be cool if robots (and computers in general) could see, and understand what they see, as we do?
Samarth Brahmbhatt

Chapter 2. Setting up OpenCV on Your Computer

Now that you know how important computer vision is for your robot and how OpenCV can help you implement a lot of it, this chapter will guide you through the process of installing OpenCV on your computer and setting up a development workstation. This will also allow you to try out and play with all the projects described in the subsequent chapters of the book. The official OpenCV installation wiki is available at http://opencv.willowgarage.com/wiki/InstallGuide , and this chapter will build mostly upon that.
Samarth Brahmbhatt

Chapter 3. CV Bling—OpenCV Inbuilt Demos

Now that you (hopefully) have OpenCV installed on your computer, it is time to check out some cool demos of what OpenCV can do for you. Running these demos will also serve to confirm a proper install of OpenCV.
Samarth Brahmbhatt

Chapter 4. Basic Operations on Images and GUI Windows

In this chapter you will finally start getting your hands dirty with OpenCV code that you write yourself. We will start out with some easy tasks. This chapter will teach you how to:
Samarth Brahmbhatt

Advanced Computer Vision Problems and Coding Them in OpenCV

Frontmatter

Chapter 5. Image Filtering

In this chapter, we will continue our discussion of basic operations on images. In particular, we will talk about some filter theory and different kinds of filters that you can apply to images in order to extract various kinds of information or suppress various kinds of noise.
Samarth Brahmbhatt

Chapter 6. Shapes in Images

Shapes are one of the first details we notice about objects when we see them. This chapter will be devoted to endowing the computer with that capability. Recognizing shapes in images can often be an important step in making decisions. Shapes are defined by the outlines of images. It is therefore logical that the shape recognition is step is usually applied after detecting edges or contours.
Samarth Brahmbhatt

Chapter 7. Image Segmentation and Histograms

Welcome to the seventh chapter! After discussing shapes and contours in the last chapter, I want to talk about the very important topic of image segmentation, which is one of the most fundamental computer vision problems attracting a lot of research today. We will discuss some of the segmentation algorithms that OpenCV has up its sleeve, and also how you can use other techniques such as morphological operations to make your own custom segmentation algorithm.
Samarth Brahmbhatt

Chapter 8. Basic Machine Learning and Object Detection Based on Keypoints

In this exciting chapter I plan to discuss the following:
Samarth Brahmbhatt

Chapter 9. Affine and Perspective Transformations and Their Applications to Image Panoramas

In this chapter you will learn about two important classes of geometric image transformations—Affine and Perspective—and how to represent and use them as matrices in your code. This will act as base knowledge for the next chapter, which deals with stereo vision and a lot of 3D image geometry.
Samarth Brahmbhatt

Chapter 10. 3D Geometry and Stereo Vision

This chapter introduces you to the exciting world of the geometry involved behind computer vision using single and multiple cameras. Knowledge of this geometry will enable you to translate image coordinates into actual 3D world coordinates—in short, you will be able to relate position in your images to well-defined physical positions in the world.
Samarth Brahmbhatt

Chapter 11. Embedded Computer Vision: Running OpenCV Programs on the Raspberry Pi

Embedded computer vision is a very practical branch of computer vision that concerns itself with developing or modifying vision algorithms to run on embedded systems—small mobile computers like smartphone processors or hobby boards. The two main considerations in an embedded computer vision system are judicious use of processing power and low battery consumption. As an example of an embedded computing system, we will consider the Raspberry Pi (Figure 11-1), an ARM processor–based small open-source computer that is rapidly gaining popularity among hobbyists and researchers alike for its ease of use, versatile capabilities, and surprisingly low cost in spite of good build and support quality.
Samarth Brahmbhatt

Backmatter

Weitere Informationen