Background Removal From Images

I'm working on a stereo camera setup and need to track a white ball as it moves around. Here is a picture of the setup:
As you can see there is a high contrast between the ball and background. Currently I am thresh holding the image and then getting the centroid of the ball to determine the location. I would like to have a more robust method where I would subtract the background. Any help would be greatly appreciated.

 Accepted Answer

Image Analyst
Image Analyst on 25 Sep 2013
Edited: Image Analyst on 25 Sep 2013
correctedBallImage = abs(double(ballImage) - double(backgroundImage));

4 Comments

Does the BallImage have to be in grayscale or can I use rgb?
Brandon
Brandon on 25 Sep 2013
Edited: Brandon on 25 Sep 2013
Also do you mean:
if true
correctedBallImage = abs(double(ballImage) - double(backgroundImage));
end
Ok, so I just tried the above function and the ball completely disappears.
Any suggestions on lighting because the ball is close to as bright as other things in the scene. The lights above the scene are florescent, what type of lighting should I be using?
If the ball disappears then it must be the same intensity as the background so you won't see it. You must have the ball be either brighter or darker than the background it's over. In that case, you will see it in the difference image. You can use rgb or grayscale. But to display the corrected image you must use either cast to uint8 for rgb, or use [] and leave it as double for grayscale:
correctedBallImage = uint8(correctedBallImage); % Gray scale or RGB.
imshow(correctedBallImage, []); % Gray scale only.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!