We are pleased to announce the release of ITK 5.4.6!
ITK 5.4.6 is a maintenance release focused on performance improvements, security fixes, and platform compatibility for this cross-platform, open-source toolkit supporting N-dimensional scientific image analysis with spatially-aware algorithms. Highlights include FFTW SIMD optimizations, a safer NumPy buffer protocol for itk.Image, GIL-release support for Python wrapping, a backport of the GDCM CVE-2026-3650 fix, and a wave of stability fixes spanning Bresenham line drawing, the Voronoi diagram generator, IPL image IO, image adaptors, and more. ![]()
Highlights
- Performance:
- FFTW SIMD codelets are now selected with ABI-guaranteed baselines (SSE/SSE2 on x86_64, NEON on aarch64), with optional per-CPU introspection at configure time for AVX/AVX2.
- New
ITK_PYTHON_RELEASE_GILCMake option (ON by default) and SWIG-threadsflag enable Python wrapping to release the GIL during ITK operations.
- Bug Fixes:
- Backport of the GDCM CVE-2026-3650 fix and a GDCM upstream sync (2026-03-10).
- Integer-only Bresenham line construction and double-precision endpoint computation in
BresenhamLine. - Fixed infinite loop in
VoronoiDiagram2DGenerator::ConstructDiagram. - Null-check hardening in
IPLCommonImageIO, value-initialization of singleton instances, zero-check guard inCumulativeGaussianCostFunction, andImageAdaptor::ComputeOffsetto fixImageRegionIteratorsupport. - GDCM
posix_memalignundefined with MinGW, and Python factory auto-registration of more than two factories.
- Python:
- PEP 688 buffer protocol on
itk.Imagewith safenp.asarray()lifetime semantics — arrays remain valid after the source image is deleted. - Comprehensive new tests for the buffer protocol and image lifetime across NumPy, PyTorch, and Dask interop.
- PEP 688 buffer protocol on
- Platform Support:
- Migration of CI runners from retired
windows-2019towindows-2022, including the v142 toolset job and Azure Pipelines. - FFTW SIMD detection fix for Windows ARM64 and MSVC.
- Move of inline
= defaultdestructors to.cxxfor 30 exported classes to stabilize the ABI. - MINC third-party update (2025-02-24).
- Migration of CI runners from retired
FFTW SIMD Performance
ITK 5.4.6 enables FFTW SIMD codelets out-of-the-box. On x86_64, SSE and SSE2 are enabled by default (ABI-guaranteed); on aarch64, NEON is enabled by default (mandatory in ARMv8). Native (non-cross) builds also probe the build host for AVX and AVX2 via __builtin_cpu_supports() so that codelets are turned on only for what the CPU supports. Each option is individually overridable via cache variables such as -DFFTW_ENABLE_AVX2=OFF. On Apple M4 hardware, this reduced BCDTest_rVN4 from ~1446 s to an estimated ~180-360 s.
Safer NumPy Interop for itk.Image
itk.Image now exports its buffer through PEP 688 (__buffer__, Python 3.12+) and the NumPy v3 __array_interface__ (Python 3.10-3.11), with explicit reference pinning so that arrays derived from an image stay valid even after the image is garbage-collected:
image = itk.imread("brain.nii.gz")
arr = np.asarray(image)
del image
print(arr[1, 1, 1]) # safe — no crash
The new ITK_PYTHON_RELEASE_GIL CMake option (default ON) and SWIG -threads flag allow ITK calls to release the GIL, improving concurrency for Python users.
Download
Python Packages
Install ITK Python packages with:
pip install itk
Guide and Textbook
Library Sources
Testing Data
Unpack optional testing data in the same directory where the Library Source is unpacked.
Checksums and Signatures
Welcome New Contributors
A warm welcome to first-time ITK contributors Cavan Riley and Viacheslav Ustymenko — thank you for joining the community!
Acknowledgments
Thank you to contributors Viacheslav Ustymenko, Jon Haitz Legarreta Gorroño, Niels Dekker, Bradley Lowekamp, Hans Johnson, Matt McCormick, Vladimir S. FONOV, Cavan Riley, Simon Rit, Dženan Zukić, and the broader ITK community for their code, testing, and documentation efforts.
What’s Next
ITK 6.0 Release Candidate 1
The community is preparing for ITK 6.0 RC 1, the first release candidate on the road to ITK 6, featuring:
- Architectural upgrades for contemporary C++ development
- Enhanced template metaprogramming capabilities
- Code modernization for improved readability and maintainability
5.4 Maintenance Commitment
We remain dedicated to supporting current users through:
- Regular security and regression patches
- Critical bug resolution
- Platform compatibility updates
Enjoy ITK!
ITK Changes Since v5.4.5
Bradley Lowekamp (1):
Bug Fixes
- Fix GDCM posix_memalign undefined with mingw (5e82819637)
Dženan Zukić (2):
Enhancements
- Update CI images from Windows-2019 to Windows-2022 (28e6e22ef6)
Platform Fixes
- Fix doc-string of TreeIteratorBase::RemoveChild from Deprecated (f2c34d66a2)
GDCM Upstream (1):
Enhancements
- GDCM 2026-03-10 (dacccb6c) (a2a9d3919a)
Hans Johnson (12):
Enhancements
- Add PEP 688 buffer protocol and fix np.asarray() lifetime safety (c85d6614b8)
- Add comprehensive tests for itk.Image buffer protocol and lifetime (65e3aaca94)
Performance
- Enable FFTW SIMD codelets with per-CPU introspection at configure time (e202d1963a)
- Backport ABI-guaranteed SIMD baselines for FFTW builds (a1a983d8a4)
Bug Fixes
- Fix infinite loop in VoronoiDiagram2DGenerator::ConstructDiagram (6b157cf47b)
- Add null checks after ReadHeader in IPLCommonImageIO (b5b3b0a3c2)
- Value-initialize singleton instances to avoid indeterminate values (4dd5e3ea6e)
- Add zero-check guard in CumulativeGaussianCostFunction (50b691312e)
Platform Fixes
- Fix FFTW SIMD detection for Windows ARM64 and MSVC (418a2c261c)
- Move inline = default destructors to .cxx for 30 exported classes (1969d37cb5)
- Update retired windows-2019 CI runner to windows-2022 (e8708919da)
Documentation Updates
- Sync spell-check dictionary with main branch (26b48edf93)
Matt McCormick (10):
Enhancements
- Add ITK_PYTHON_RELEASE_GIL option and SWIG -threads flag (f876cbd777)
- Bump ITK version to 5.4.6 (f7ff6ad56d)
Bug Fixes
- Remove ‘Utilities/gdcmutfcpp’ from GDCM UpdateFromUpstream.sh (ad24d70771)
- Backport GDCM CVE-2026-3650 fix (39f20a913f)
Platform Fixes
- Update tool.pixi.project to tool.pixi.workspace (56d39f8766)
- Update Azure Pipelines Windows image to windows-2022 (183b3e0f9e)
- Update CI ExternalDataVersion from 5.4.3 to 5.4.5 (08d7f9cb74)
Documentation Updates
- ITK 5.4.5 release notes (cbce2e7973)
- Do not upgrade CMake in emulated Linux ARM build (f3aae0f198)
- Update Python Xcode version to 16.2 for macos-15 runners (acd395990d)
Niels Dekker (2):
Enhancements
- Add
ComputeIndex()member function to ImageConstIterator (a9fa3d935b)
Bug Fixes
- Add ImageAdaptor::ComputeOffset, to fix ImageRegionIterator support (5ca44c9bc4)
Simon Rit (1):
Bug Fixes
- Allow auto registering more than two factories in Python modules (b68b38679a)
Viacheslav Ustymenko (2):
Bug Fixes
- Implement integer-only Bresenham for BuildLine(Index, Index) (ac5652bb68)
- BresenhamLine - use double precision floats for ending index computation (2003fb4005)
Vladimir S. FONOV (1):
Enhancements
- MINC 2025-02-24 (3b8d9c7e) (a32b73adbc)