Preprocessing methods to apply sobel edges detection

I am currently writing a segmentation algorithm in Matlab based on the distance transform and watershed lines to analyse my data (Cell Microscopy, see picture 1 for the raw image). The part of separating cells works quite well, but I have troubles with the first part of the algorithm : the preprocessing and the edges detection parts.

Link towards the images :

Indeed, my segmentation is based on bright field images with natural contours quite well highlighted, but due to some noise illumination from nucleus, the contour of some cells if often truncated when I apply the edges detection method (Sobel Filter). For instance, the edges detected in image 2 lead to a good segmentation (image 3), but the next frame could have the same cell with an intern illumination leading to a bad edges detection (image 4) and thus a bad segmentation (image 5).

I would like to find either a edges detection method more sensitive, or a method allowing to diminish the importance of the cells intern illumination. As I am far to be an expert in Image processing algorithms, I do not know if what I want can be simple to get, or If I need to look at other strategies.

Thank you very much for your time and advices.


You could also "play" with the different settings and thresholds in the edge method in Matlab. I had the same problem a while ago and it was solved choosing the "log' method (Laplassian of Gaussian).

You could begin by sticking to the Sobel method and changing the threshold (see for details), then proceed to experimenting with the other methods to find if any of them suits you better than the sobel. I would also check matlab's boundary tracing function ( ) perhaps with noholes enabled (I think this would eliminate the nucleus area appearing as an extra object and messing your segmentation). Hope this helps a bit. :D

Need Your Help

Binary Search Trees C++

c++ data-structures linked-list nodes binary-search-tree

I was trying to implement a simple Binary Search Tree for practice. I tried to just add values and print the values in the nodes. However, I am not getting the proper ascending order of values in the

3-dim putty (ssh)

html5 opengl 3d jogl

Imagine a 3-dim putty - a polyhedron which every facet is a putty shell.