How to distinguish each fiber and analyze the properties of the fiber?

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

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?
Richard
Richard 2013년 9월 6일
편집: Richard 2013년 9월 6일
Hello Walter,
I resumbitted the img, but now it seems to be quite big... Yes the edge/perimeter of the circle are the fibres. This picture is of a bi-component fiber, but I am primarly focused as of now to determine the total area of each fiber as well as counting the number of fibers(we can have 70-300ish individual fibers). Hopefully if this all goes well, I will be able to also measure different cross sections of fiber(ie. triangle, ribbon, etc.) and different sections of the fiber(as in this case the core of the bi-component as opposed to the sheath of the fiber).
Thank you Walter for taking a look at this!
Richard
Sorry, trying to be excruciatingly clear:
Are the fibers the disks (surrounded by circles), or the circles themselves (the edges of the disks)?
So the small circles surrounded by circle themselves are the fiber. This particular picture is of a Sheath-Core fiber so there is a outer layer plus an inner core. I am evaluating the entire fiber so the edges would be the Sheath(which is the outer circle).
I am including an image from Hills Inc of a picture that shows a Tri-component fiber's cross section. You can tell from the picture of the different layers, which is much more clear in color. In the picture I am evaluating it is the same concept, but just not in color
Thank you cyclist for helping out!
Wait, so is your original data greyscale, and you have false-colored it to gold?
No that gold colored image is the original image. I thought tried using greyscale/thresholding to get a better distinction, but that was not the case due to the shading in the image.

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2013년 9월 9일

1 개 추천

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

I'm thinking "active contours"? Or watershed thresholding ?
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.
I think you're absolutely right Image Analyst. The main problem is the image itself, but I am quite limited on how I can acquire the image. I believe in this particular image I was using an optical microscope at 40x. As for the fibers touching, there isn't much I can do to prevent that because of the actual slide mechanism we use to situate the fiber. Basically the fibers are placed into a slit vertically(so if the slide is horizontal [-- imagine the two dashes are the two parts of the slide] and the fibers are placed vertically into the slide -|- Then the fiber is cut horizontally so it is even with the slide, but the only way the fibers stay in the slit is if they are compressed inside the slit. I, too, believe that it is too complicated to evaluate images acquired from the optical microscope, but I guess I still wanted to make a decent attempt with the capabilities of Matlab to see just how complicated this image would be.
However when it comes to the background distinction/gold hue, that is basically the light emitting from the microscope bulb that is that golden color. I would not be able to manipulate the color of the backround, but I can try to dye the actual fibers. In this particular case, the polymer that was used for the fiber is quite translucent, but we are able to dye the actual polymer during fiber processing so maybe that would be a better route? Because then the fiber is colored and the background would be the golden color. The only problem will be that there will be some fibers touching.
The other method I believe is that I would just have to use a scanning electron microscope. This would alleviate the fibers touching and will produce better images overall.
Thank you Image Analyst for the help!
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
Muthu Annamalai 2013년 9월 10일

0 개 추천

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.

질문:

2013년 9월 6일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by