How to partition collagen into separate fibers? I have a picture representing collagen fibers of a tissue:



Image is binary consisting of a background (pixels with value 0) and white collagen (pixels with value 1). A zoomed in section of an image looks like this:



I want to find a way to partition the white collagen into multiple fibers,
so that I could measure the length and width of each fiber separately.

One idea was to perform a 
skeletonization and then split the skeleton on every branch point. The problem with this is that the irregular shape of the the original collagen induces unnecessary branches in the skeleton: 

Here we see a skeleton composed of hundreds of segments, whereas the actual number of segments covering the "triangle" should be 3.

Any idea of an algorithm that could partition such image into multiple parts?
Your data seems to be quite noisy in a sense that there are a lot of holes in the fibers. When you know a typical minimal size of a fiber (probably its widths), you could use a binary closing filter: 


Dilate the image with a structural element of the typical width of a fiber. Most likely a circle with a diameter equal to the minimal fiber widths could be appropriate.
Erode the image with the same structural element.
Use a skeletization algorithm on this data set.