'Simple' object tracking on segmented microscopy images

Dear all,
I have developed various microscopy image segmentation algorithms using MATLAB (mostly based on built-in functions from the Image Processing Toolbox).
The segmentation works very well for individual, standalone frames but I would like to use it to track movements of objects over time. More specifically, I would like to know when new objects appear, when 2 existing objects merge, etc. The objects move slowly and can easily be follow by eye when playing the movie.
I thought it would be a straightforward endeavour as I already have a very reliable segmentation algorithm. But I was unable to find an elegant way of doing it. I started playing with a crude approach that keeps track of the positions of the various objects overtime and detects events of note (merging, splitting, etc...). But I feel like I am reinventing the wheel and was wondering if there is more reliable and proven approach to such a problem.
Thanks in advance for any recommendation!
Nicolas

 Accepted Answer

This kind of capability is in the Computer Vision System Toolbox. Have you checked out any of those demos and see if they can be applied to your videos?

4 Comments

I did have a quick look but I have to admit I ended up a bit confused. The various approaches seem to do both segmentation and tracking, with the segmentation being based on object motion. Ideally I would like to directly use my segmentation outputs and feed them into a tracking algorithm. As far as I can tell this isn't possible with built-in functions? Or Am I horribly wrong here?
Thanks for the answer.
Nicolas
Of course you need to segment it first so that you have something to track. I don't have the toolbox but I do see it tracking people, cars, etc. so it can be done. I just don't have the details. But since I do see it being done with toolbox functions, I don't know why you say that it isn't possible with built-in functions (unless you mean "Base" MATLAB functions and without using any toolbox functions).
In the tracking examples for CVST, you can replace the bounding box used for initialization with the bounding box for your segmented cell. For example, in this tracking example, replace bbox with the bounding box surrounding you're segmented cell.
That makes sense. Thanks for the answer, will give it a go!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!