Insight Segmentation And Registration Toolkit
   HOME

TheInfoList



OR:

__NOTOC__ ITK is a
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
, open-source application development framework widely used for the development of
image segmentation In digital image processing and computer vision, image segmentation is the process of partitioning a digital image into multiple image segments, also known as image regions or image objects ( sets of pixels). The goal of segmentation is to simpl ...
and
image registration Image registration is the process of transforming different sets of data into one coordinate system. Data may be multiple photographs, data from different sensors, times, depths, or viewpoints. It is used in computer vision, medical imaging, milit ...
programs. Segmentation is the process of identifying and classifying data found in a digitally sampled representation. Typically the sampled representation is an image acquired from such medical instrumentation as CT or MRI scanners. Registration is the task of aligning or developing correspondences between data. For example, in the medical environment, a CT scan may be aligned with an MRI scan in order to combine the information contained in both. ITK was developed with funding from the
National Library of Medicine The United States National Library of Medicine (NLM), operated by the United States federal government, is the world's largest medical library. Located in Bethesda, Maryland, the NLM is an institute within the National Institutes of Health. Its ...
(
U.S. The United States of America (U.S.A. or USA), commonly known as the United States (U.S. or US) or America, is a country primarily located in North America. It consists of 50 states, a federal district, five major unincorporated territori ...
) as an open resource of algorithms for analyzing the images of the
Visible Human Project The Visible Human Project is an effort to create a detailed data set of cross-sectional photographs of the human body, in order to facilitate anatomy visualization applications. It is used as a tool for the progression of medical findings, in which ...
. ITK stands for The Insight Segmentation and Registration Toolkit. The toolkit provides leading-edge segmentation and registration algorithms in two, three, and more dimensions. ITK uses the
CMake In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. CMake is not a build system itself; it generates an ...
build environment to manage the configuration process. The software is implemented in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and it is wrapped for
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
. An offshoot of the ITK project providing a simplified interface to ITK in eight programming languages, SimpleITK, is also under active development.


Introduction


Origins

In 1999 the US
National Library of Medicine The United States National Library of Medicine (NLM), operated by the United States federal government, is the world's largest medical library. Located in Bethesda, Maryland, the NLM is an institute within the National Institutes of Health. Its ...
of the
National Institutes of Health The National Institutes of Health, commonly referred to as NIH (with each letter pronounced individually), is the primary agency of the United States government responsible for biomedical and public health research. It was founded in the late ...
awarded a three-year contract to develop an open-source registration and segmentation toolkit, which eventually came to be known as the Insight Toolkit (ITK). ITK's NLM Project Manager was Dr. Terry Yoo, who coordinated the six prime contractors who made up the Insight Software Consortium. These consortium members included the three commercial partners GE Corporate R&D,
Kitware __NOTOC__ Kitware, Inc. is a technology company headquartered in Clifton Park, New York. The company is involved in the research and development of open-source software in the fields of computer vision, medical imaging, visualization, 3D data publ ...
, Inc., and MathSoft (the company name is now Insightful); and the three academic partners University of North Carolina ( UNC),
University of Tennessee The University of Tennessee (officially The University of Tennessee, Knoxville; or UT Knoxville; UTK; or UT) is a public land-grant research university in Knoxville, Tennessee. Founded in 1794, two years before Tennessee became the 16th state, ...
(UT), and
University of Pennsylvania The University of Pennsylvania (also known as Penn or UPenn) is a private research university in Philadelphia. It is the fourth-oldest institution of higher education in the United States and is ranked among the highest-regarded universitie ...
(UPenn). The Principal Investigators for these partners were, respectively, Bill Lorensen at GE CRD, Will Schroeder at Kitware, Vikram Chalana at Insightful, Stephen Aylward with Luis Ibáñez at UNC (both of whom subsequently moved to Kitware),
Ross Whitaker Ross T. Whitaker is an American computer scientist and Director of the University of Utah School of Computing. Biography Whitaker graduated summa cum laude in electrical engineering and computer science from Princeton University in 1986. Followi ...
with Josh Cates at UT (both now at Utah), and
Dimitris Metaxas Dimitris Metaxas is a distinguished professor and the chair of the Computer Science Department at Rutgers University, where he directs the Center for Computational Biomedicine Imaging and Modeling (CBIM). Education Metaxas was educated at the ...
at UPenn (Dimitris Metaxas is now at
Rutgers University Rutgers University (; RU), officially Rutgers, The State University of New Jersey, is a Public university, public land-grant research university consisting of four campuses in New Jersey. Chartered in 1766, Rutgers was originally called Queen's ...
). In addition, several subcontractors rounded out the consortium including Peter Ratiu at Brigham & Women's Hospital, Celina Imielinska and Pat Molholt at
Columbia University Columbia University (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
, Jim Gee at UPenn's Grasp Lab, and George Stetten at
University of Pittsburgh The University of Pittsburgh (Pitt) is a public state-related research university in Pittsburgh, Pennsylvania. The university is composed of 17 undergraduate and graduate schools and colleges at its urban Pittsburgh campus, home to the universit ...
.


Technical details

ITK is an open-source software toolkit for performing registration and segmentation. Segmentation is the process of identifying and classifying data found in a digitally sampled representation. Typically the sampled representation is an image acquired from such medical instrumentation as CT or
MRI Magnetic resonance imaging (MRI) is a medical imaging technique used in radiology to form pictures of the anatomy and the physiological processes of the body. MRI scanners use strong magnetic fields, magnetic field gradients, and radio waves ...
scanners. Registration is the task of aligning or developing correspondences between data. For example, in the medical environment, a CT scan may be aligned with an MRI scan in order to combine the information contained in both. ITK is implemented in C++. ITK is cross-platform, using the
CMake In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. CMake is not a build system itself; it generates an ...
build environment to manage the compilation process. In addition, an automated wrapping process generates interfaces between C++ and other programming languages such as Java and Python. This enables developers to create software using a variety of programming languages. ITK's implementation employs the technique of
generic programming Generic programming is a style of computer programming in which algorithms are written in terms of types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneered b ...
through the use of C++ templates. Because ITK is an open-source project, developers from around the world can use, debug, maintain, and extend the software. ITK uses a model of software development referred to as
extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
. Extreme programming collapses the usual software creation methodology into a simultaneous and iterative process of design-implement-test-release. The key features of extreme programming are communication and testing. Communication among the members of the ITK community is what helps manage the rapid evolution of the software. Testing is what keeps the software stable. In ITK, an extensive testing process (usin
CDash
is in place that measures the quality on a daily basis. Th
ITK Testing Dashboard
is posted continuously, reflecting the quality of the software.


Developers and contributors

The Insight Toolkit was initially developed by six principal organizations *
Kitware __NOTOC__ Kitware, Inc. is a technology company headquartered in Clifton Park, New York. The company is involved in the research and development of open-source software in the fields of computer vision, medical imaging, visualization, 3D data publ ...
* GE Corporate R&D * Insightful *
University of North Carolina at Chapel Hill A university () is an institution of higher (or tertiary) education and research which awards academic degrees in several academic disciplines. Universities typically offer both undergraduate and postgraduate programs. In the United States ...
*
University of Utah The University of Utah (U of U, UofU, or simply The U) is a public research university in Salt Lake City, Utah. It is the flagship institution of the Utah System of Higher Education. The university was established in 1850 as the University of De ...
*
University of Pennsylvania The University of Pennsylvania (also known as Penn or UPenn) is a private research university in Philadelphia. It is the fourth-oldest institution of higher education in the United States and is ranked among the highest-regarded universitie ...
and three subcontractors * Harvard
Brigham & Women's Hospital Brigham and Women's Hospital (BWH) is the second largest teaching hospital of Harvard Medical School and the largest hospital in the Longwood Medical Area in Boston, Massachusetts. Along with Massachusetts General Hospital, it is one of the two f ...
*
University of Pittsburgh The University of Pittsburgh (Pitt) is a public state-related research university in Pittsburgh, Pennsylvania. The university is composed of 17 undergraduate and graduate schools and colleges at its urban Pittsburgh campus, home to the universit ...
*
Columbia University Columbia University (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
After its inception the software continued growing with contributions from other institutions including *
University of Iowa The University of Iowa (UI, U of I, UIowa, or simply Iowa) is a public university, public research university in Iowa City, Iowa, United States. Founded in 1847, it is the oldest and largest university in the state. The University of Iowa is org ...
*
Georgetown University Georgetown University is a private university, private research university in the Georgetown (Washington, D.C.), Georgetown neighborhood of Washington, D.C. Founded by Bishop John Carroll (archbishop of Baltimore), John Carroll in 1789 as Georg ...
*
Stanford University Stanford University, officially Leland Stanford Junior University, is a private research university in Stanford, California. The campus occupies , among the largest in the United States, and enrolls over 17,000 students. Stanford is consider ...
*
King's College London King's College London (informally King's or KCL) is a public research university located in London, England. King's was established by royal charter in 1829 under the patronage of King George IV and the Duke of Wellington. In 1836, King's ...
* Creatis INSA


Funding

The funding for the project is from the National Library of Medicine at the National Institutes of Health. NLM in turn was supported by member institutions of NIH (see sponsors). The goals for the project include the following: * Support the
Visible Human Project The Visible Human Project is an effort to create a detailed data set of cross-sectional photographs of the human body, in order to facilitate anatomy visualization applications. It is used as a tool for the progression of medical findings, in which ...
. * Establish a foundation for future research. * Create a repository of fundamental algorithms. * Develop a platform for advanced product development. * Support commercial application of the technology. * Create conventions for future work. * Grow a self-sustaining community of software users and developers. The source code of the Insight Toolkit is distributed under an Apache 2.0 License (as approved by the
Open Source Initiative The Open Source Initiative (OSI) is the steward of the Open Source Definition, the set of rules that define open source software. It is a California public-benefit nonprofit corporation,_with_501(c)(3).html" ;"title="110. - 6910./ref> is a type o ...
) The philosophy of Open Source of the Insight Toolkit was extended to support open science, in particular by providing
open access Open access (OA) is a set of principles and a range of practices through which research outputs are distributed online, free of access charges or other barriers. With open access strictly defined (according to the 2001 definition), or libre op ...
to publications in the domain of Medical Image Processing. These publications are made freely available through the Insight Journal


Community participation

Because ITK is an open-source system, anybody can make contributions to the project. A person interested in contributing to ITK can take the following actions # Read th
ITK Software Guide
(This book can be purchased from Kitware's store.) # Read th
instructions on how to contribute classes and algorithms to the Toolkit
via submissions to the Insight Journal # Obtain access t
GitHub
# Follow th
Git contribution instructions
# Join th
ITK Discourse
discussion. The community is open to everyone. Anyone can submit a patch, and write access to the repository is not necessary to get a patch merged or retain authorship credit. For more information, see th


Copyright and license

ITK is copyrighted by the Insight Software Consortium, a non-profit alliance of organizations and individuals interested in supporting ITK. Starting with ITK version 3.6, the software is distributed under a BSD open-source license. It allows use for any purpose, with the possible exception of code found in the patented directory, and with proper recognition. The full terms of the copyright and the license are available at . Version 4.0 uses Apache 2.0 License. The licensed was changed to Apache 2.0 with version 4.0 to adopt a modern license with patent protection provisions. From version 3.6 to 3.20, a simplified BSD license was used. Versions of ITK previous to ITK 3.6 were distributed under a modified BSD License. The main motivation for adopting a BSD license starting with ITK 3.6, was to have an
OSI OSI may refer to: Places * Osijek Airport (IATA code: OSI), an airport in Croatia * Ősi, a village in Veszprém county, Hungary * Oši, an archaeological site in Semigallia, Latvia * Osi, a village in Ido-Osi, Ekiti State, Nigeria * Osi, Ekiti ...
-approved license.


Technical Summary

The following sections summarize the technical features of the NLM's Insight ITK toolkit. Design Philosophy The following are key features of the toolkit design philosophy. * The toolkit provides data representation and algorithms for performing segmentation and registration. The focus is on medical applications; although the toolkit is capable of processing other data types. * The toolkit provides data representations in general form for images (arbitrary dimension) and (unstructured) meshes. * The toolkit does not address visualization or graphical user interface. These are left to other toolkits (such as
VTK The Visualization Toolkit (VTK) is an open-source software system for 3D computer graphics, image processing and scientific visualization.''Visualization Handbook'', Academic Press, 2005, Chapter 30: the Visualization Toolkit/ref> VTK is distrib ...
, VISPACK, 3DViewnix, MetaImage, etc.) * The toolkit provides minimal tools for file interface. Again, this is left to other toolkits/libraries to provide. * Multi-threaded (shared memory) parallel processing is supported. * The development of the toolkit is based on principles of extreme programming. That is, design, implementation, and testing is performed in a rapid, iterative process. Testing forms the core of this process. In Insight, testing is performed continuously as files are checked in, and every night across multiple platforms and compilers. The ITK testing dashboard, where testing results are posted, is central to this process.


Architecture

The following are key features of the toolkit architecture. * The toolkit is organized around a data-flow architecture. That is, data is represented using data objects which are in turn processed by process objects (filters). Data objects and process objects are connected together into pipelines. Pipelines are capable of processing the data in pieces according to a user-specified memory limit set on the pipeline. * Object factories are used to instantiate objects. Factories allow run-time extension of the system. * A command/observer design pattern is used for event processing.


Implementation philosophy

The following are key features of the toolkit implementation philosophy. * The toolkit is implemented using generic programming principles. Such heavily templated C++ code challenges many compilers; hence development was carried out with the latest versions of the MSVC, Sun, gcc, Intel, and SGI compilers. * The toolkit is cross-platform (Unix, Windows and Mac OS X). * The toolkit supports multiple language bindings, including such languages as Tcl, Python, and Java. These bindings are generated automatically using an auto-wrap process. * The memory model depends on "smart pointers" that maintain a reference count to objects. Smart pointers can be allocated on the stack, and when scope is exited, the smart pointers disappear and decrement their reference count to the object that they refer to.


Build environment

ITK uses the CMake (cross-platform make) build environment. CMake is an operating system and compiler independent build process that produces native build files appropriate to the OS and compiler that it is run with. On Unix CMake produces makefiles and on Windows CMake generates projects and workspaces.


Testing environment

ITK supports an extensive testing environment. The code is tested daily (and even continuously) on many hardware/operating system/compiler combinations and the results are posted daily on the ITK testing dashboard. We use Dart to manage the testing process, and to post the results to the dashboard.


Background references: C++ patterns and generics

ITK uses many advanced design patterns and generic programming. You may find these references useful in understanding the design and syntax of Insight. * Design Patterns. by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch * Generic Programming and the Stl : Using and Extending the C++ Standard Template Library (Addison-Wesley Professional Computing Series) by Matthew H. Austern * Advanced C++ Programming Styles and Idioms by James O. Coplien * C/C++ Users Journal * C++ Report


Examples


Gaussian-smoothed image gradient

#include "itkImage.h" int main()


Region growing segmentation

#include "itkImage.h" int main()


Additional information


Resources

A number of resources are available to learn more about ITK. * The ITK web pages are located at . * Users and developers alike should read th
ITK Software Guide
* Many compilable examples are available on th
ITK Examples Wiki
* Tutorials are available at * The software can be downloaded from . * Developers, or users interested in contributing code, should look in the document Insight/Documentation/InsightDeveloperStart.pdf or InsightDeveloperStart.doc found in the source code distribution. * Developers should also look at the ITK style guide Insight/Documentation/Style.pdf found in the source distribution.


Applications

A great way to learn about ITK is to see how it is used. There are four places to find applications of ITK. # The Insight/Examples/ source code examples distributed with ITK. The source code is available. In addition, it is heavily commented and works in combination with the ITK Software Guide. # The separate InsightApplications checkout. # Th

These are extensive descriptions, with images and references, of the examples found in #1 above. # The testing directories distributed with ITK are simple, mainly undocumented examples of how to use the code. In 2004
ITK-SNAP ITK-SNAP is an interactive software application that allows users to navigate three-dimensional medical images, manually delineate anatomical regions of interest, and perform automatic image segmentation. The software was designed with the audien ...

website
was developed from SNAP and became a popular free segmentation software using ITK and having a nice and simple user interface.


Data

* Data is available i
ITK data.kitware.com Girder Community
* See also th


See also


Related tools

*
CMake In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. CMake is not a build system itself; it generates an ...
*
VTK The Visualization Toolkit (VTK) is an open-source software system for 3D computer graphics, image processing and scientific visualization.''Visualization Handbook'', Academic Press, 2005, Chapter 30: the Visualization Toolkit/ref> VTK is distrib ...


Contacts

Visit th
ITK discussion forum
for contacts and help from the community.


References

* * *


External links


ITK
{{Image processing software Computer vision software Free computer libraries Free science software Free software programmed in C++ Image segmentation Software using the Apache license