How to determine orientation distribution in a fiber network ?
15 次查看(过去 30 天)
显示 更早的评论
I am processing SEM images of cellulose network. I am not sure as to how to go about determining the orientation distribution of the fiber network. The algorithm that I thought of is:
- Generate random pixels
- If the value at that pixel is '1' I have landed inside the fiber network. Draw arbitrary lines through those pixels (at angle step of ,say, 5 or 10 degrees)
- The shortest of all those distances where value changes from '1' to '0',in both the directions, would give radial direction at that point
- At any pixel the orientation of the fiber would be perpendicular to the direction that gives me the shortest distance
An algorithm for diameter distribution was suggested previously but that approach did not take care of the spatial orientation of the fiber network.
A sample image is given below:
How should I go for the implementation my algorithm? Any alternate algorithm suggestion would be appreciated.
Regards,
Rajesh
4 个评论
Walter Roberson
2013-12-10
Once you have skeletonized in MATLAB, you can find the branch points, and the connectivity information. Then from two (x,y) pairs, you can compute the angle -- it is atan2( (y2 - y1), (x2 - x1) ).
回答(1 个)
Image Analyst
2013-12-10
Use imgradient() to get the gradient direction. Multiply by the skeleton to get the gradient direction only at fiber centerlines. Then take the histogram to get the distribution of directions.
3 个评论
Image Analyst
2013-12-12
imgradient() will give you the direction of fastest slope. So I was thinking that if you take the gradient of the euclidean distance transform , at the centerlines of the fibers, the slope would point towards the edge, right? You want the distribution of just the gradient along the centerlines so we need to extract out just the gradients there. So if we multiply by the skeleton we'll get zero everywhere except at the centerlines where we'll have the directions of the centerline. Follow me so far? So then if we take the histogram of that then we'll have the distribution I think you're looking for. If you want the direction along the fiber instead of perpendicular to it, then that's just 90 degrees added to the histogram. Does it make more sense now. I haven't done this so if I'm totally wrong, let me know.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Segmentation and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!