Giter VIP home page Giter VIP logo

itkbonemorphometry's Introduction

ITKBoneMorphometry

image

PyPI

License

Overview

This is a module for the Insight Toolkit (ITK) that provides filters that quantify bone morphometry from computed tomography (CT) images.

For more information, see the Insight Journal article:

Vimort J., McCormick M., Paniagua B.
Computing Bone Morphometric Feature Maps from 3-Dimensional Images
The Insight Journal. January-December. 2017.
https://hdl.handle.net/10380/3588
https://insight-journal.org/browse/publication/988

Installation

Python

Binary Python packages are available for Linux, macOS, and Windows. They can be installed with:

python -m pip install --upgrade pip
python -m pip install itk-bonemorphometry

License

This software is distributed under the Apache 2.0 license. Please see the LICENSE file for details.

Acknowledgements

This work was supported by the National Institute of Health (NIH) National Institute for Dental and Craniofacial Research (NIDCR) grant R21DE025306 (Textural Biomarkers of Arthritis for the Subchondral Bone in the Temporomandibular Joint) and NIDCR grant R01DE024450 (Quantification of 3D bony Changes in Temporomandibular Joint Osteoarthritis).

itkbonemorphometry's People

Contributors

dzenanz avatar hjmjohnson avatar jbvimort avatar jhlegarreta avatar mrhardisty avatar mseng10 avatar phcerdan avatar tbirdso avatar thewtex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

itkbonemorphometry's Issues

Implement local thickness transform

The current implementation for thickness (Tb.Th, Tb.Sp, etc.) uses the derived measures [1]. Although these are metric-free indices, they are not direct indices.

Instead, it would be great to have the thickness transform [2] for direct assessment.

It takes a traditional distance transform and "blows up" the distances in spheres.

I would be OK to implement this (have a basic ITK class right now). Just want feedback (i.e. Yes/No) before I do.

[1]: Boutroy, Stephanie, et al. "In vivo assessment of trabecular bone microarchitecture by high-resolution peripheral quantitative computed tomography." The Journal of Clinical Endocrinology & Metabolism 90.12 (2005): 6508-6515.
[2]: Hildebrand, Tor, and Peter Rüegsegger. "A new method for the model‐independent assessment of thickness in three‐dimensional images." Journal of microscopy 185.1 (1997): 67-75.

Add as a remote module to ITK

This module is available as a PyPI package. However it is not available as an ITK remote module.

This seems like a small inconsistency to me. I ignore whether there is some work pending that prevent the remote to be available to ITK proper.

Although the remote should be added as a .cmake file here, and hence not directly in this repository, I'm opening this issue for the sake of completeness.

@jbvimort @thewtex I can add the .cmake file if you wish.

Wrapping warnings

Loading BoneMorphometry... itkFixedArrayF5 not loaded from module BoneMorphometry because of exception:
module 'itk.BoneMorphometryPython' has no attribute 'itkFixedArrayF5'
itkVectorF5 not loaded from module BoneMorphometry because of exception:
module 'itk.BoneMorphometryPython' has no attribute 'itkVectorF5'
itkFixedArrayF5 not loaded from module BoneMorphometry because of exception:
module 'itk.BoneMorphometryPython' has no attribute 'itkFixedArrayF5'
itkVectorF5 not loaded from module BoneMorphometry because of exception:
module 'itk.BoneMorphometryPython' has no attribute 'itkVectorF5'
Template itk::Image<itk::Vector<float,5>,3>
already defined as <class 'itk.itkReplaceFeatureMapNanInfImageFilterPython.itkImageVF53'>
is redefined as {cl}
Warning: template already defined 'itk::Image<itk::Vector<float,5>,3>'
Template std::vector<itk::Image<itk::Vector<float,5>,3>>
already defined as <class 'itk.itkReplaceFeatureMapNanInfImageFilterPython.vectoritkImageVF53'>
is redefined as {cl}
Warning: template already defined 'std::vector<itk::Image<itk::Vector<float,5>,3>>'
Template itk::ImageSource<itk::Image<itk::Vector<float,5>,3>>
already defined as <class 'itk.itkReplaceFeatureMapNanInfImageFilterPython.itkImageSourceIVF53'>
is redefined as {cl}
Warning: template already defined 'itk::ImageSource<itk::Image<itk::Vector<float,5>,3>>'
Template itk::ImageToImageFilter<itk::Image<itk::Vector<float,5>,3>,itk::Image<itk::Vector<float,5>,3>>
already defined as <class 'itk.itkReplaceFeatureMapNanInfImageFilterPython.itkImageToImageFilterIVF53IVF53'>
is redefined as {cl}
Warning: template already defined 'itk::ImageToImageFilter<itk::Image<itk::Vector<float,5>,3>,itk::Image<itk::Vector<float,5>,3>>'
Template itk::ImageFileReader<itk::Image<itk::Vector<float,5>,3>>
already defined as <class 'itk.itkReplaceFeatureMapNanInfImageFilterPython.itkImageFileReaderIVF53'>
is redefined as {cl}
Warning: template already defined 'itk::ImageFileReader<itk::Image<itk::Vector<float,5>,3>>'
Template itk::ImageFileWriter<itk::Image<itk::Vector<float,5>,3>>
already defined as <class 'itk.itkReplaceFeatureMapNanInfImageFilterPython.itkImageFileWriterIVF53'>
is redefined as {cl}
Warning: template already defined 'itk::ImageFileWriter<itk::Image<itk::Vector<float,5>,3>>'
done

Create a ITKv4 branch.

Freeze current state before updating master to ITKv5: C++11 style, new multi-threading.

Documentation about use of MaskImage

Here: https://github.com/InsightSoftwareConsortium/ITKBoneMorphometry/blob/master/include/itkBoneMorphometryFeaturesImageFilter.h#L48

says:

 -# an optional mask (the morphometry will be computed only for the mask's voxels with a value of 1)

But I don't think there is any logic querying the non-zero value of the mask. There is only if the mask value is zero: https://github.com/InsightSoftwareConsortium/ITKBoneMorphometry/blob/master/include/itkBoneMorphometryFeaturesImageFilter.hxx#L105

Should we change that documentation line to:

 -# an optional mask (the morphometry will be computed only for the mask's voxels with value different than zero)

@jbvimort @thewtex

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.