Zum Inhalt springen

„Insight Segmentation and Registration Toolkit“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Datumsangaben sollten nicht verlinkt werden
Dom0112 (Diskussion | Beiträge)
K Versionsinfo aus Wikidata
 
(30 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox_Software|
{{Infobox_Software
Name= ITK
|Name= ITK
|Screenshot=
|Screenshot=
|Beschreibung=
|Beschreibung=
|Erscheinungsjahr=
|Hersteller= [[National Library of Medicine]], Kitware Inc. und diverse Universitäten
|Hersteller= [[National Library of Medicine]], Kitware Inc. und diverse Universitäten
|AktuelleVersion= 3.16
|AktuelleVersion= <!-- aus Wikidata -->
|AktuelleVersionFreigabeDatum= 16. September 2009
|Betriebssystem= alle [[Unices]] wie [[Linux]], [[Mac OS X]], [[Windows]]
|Betriebssystem= [[Unix-Derivat]]e ([[Linux]], [[macOS]]), [[Windows]]
|Programmiersprache= [[C (Programmiersprache)|C]], [[C++]], [[Python (Programmiersprache)|Python]]<ref>{{Internetquelle |url=https://github.com/InsightSoftwareConsortium/ITK|titel =Insight Software Consortium / ITK - GitHub|zugriff=2020-06-10|sprache=en}}</ref>
|Kategorie= [[Visualisierung#Wissenschaftliche Visualisierung|Wissenschaftliche Visualisierung]], [[Programmbibliothek]]
|Kategorie= [[Bildverarbeitung]]
|Lizenz= [[BSD-Lizenz|BSD-artige Lizenzen]]
|Lizenz= [[Apache-Lizenz|Apache 2.0 Lizenz]]<ref>{{Internetquelle |url=https://itk.org/about/#license|titel = License |zugriff=2020-06-10|sprache=en}}</ref>
|Deutsch= nein
|Deutsch= nein
|Website= [http://www.itk.org/ www.itk.org]
|Website= [http://www.itk.org/ www.itk.org]
}}
}}

Das '''Insight Segmentation and Registration Toolkit''' (ITK) ist eine [[Open Source|Open-Source]]-[[C++]]-[[Klassenbibliothek]] für die [[Segmentierung (Bildverarbeitung)|Segmentierung]] und [[Bildregistrierung|Registrierung]] von Bildern. ITK wurde mit Geldern der [[National Library of Medicine]] gestartet, um offene Klassenbibliotheken und Schnittstellen für die Auswertung des [[Visible Human Project]]s zu schaffen. Besonderes Augenmerk wird deshalb auf medizinische Aspekte der [[Visualisierung#Wissenschaftliche Visualisierung|Wissenschaftlichen Visualisierung]] gelegt. Typische Anwendungsgebiete des 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 das ITK geschrieben wurde.
Das '''{{lang|en|Insight Segmentation and Registration Toolkit}}''' (ITK) ist eine [[Open Source|Open-Source]]-[[C++]]-[[Programmbibliothek]] für die [[Segmentierung (Bildverarbeitung)|Segmentierung]] und [[Bildregistrierung|Registrierung]] von Bildern.

== Allgemeines ==

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 Project]]s zu schaffen.<ref>{{Internetquelle |url=https://itk.org/about/#history |titel=History |zugriff=2020-06-10 |sprache=en}}</ref> Typische Anwendungsgebiete von ITK sind z.&nbsp;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>{{Internetquelle |url=https://cmake.org/overview/|titel = Overview |zugriff=2020-06-10|sprache=en}}</ref>

== Beispiele ==

=== Glättung mithilfe von einem Gaußfilter ===
<syntaxhighlight lang="cpp">
#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;
}
</syntaxhighlight>

=== Region Growing Segmentierung ===

<syntaxhighlight lang="cpp">
#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;
}
</syntaxhighlight>

== Siehe auch ==
* [[Visualization Toolkit]]


== Weblinks ==
== Weblinks ==
* [http://www.itk.org/ www.itk.org (englisch)]
* [http://www.itk.org/ www.itk.org] (englisch)
* [http://www.itk.org/HTML/Tutorials.htm Startseite zu ITK Tutorials (englisch)]
* [http://www.itk.org/HTML/Tutorials.htm Startseite zu ITK Tutorials] (englisch)

* [http://www.itk.org/HTML/Applications.htm Liste mit Opensource Anwendungen basierend auf ITK (englisch)]
== Einzelnachweise ==
<references />


[[Kategorie:Freie Software]]
[[Kategorie:Freie Software]]
[[Kategorie:Bildverarbeitung]]
[[Kategorie:Bildverarbeitung]]
[[Kategorie:Bibliothek (Programmierung)]]
[[Kategorie:C++-Bibliothek]]
__KEIN_INHALTSVERZEICHNIS__

[[en:Insight Segmentation and Registration Toolkit]]
[[fr:Insight ToolKit]]

Aktuelle Version vom 24. Dezember 2022, 04:54 Uhr

ITK
Basisdaten

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

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

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

Glättung mithilfe von einem Gaußfilter

[Bearbeiten | Quelltext 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 | Quelltext 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;
}

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Release 5.4.3. 2. April 2025 (abgerufen am 24. April 2025).
  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).