Insight ToolKit

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
ITK
Image illustrative de l'article Insight ToolKit
Logo

Développeur Kitware Inc.
Dernière version 4.5.0 ()
Environnement Multi-Plateforme
Licence Apache 2.0
Site web www.itk.org

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.

Caractéristiques[modifier | modifier le code]

  • 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 | modifier le code]

Gradient d'image soumis à un filtre gaussien[modifier | modifier le code]

  #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 | modifier le code]

  #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 | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Lien externe[modifier | modifier le code]