GithubHelp home page GithubHelp logo

libenke / ct_fibersegmentation Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 0.0 130.55 MB

Segment/Trace the short fibes filled in the polymer matrix from the CT 3D volume data

License: GNU General Public License v3.0

Jupyter Notebook 89.64% Python 10.36%
ct fiber rheology segmentation

ct_fibersegmentation's Introduction

Tracing Fibers in 3D CT Volume

Trace the 3D short fibes which were filled in the polymer matrix

Author: Dr. Benke Li (李本科)

Author's ORCID: https://orcid.org/0000-0002-8830-0563

Author's ResearchGate: https://www.researchgate.net/profile/Benke-Li

Please cite this paper if you use this package:

Benke Li, Wei You, Sijun Liu, Li Peng, Xianbo Huang, and Wei Yu. "Role of confinement in the shear banding and shear jamming in noncolloidal fiber suspensions." Soft Matter 2023, 19 (46), 8965-8977.

@Article{10.1039/D3SM00943B, author ="Li, Benke and You, Wei and Liu, Sijun and Peng, Li and Huang, Xianbo and Yu, Wei", title ="Role of confinement in the shear banding and shear jamming in noncolloidal fiber suspensions", journal ="Soft Matter", year ="2023", volume ="19", issue ="46", pages ="8965-8977", publisher ="The Royal Society of Chemistry", doi ="10.1039/D3SM00943B", url ="http://dx.doi.org/10.1039/D3SM00943B"}

Work flow:

flowchart TD
D([Original Data]) -- correlation operation --> O([orientation field]) -->T
D --> B(binarized mask) --> S(skeleton) --> T(traced fibers)

Background:

Tracing high-concentrated fibers in the 3D CT images is not an easy task; this repository provides an efficient way to trace fibers based on the orientation fields obtained by convolve operations.

Due to the high concentration (see original data) of the filled fibers, the fibers tend to interact with each other, and they seemed to be "connected" in the 3D CT images (see local view). So, the fibers should be traced so that to seperate them from each other during image segmentation operations, so as to obtain correct orientation tensors of the fibers. We utilized the orientation field of the 3D CT data (see file step1-cal_orientation_field.ipynb for algorithm details) to trace the fibers successfully (see file step2-individual_fiber_segmentation.ipynb for tracing details). And the tracing results is shown in traced fibers.

Dependencies:

numpy, scipy, scikit-image, pandas, matplotlib, napari, imageio

Usage:

  1. Make sure python3 and dependencies were installed. The denpendencies could be install by the command:
    python3 -m pip3 install numpy scipy scikit-image pandas matplotlib napari imageio
    
  2. Download this package, or by command:
    git clone https://github.com/libenke/CT_FiberSegmentation
    
  3. The 3D CT data should be stored as ".tiff" files for each slices in one folder, each folder for each volume data.
  4. Fill the data folder path in the assignment statement data_dirs = ["demo_data",] both in the files step1-cal_orientation_field.py and step2-individual_fiber_segmentation.py.
  5. Run in the terminal:
    python -m step1-cal_orientation_field.py
    python -m step2-individual_fiber_segmentation.py
    
  6. The results were stored as numpy files .npy and HDF5 files .h5 in the data folders.

original data

Original Data

local view

local view

traced fibers

traced fibers

ct_fibersegmentation's People

Contributors

libenke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.