- Grab the video frame.
- Convert the video frame to the HSV color space.
- Split the frame into individual components:
(separate images for H, S, and V). - Apply a threshold to each compenent (hopefully keeping just the dot from the laser). It was originally suggested that just the Hue component be used to search for the laser's dot, but I actually got several false positives doing this. Therefore, using Value in addition to Hue gave me a more reliable result. I can see where finding good threshold values for all 3 components would be a good approach in some situations.
- Finally, perform an AND operation on the 3 images (which "should" cut down on false positives)
I should note that my testing was performed using a red laser pointer and a large white sheet of paper in an well-lit office. Since I was only tracking the dot on the paper, this turned out to be a fairly easy task to accomplish. Finding good threshold values in other situations would be much more difficult.
Download this Python code: (laser_tracker.zip)