Image Segmenting a Cell Cluster
Show older comments
Im building a program which will take in images, such as the one attached below (original.jpg), and identify individual cells. So far it has been relatively successful, and through image segmentation I can get something like this (orignal segmentation.jpg).
What my program seems to have trouble with are cell clusters. The function recognizes a large group of cells as one object, but I would like to be able to outline accurately all the individual cells within it. So far I am able to isolate a cluster (cluster original.jpg), erode the image, binarize it through thresholding (cluster binary.jpg), and obtain rough boundaries of most of the cells (cluster clean.jpg).
Some primary issues
- Because I isolate each cluster through a BoundaryBox, other stray cells may be included in the picture as well
- Image erosion causes some cells to have a dark circle at its end, which, after binarization, looks like a separate cell.
- I need to set a threshold factor for each cluster, even within the same image
How can I go about tackling these remaining issues? Is there a better method of segmentation here?
Answers (1)
Image Analyst
on 28 Jul 2016
0 votes
- Don't use a bounding box. Use the actual pixels, like what you get from PixelIdxList or the labeled image.
- Why are you eroding anyway?
- This is not a question
What do you really want to know about the image? Surely not a list of (x,y) boundary coordinates. What to you want really? Count? Area? Something else?
2 Comments
Aurik Sarker
on 28 Jul 2016
Image Analyst
on 28 Jul 2016
Sounds like what you really need is the count and the tracking of the centroid. Sounds like you were trying to do what a tophat or bottom hat filter does, but you didn't know of the existence of imtophat() or imbothat(). You can flatten the field by using adapthisteq() or by fitting a 2-D polynomial to the image and dividing by that. You can enhance edges with a linear filter using conv2(). Just make a kernel with a positive center and negative values around it. This is equivalent to doing a dog (difference of Gaussians) filter.
Categories
Find more on Image Segmentation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!