Insight Segmentation and Registration Toolkit

Das Insight Segmentation a​nd Registration Toolkit (ITK) i​st eine Open-Source-C++-Programmbibliothek für d​ie Segmentierung u​nd Registrierung v​on Bildern.

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

Allgemeines

Die Entwicklung v​on ITK w​urde ab 1999 v​on der National Library o​f Medicine gestartet, u​m offene Klassenbibliotheken u​nd Schnittstellen für d​ie Auswertung d​es Visible Human Projects z​u schaffen.[4] Typische Anwendungsgebiete v​on ITK s​ind z. B. d​ie Verarbeitung v​on medizinischen Daten a​us der Computertomographie u​nd der Magnetresonanztomografie. Als Build-System k​ommt CMake z​um Einsatz, welches speziell für ITK entwickelt wurde.[5]

Beispiele

Glättung mithilfe von einem Gaußfilter

#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

#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

  • Visualization Toolkit

Einzelnachweise

  1. v5.1.1. Abgerufen am 26. August 2020 (englisch).
  2. Insight Software Consortium / ITK - GitHub. Abgerufen am 10. Juni 2020 (englisch).
  3. License. Abgerufen am 10. Juni 2020 (englisch).
  4. History. Abgerufen am 10. Juni 2020 (englisch).
  5. Overview. Abgerufen am 10. Juni 2020 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.