Insight ToolKit

ITK (Insight Segmentation and Registration Toolkit) est une bibliothèque logicielle libre de classes C++ de traitement d'image. Elle contient des algorithmes de recalage d'image, de filtrage et de segmentation. Elle a été créée dans le but d'analyser toute sorte d'images médicales.

Pour les articles homonymes, voir ITK.

ITK

Informations
Développé par Insight Software Consortium (d)
Dernière version 5.2.0 ()[1]
Dépôt github.com/InsightSoftwareConsortium/ITK et itk.org/gitweb?p=ITK.git
Écrit en C++
Environnement Multi-Plateforme
Type Framework
Licence Apache 2.0
Site web www.itk.org

Caractéristiques

  • Soutenir le Visible Human Project ;
  • créer une base pour la recherche future ;
  • créer un dépôt des algorithmes fondamentaux ;
  • développer une plate-forme pour le développement avancé de produits ;
  • soutenir l'application commerciale de la technologie ;
  • créer des conventions pour les travaux futurs ;
  • développer une communauté autonome d'utilisateurs et de développeurs de logiciels.

Exemples

Gradient d'image soumis à un filtre gaussien

  #include "itkImage.h"
  int main()
    {
    typedef itk::Image< unsigned char, 3 > ImageType;
    typedef itk::ImageFileReader< ImageType >  ReaderType;
    typedef itk::ImageFileWriter< ImageType >  WriterType;
    typedef itk::GradientRecursiveGaussianImageFilter< ImageType, ImageType > FilterType;
    ReaderType::Pointer reader  = ReaderType::New();
    WriterType::Pointer writer  = WriterType::New();
    reader->SetFileName("poumonCT.dcm");
    writer->SetFileName("poumonLisse.hdr");
    FilterType::Pointer filter = FilterType::New();
    filter->SetInput( reader->GetOutput() );
    writer->SetInput( filter->GetOutput() );
    filter->SetSigma();
    try
      {
      writer->Update();
      }
    catch( itk::ExceptionObject & excp )
      {
      std::cerr << excp << std::endl;
      return EXIT_FAILURE;
      }
    }

Segmentation par la méthode d'accroissement de région (Region Growing)

  #include "itkImage.h"
  int main()
    {
    typedef itk::Image< signed short,  3 >  InputImageType;
    typedef itk::Image< unsigned char, 3 >  OutputImageType;
    typedef itk::ImageFileReader< InputImageType >  ReaderType;
    typedef itk::ImageFileWriter< OutputImageType >  WriterType;
    typedef itk::ConnectedThresholdImageFilter< InputImageType, OutputImageType > FilterType;
    ReaderType::Pointer reader  = ReaderType::New();
    WriterType::Pointer writer  = WriterType::New();
    reader->SetFileName("cerveau.dcm");
    writer->SetFileName("matiereBlanche.hdr");
    FilterType::Pointer filter = FilterType::New();
    filter->SetInput( reader->GetOutput() );
    writer->SetInput( filter->GetOutput() );
    filter->SetMultiplier(2.5);
    ImageType::IndexType seed;
    seed[0] = 142;
    seed[1] =  97;
    seed[2] =  63;
    filter->AddSeed( seed );
    try
      {
      writer->Update();
      }
    catch( itk::ExceptionObject & excp )
      {
      std::cerr << excp << std::endl;
      return EXIT_FAILURE;
      }
    }

Notes et références

  1. « Release 5.2.0 », (consulté le )

Voir aussi

Articles connexes

Lien externe

  • Portail des logiciels libres
  • Portail de la médecine
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.