Zum Inhalt springen

Insight Segmentation and Registration Toolkit

aus Wikipedia, der freien Enzyklopädie
ITK

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Entwickler National Library of Medicine, Kitware Inc. und diverse Universitäten
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Betriebssystem Unix-Derivate (Linux, macOS), Windows
Programmier­sprache C, C++, Python<ref>Insight Software Consortium / ITK - GitHub. Abgerufen am 10. Juni 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Kategorie Bildverarbeitung
Lizenz Apache 2.0 Lizenz<ref>License. Abgerufen am 10. Juni 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
deutschsprachig ja
www.itk.org

Das {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (ITK) ist eine Open-Source-C++-Programmbibliothek für die Segmentierung und Registrierung von Bildern.

Allgemeines[Bearbeiten]

Die Entwicklung von ITK wurde ab 1999 von der National Library of Medicine gestartet, um offene Klassenbibliotheken und Schnittstellen für die Auswertung des Visible Human Projects zu schaffen.<ref>History. Abgerufen am 10. Juni 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Typische Anwendungsgebiete von ITK sind z. B. die Verarbeitung von medizinischen Daten aus der Computertomographie und der Magnetresonanztomografie. Als Build-System kommt CMake zum Einsatz, welches speziell für ITK entwickelt wurde.<ref>Overview. Abgerufen am 10. Juni 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Beispiele[Bearbeiten]

Glättung mithilfe von einem Gaußfilter[Bearbeiten]

<syntaxhighlight lang="cpp">

  1. include <itkImage.h>
  2. include <itkImageFileReader.h>
  3. include <itkImageFileWriter.h>
  4. include <itkDiscreteGaussianImageFilter.h>

int main(int argc, char *argv[]) {

   typedef itk::Image<unsigned char, 2> ImageType;
   typedef itk::ImageFileReader<ImageType> ReaderType;
   typedef itk::ImageFileWriter<ImageType> WriterType;
   typedef itk::DiscreteGaussianImageFilter<ImageType, ImageType> GaussianFilterType;
   ReaderType::Pointer reader = ReaderType::New();
   reader->SetFileName("test.jpg");
   GaussianFilterType::Pointer smoothFilter = GaussianFilterType::New();
   smoothFilter->SetInput(reader->GetOutput());
   smoothFilter->SetVariance(3);
   WriterType::Pointer writer = WriterType::New();
   writer->SetInput(smoothFilter->GetOutput());
   writer->SetFileName("smoothImage.png");
   try
   {
     writer->Update();
   }
   catch( itk::ExceptionObject & excp )
   {
     std::cerr << excp << std::endl;
     return EXIT_FAILURE;
   }

return EXIT_SUCCESS; } </syntaxhighlight>

Region Growing Segmentierung[Bearbeiten]

<syntaxhighlight lang="cpp">

  1. include <itkImage.h>
  2. include <itkImageFileReader.h>
  3. include <itkImageFileWriter.h>
  4. include <itkConnectedThresholdImageFilter.h>

int main(int argc, char *argv[]) {

   typedef itk::Image<unsigned char, 3> ImageType;
   typedef itk::ImageFileReader<ImageType> ReaderType;
   typedef itk::ImageFileWriter<ImageType> WriterType;
   typedef itk::ConnectedThresholdImageFilter<ImageType, ImageType> RegionFilterType;
   ReaderType::Pointer reader = ReaderType::New();
   reader->SetFileName("test.nii");
   ImageType::IndexType seed;
   seed[0] = 142;
   seed[1] =  97;
   seed[2] =  63;
   RegionFilterType::Pointer regionFilter = RegionFilterType::New();
   regionFilter->SetInput(reader->GetOutput());
   regionFilter->SetSeed(seed);
   WriterType::Pointer writer = WriterType::New();
   writer->SetInput(regionFilter->GetOutput());
   writer->SetFileName("region.nii");
   try
   {
     writer->Update();
   }
   catch( itk::ExceptionObject & excp )
   {
     std::cerr << excp << std::endl;
     return EXIT_FAILURE;
   }

return EXIT_SUCCESS; } </syntaxhighlight>

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

<references />