MATLAB: Bacterial Cell Segmentation – Ignoring touching bacterial cells

cell segmentationcellsimage analysisimage processingImage Processing Toolboximage segmentation

I’m creating a program that will take in cell images (160810_rpoEdel_13.jpg) and segment the image to identify individual cells’ centroid location and pixel intensity values. So far, by using sobel edge detection and regionprops to filter out things that are too big, my program can remove most clusters and returns an image that is pretty decent. However, there some touching cells that pass through the filters (segmentedImage.jpg).
Is there another / better way to ignore or filter out the touching cells? Or a better way to segment them?

Best Answer

The binary image doesn't even look like it came from the same image. You can check solidity to find out which blobs are touching, assuming one of them is at an angle to the other.
By the way, I don't think I'd use Sobel filter - it already looks kind of like a Sobel filtered image. Anyway, you can get a decent binary image just by taking the red channel and thresholding it at 110.
Related Question