
OpenCV is an open source computer vision programming library. With it, programmers can perform advanced image processing tasks easily. Mobile applications too can be created with OpenCV for Android, iOS and WP7.
Installation of OpenCV on Linux is rather complicated. This video shows you how to get it right, step-by-step using Ubuntu. The installation includes the new Qt GUI, Threading Building Blocks (TBB), Python support and more.
OpenCV can be hard to install in Windows. OpenCV is installed, step-by-step on Windows in this video.
OpenCV offers different programming interfaces. Get to know which are the possible programming languages that can be used with OpenCV.
The C interface is useful as many examples are written in it. Here we will learn the basics of it. We will also learn how to use pkg-config to compile the code.
The C++ interface is useful as it provides better memory management than the C interface. Here we will learn the basics of it. We will also learn how to compile it using CMake.
The Python interface is useful because many people are more confident with Python rather than C/C++. Also, the final code is usually shorter as compared to using C or C++. Here we will learn the basics of it.
Drawing shapes such as rectangles, lines, circles, or text is very useful when working with OpenCV. Here we will learn the basics of it.
Sometimes we need to hide some areas of an image by using OpenCV to blur it. OpenCV can also be used to smoothen parts of an image.
In image processing, sometimes we need to merge objects together, separate them, fill holes, or remove noise which can be done with image morphology.
Most of the times images need to be scaled or rotated. OpenCV allows us to perform those actions easily.
Sometimes we need to represent an image in another way to understand it better. Histograms are a great tool for that.
When you want to separate or segment data into groups you can use k-means to separate large, medium, and small images automatically, and many other applications.
Sometimes you roughly know how segmentation should be done. That is when the Watershed algorithm can help us, especially for robotics.
When we need to separate an object from a cluttered scene, we can use the Grabcut algorithm to segment it automatically.
Knowing where a specific area of an image is in another image, is very useful for many applications. Learn how to find points of an image in another one.
Landscapes or large objects usually can't be photographed in a single shot. The solution is to take pictures of parts of the scene and then merge them together using OpenCV.
Sometimes, specially when scanning photographs, small unwanted errors appear, because of dust or other problems. By using OpenCV, we can easily remove those problems.
Enhance low light images by learning how to equalize the histograms so that the average brightness is increased as well as the contrast, resulting in brighter images.
Learn how to display an image that has more than 8 bits per channel by using OpenCV to read an HDR image.
Use OpenCV to locate a specific logo or other simple shapes in your image very easily with its Chamfer Matching functionality.
Learn how to use OpenCV to detect faces, or other objects in your images, such as eyes.
Use specific features and a detector that is suited for automatic people-detection with OpenCV, in order to detect people in images.
Detecting objects in OpenCV is great when your objects are already trained, but when we need to detect something else we need to create a new cascade.
You may want to automatically identify a person. With OpenCV you can compare it to a database of known faces using Fisherfaces.
With a calibrated camera, we can reduce those distortions, and create a better image using OpenCV.
Remove or reduce the distortion of an image.
Sometimes we may need to see a wall or floor of an image as if we were standing in front of them. You can do that by doing a perspective transform.
Calibrate and rectify our stereo images.
We may need to know about the position of the objects of your scene. We can do that by generating a disparity image.
"OpenCV Computer Vision Application Programming" allows you to dive into the world of computer vision and get many practical benefits from it with minimal effort. You will learn to recognize and identify specific faces among others, or even train your very own object detector to use it for your own specific purposes.
"OpenCV Computer Vision Application Programming" helps you get started with the library by first learning how to install OpenCV correctly on your system. You will then explore basic image processing concepts as well as the different interfaces that you can use in OpenCV. Develop techniques to separate foreground and background in your images, create stunning panoramas easily by stitching normal images together, enhance your photographs, calibrate your camera and automatically detect common objects like faces or people on your images. Reduce the distortion of your photographs and make straight lines of the scene look straight instead of bent in your images.
You will learn to change the perspective of your images so that it appears that you are moving around, similar to google street view navigation and develop a 3D representation of a scene using stereoscopic images.
On completion of this course, you will be able to mix and match the provided examples to build your own application.
Sebastian Montabone is a computer engineer with a Master of Science degree in computer vision. He is the author of scientific articles regarding image processing and a book, Beginning Digital Image Processing: Using Free Tools for Photographers.
He uses many open source software and strongly believes in the open source philosophy. Embedded systems also have been of interest to him, especially mobile phones. He created and taught a course about development of applications for mobile phones, and has been recognized as a Nokia developer champion.
If you could summarize all his areas of interest in a single concept, it would be ubiquitous computing. Currently he is a software consultant and entrepreneur.