Insight Segmentation and Registration Toolkit

Das Insight Segmentation and Registration Toolkit (ITK) ist eine Open-Source-C++-Programmbibliothek für die Segmentierung und Registrierung von Bildern.

ITK
Basisdaten

Entwickler National Library of Medicine, Kitware Inc. und diverse Universitäten
Aktuelle Version 5.3.0[1][2]
(20. Dezember 2022)
Betriebssystem Unix-Derivate (Linux, macOS), Windows
Programmiersprache C, C++, Python[3]
Kategorie Bildverarbeitung
Lizenz Apache 2.0 Lizenz[4]
deutschsprachig nein
www.itk.org

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.[5] 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.[6]

Beispiele Bearbeiten

Glättung mithilfe von einem Gaußfilter Bearbeiten

#include <itkImage.h>
#include <itkImageFileReader.h>
#include <itkImageFileWriter.h>
#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;
}

Region Growing Segmentierung Bearbeiten

#include <itkImage.h>
#include <itkImageFileReader.h>
#include <itkImageFileWriter.h>
#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;
}

Siehe auch Bearbeiten

Weblinks Bearbeiten

Einzelnachweise Bearbeiten

  1. Release 5.3.0. 20. Dezember 2022 (abgerufen am 15. Januar 2023).
  2. ITK 5.3.0 has been released!. 20. Dezember 2022 (englisch, abgerufen am 23. April 2024).
  3. Insight Software Consortium / ITK - GitHub. Abgerufen am 10. Juni 2020 (englisch).
  4. License. Abgerufen am 10. Juni 2020 (englisch).
  5. History. Abgerufen am 10. Juni 2020 (englisch).
  6. Overview. Abgerufen am 10. Juni 2020 (englisch).