In this coding sample we will use the powerful library OpenCV (Open Computer Vision) to track a red ball.
This will be the ground base for my next videos / tutorials that we will build on top of this code (but more for that later).
In case you need help with how to install openCV on your raspberry pi (small hint where this is going) you can watch my video on
my channel:
How To Install OpenCV on Raspberry Pi
How to track objects
Tracking an object requires to know Min/Max of the HSV (Hue,Saturation and Value) of the image, that way we can generate the threshold (or binary) Image.
Knowing the binary image, we will be able to find the contours as well as the hierarchy of the contours.
Steps to start tracking
Track-bars
Track-bars to send HSV values to Binary Image
Sliding the Min/Max of HSV will effect the binary image. The goal is to have the binary image all black except what you would like to track.
HSV Image
HSV Of the Original Image
This image is just for show, how the HSV is compare to the Original image.
Binary / Threshold Image
The Binary / Threshold Image as the Sliders are moved
As you move the sliders / track-bars the binary image will reflect these changes.
You goal here that the image will be all black except what you would like to track
Original Image With Tracking
Original Image With Circle on What we are tracking
This is the original Image with the tracking circle around the object (at this case it is just a red book on the shelf.)
There are many options to run the code, but the main ones are:
InitTrackbars - This function will take the name of the trackbar window, and will initialize the trackbars (including setting the Min/Max Values for the Binary Window)
tracker.SetUseDilate(true/false) - if you want to use Dilate while the program is calculating the tracking object
tracker.SetUseErode(true/false) - if you want to use Erode while the program is calculating the tracking object
Note: - if Dilate and Erode are set to false the program will not run the Morph function and you will see more noise in the binary / threshold image.
To download the project (which is currently for Windows using VS 2012) you can
download the file here