MATLAB: Measure fiber length for overlapping fibers

branchpointsfiberslengthoverlapskeleton

Hello,
I need to measure the length of fibers from images taken from electronic microscope but I have faced problem measuring the overlapping ones. For the single fibers I create a binary image, skeletonize, label the fibers and finally use the bwtraceboundary to calculate the fiber length. Is there any way to separate the two fibers of the attached image? Is there any code to delete two branches and get a single fiber, measure and repeat with the other branches in case there are branchpoints?

Best Answer

I'd use imdistline(), unless you have hundreds of images, which I don't think you'd have since you're using an electron microscope.