How to distinguish each fiber and analyze the properties of the fiber?
Show older comments

Hello everyone,
I am currently trying to develop a code to analyze each fiber using the Image Processing Toolbox. The image I am working with is a microscopic image of the cross section of the fiber. I tried thresholding the image, but since the single fibers have shades of light, it is extremely difficult for Matlab to distinctly define the individual fibers. The background(empty space) is also bright so there is no real distinction between parts of the fiber and the background space. When I converted the colorimg to a grayscale then to a binaryimg, the binaryimg was not recognizing the each single fiber. I am just wondering if there is a more efficent approach to analyzing this img?
The other way I believe I can alleviate this problem is if I dye the fibers so there is a better distiction between the fiber and the background light.
Thanks in advance to who helps!
Richard
6 Comments
Walter Roberson
on 6 Sep 2013
Is that gold image an example of what you are working with? It shows up quite small here. Are the fibres the edge around the circles?
the cyclist
on 9 Sep 2013
Sorry, trying to be excruciatingly clear:
Are the fibers the disks (surrounded by circles), or the circles themselves (the edges of the disks)?
Richard
on 9 Sep 2013
Walter Roberson
on 9 Sep 2013
Wait, so is your original data greyscale, and you have false-colored it to gold?
Richard
on 9 Sep 2013
Answers (2)
Image Analyst
on 9 Sep 2013
1 vote
Of course if you can get a background that is not in the black to gold/yellow spectrum you will get more contrast and be able to segment these better. For example, something in the greenish/bluish hue range (a hue diametrically opposite gold). In addition, is it possible to separate the fibers so that they aren't touching? It's always better to start with a good image than to try to fix up a bad one post-acquisition.
4 Comments
Walter Roberson
on 9 Sep 2013
I'm thinking "active contours"? Or watershed thresholding ?
Image Analyst
on 9 Sep 2013
They have two new active contour methods ( http://www.mathworks.com/help/images/ref/activecontour.html) but I haven't had a chance to try them out yet. The touching can be solved by watershed but you have to get a binary image first and that's the tough part because the object is brighter than the background sometimes, and darker sometimes. This means that at some location it's the same as the background and some of the interior will be the same color as the background. If they were convex, you could solve that by using imconvhull(), but if they're touching that rules that out. So I'm thinking he might have to either try an edge detector, or imfindcircles(), as well as activecontour(). Solving this with images as they are will take a lot of experimentation and cleverness.
Richard
on 10 Sep 2013
Image Analyst
on 10 Sep 2013
Sounds like consultation with a professional microscopist would be helpful. SEM images are often even more difficult to analyze than optical images because of the monochrome, perspective/3D, shadowed nature of them, but maybe if you're looking at just cross sections it mgiht be okay.
Muthu Annamalai
on 10 Sep 2013
0 votes
Have you tried a auto-correlation and counting the peaks? This could easily give you the number of fibers, since they all resemble each other.
Categories
Find more on Video Formats and Interfaces 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!