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.

ITK

Informations
Développé par Insight Software Consortium (d)Voir et modifier les données sur Wikidata
Dernière version 5.3.0 ()[1],[2]Voir et modifier les données sur Wikidata
Dépôt github.com/InsightSoftwareConsortium/ITKVoir et modifier les données sur Wikidata
Écrit en C++Voir et modifier les données sur Wikidata
Environnement Multi-Plateforme
Type FrameworkVoir et modifier les données sur Wikidata
Licence Apache 2.0
Site web www.itk.org

Caractéristiques

modifier
  • 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

modifier

Gradient d'image soumis à un filtre gaussien

modifier
  #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)

modifier
  #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

modifier
  1. « Release 5.3.0 », (consulté le )
  2. (en) « ITK 5.3.0 has been released! », (consulté le )

Voir aussi

modifier

Articles connexes

modifier

Lien externe

modifier