pythoncomputer-visionimage-segmentationmahotas

Cell segmentation


I'm newbie in computer vision. My goal is to distinguish individual cells on a set of pictures like this: Example

Basically, I blur whole image, find region maximum on it and use it like seed in watershed algorithm on distance tranfsform of threesholded blurred image. In fact I'm following tutorial which you can find here:

github/luispedro/python-image-tutorial

(sorry, can't post more than 2 links).

My problem is that some cells in my set have very distinguishable dark nucleus (which you can see on the example) and my algorithm produce results like this which are cleary wrong.

Of course it's possible to fix it by increasing strength of gaussian blur but it will merge some other cells toghether which is even worse.

What can be done to solve this problem? What are other possibilites if watershed just isn't situable for this case (keeping in mind that my set is pretty small and learning seems impossible)?


Solution

  • The watershed tends to over-segment if you don't use a watershed with markers.

    Usually, we start with DNA/DAPI segmentation that is easy, and it provides the number of cells and the inner markers for the watershed.

    If you blur the images, you smooth all the patterns. You should use an alternate sequential filter (opening / closing) in order to simplify each zone, and then try an ultimate eroded in order to find the number of inner seed for your watershed.