Extracting metrics from cellular pattern
Show older comments
I'm trying to determine the width, height, area, and centroid of an scaly pattern shown in the attached image. I've tried using a gradient filter, edge detection, (see attached images) and various other functions, but the problem is I'm not able to get the edges to meet up and complete the cell pattern to where I can discern each cell as a separate object using, say, the regionprops function. I was hoping to get some guidance as to whether there are specific functions or established pre-processing steps I need in order to get the image in this format. Thanks in advance for any help!
2 Comments
Image Analyst
on 14 Sep 2024
I'm not exactly sure where the boundaries of the cell would be. In general, yes, in a very rough sense but not if you want it to be accurate down to the nearest pixel. Can you post an annotated one where you've drawn in the outlines, say, in red?
Would you be willing to place markers or points on the vertices of the cells? If so, a human assisted algorithm might work and be faster than trying to develop an automated algorithm, especially if you have only a handful of images, not thousands of them.
MBP
on 14 Sep 2024
Accepted Answer
More Answers (1)
Image Analyst
on 14 Sep 2024
0 votes
I think I can get fairly close. Can you give the code where you start with the image and get the binary/segmented image of the edges? Then I will try inverting the image and calling imerode and then bwmorph to grow them back out without joining them. Then call imclearborder (to get rid of partial blobs) and regionprops (to measure parameters).
By the way, you might like to look at my attached average cell shape demo, and my edge linking demo.

Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
