Skip to content

Instantly share code, notes, and snippets.

@tonyfast
Created May 7, 2014 15:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tonyfast/73d0d820c78406927667 to your computer and use it in GitHub Desktop.
Save tonyfast/73d0d820c78406927667 to your computer and use it in GitHub Desktop.
Extracting Features in Volumetric Fiber Datasets

Binary Volumetric Fiber Composite Datasets

These steps organize the approach to extracting information about fiber data in 3-D volumetric datasets where the fibers are isolated from the matrix and other features.

Feature Indentification

  1. Label the Fibers

Erode the binary 3-D volume to about half of the expected radius of the fibers. Use a watershed method or something similar to bwlabeln in Matlab to seed the fiber indices. Dilate the image with the same filter you used to erode it. Mask the dilated image with the binary image. The masking process will assure that the index fibers have the same shape of the original data. There will be an issue with touching fibers when you dilate them. Dilation takes the maximum value in a filter window and assigns that to the pixel of interest. The largest index of touching fibers will overtake the lower index, but this should be easy to fix. There is a bit of uncertainty here that shouldn't require too much focus.

  1. Fiber Centers

Finding the centers of the fibers is an ill-posed problem. There will be no exact center to find, it will have uncertainty. There is little need to focus on a very exact answer.
After you have indexed the fibers, for each fiber index you will need to map out the center of the fiber through the 3-D volume. The phase coded generalized hough transform or in a binary image with circular features the circular hough transform will help you find the center. * I can make an example code if you need to see it.* Another option is the fast radial transform.

  1. Classify the genus of the fibers

Use the index of the fibers to define their genus. The genuses are shown in this schematic. weave schematic

Trajectories as Features

Using the centers of each fiber it is easy to map the trajectory of the fibers through space. The distribution of tracjectories for the Z-Fill will be wider than the warp or fill. The trajectories of the Fill fibers will be minimal in the Weft direction and vice versa. In other words, if you look at the change in position of the fiber center for each fiber from layer-to-layer then the distribution of the trajectories should tell which genus the fiber is.

  1. Nearest Fibers

For the N fiber centers, create two NxN matrix that are the average distance between fiber centers; you may need a matrix of the standard deviation. Each entry in the distance matrix is the average distance between fiber indices i and j. The average distance for within a wire pair should be show up in the distance matrix.

wire pair

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment