itk
ITK is an open-source toolkit for multidimensional image analysis
What it is and what it does
ITK (Insight Toolkit) is an open-source, cross-platform C++ library with Python bindings for N-dimensional scientific image processing. It specializes in medical imaging workflows—segmentation (identifying and classifying structures in digitally sampled images from CT or MRI scanners) and registration (aligning or establishing correspondences between datasets, such as overlaying a CT scan with an MRI scan). The Python package bundles precompiled binaries and depends on modular subpackages (itk-core, itk-numerics, itk-io, itk-filtering, itk-registration, itk-segmentation) plus numpy, making it suitable for research and clinical applications that require reproducible, open-source image analysis.
The toolkit is maintained by the Insight Software Consortium under NumFOCUS fiscal sponsorship, with active development and broad platform support (Linux, macOS including Apple Silicon, Windows, Android). It is distributed under the permissive Apache License 2.0, enabling both non-commercial research and commercial product development.
Use it for:
- Align and register medical images (e.g., overlay CT and MRI scans for combined diagnostic analysis).
- Segment anatomical structures or lesions in 3D medical imaging datasets for surgical planning.
- Preprocess and filter scientific images (median filtering, morphological operations) before analysis.
- Develop reproducible image analysis pipelines for research publications and clinical workflows.
- Extract quantitative features from segmented regions for radiomics or computer-aided diagnosis.
- Process multi-dimensional scientific data beyond 2D (e.g., time-series volumetric imaging).
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ITK provides N-dimensional scientific image processing, segmentation, and registration capabilities through a Python interface to a cross-platform C++ toolkit.
Yes. ITK is a mature, actively maintained toolkit with no known vulnerabilities, permissive licensing, and broad platform support. Install it if you need production-grade medical or scientific image processing with segmentation and registration. Medium install friction is acceptable given the precompiled wheels and modular design. Not recommended if you only need lightweight 2D image manipulation—consider lighter alternatives for that use case.
Install
itk on PyPI
pip
pip install itkuv
uv add itkpoetry
poetry add itkInstalling itk
Before you install
Medium install friction due to precompiled wheels for multiple platforms and Python versions (3.9–3.11+), but depends on 7 runtime packages including itk-core, itk-numerics, itk-io, itk-filtering, itk-registration, itk-segmentation, and numpy. Active maintenance with a release 7 days old.
License in practice
Apache License 2.0 permits both non-commercial and commercial use with attribution and modification notice requirements. No restrictions on derivative works or proprietary applications.
Quickstart
pip install itk
import itk
# Load and process an image
image = itk.imread('input.mha')
filtered = itk.median_image_filter(image, radius=2)
itk.imwrite(filtered, 'output.mha')
Requires numpy and the itk-* subpackages (itk-core, itk-numerics, itk-io, itk-filtering, itk-registration, itk-segmentation); Python 3.8 or later.
Verify before relying
- Specific API surface and available filters beyond the core segmentation and registration functions mentioned.
- Performance characteristics and scalability limits for very large or high-dimensional images.
- Integration patterns with other scientific Python libraries (scipy, scikit-image, etc.).
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 7 — itk-core, itk-numerics, itk-io, itk-filtering, itk-registration, itk-segmentation, numpy |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 222,638/month — #9,259 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: itk-5.4.7-cp310-cp310-macosx_10_9_x86_64.whl; itk-5.4.7-cp310-cp310-macosx_11_0_arm64.whl; itk-5.4.7-cp310-cp310-manylinux2014_x86_64.whl; itk-5.4.7-cp310-cp310-manylinux_2_28_aarch64.whl; itk-5.4.7-cp310-cp310-manylinux_2_28_x86_64.whl; itk-5.4.7-cp310-cp310-win_amd64.whl; itk-5.4.7-cp311-abi3-macosx_10_9_x86_64.whl; itk-5.4.7-cp311-abi3-macosx_11_0_arm64.whl; itk-5.4.7-cp311-abi3-manylinux2014_x86_64.whl; itk-5.4.7-cp311-abi3-manylinux_2_28_aarch64.whl; itk-5.4.7-cp311-abi3-manylinux_2_28_x86_64.whl; itk-5.4.7-cp311-abi3-win_amd64.whl; itk-5.4.7-cp39-cp39-macosx_10_9_x86_64.whl; itk-5.4.7-cp39-cp39-macosx_11_0_arm64.whl; itk-5.4.7-cp39-cp39-manylinux2014_x86_64.whl; itk-5.4.7-cp39-cp39-manylinux_2_28_aarch64.whl; itk-5.4.7-cp39-cp39-manylinux_2_28_x86_64.whl; itk-5.4.7-cp39-cp39-win_amd64.whl
Keywords: ITK, InsightToolkit, scientific, medical, image, imaging
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
itk-coreitk-core provides Python bindings to the…
permissive · top 15,000 on PyPI
itk-filteringitk-filtering provides Python bindings for…
permissive · top 15,000 on PyPI
itk-registrationitk-registration provides Python bindings for…
permissive · top 15,000 on PyPI
itk-segmentationProvides Python bindings for ITK's segmentation…
permissive · top 15,000 on PyPI
simpleitkSimpleITK provides a simplified Python…
permissive · top 5,000 on PyPI
itk-ioitk-io provides Python bindings for reading and…
permissive · top 15,000 on PyPI
itk-numericsitk-numerics provides Python bindings for ITK's…
permissive · top 15,000 on PyPI
itkwasmProvides a Python interface to run itk-wasm…
permissive · top 15,000 on PyPI
dipyDIPY is a Python library for analyzing…
permissive · top 15,000 on PyPI
TotalSegmentatorAutomated segmentation of anatomical structures…
permissive · top 15,000 on PyPI