0
$\begingroup$

I have a picture representing collagen fibers of a tissue:

enter image description here

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:

enter image description here

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: enter image description here

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?

$\endgroup$
0
$\begingroup$

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:

  1. 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.

  2. Erode the image with the same structural element.

  3. Use a skeletization algorithm on this data set.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.