- 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
Image Segmenting a Cell Cluster
12 views (last 30 days)
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?
0 Comments
Answers (1)
Image Analyst
on 28 Jul 2016
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
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.
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!