Insight Toolkit (ITK) is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration

Overview

ITK - The Insight Toolkit

ITK: The Insight Toolkit

GitHub release PyPI Wheels License DOI Powered by NumFOCUS

C++ Python
Linux Build Status Build Status
macOS Build Status Build Status
Windows Build Status Build Status
Linux (Code coverage) Build Status

Links

About

The Insight Toolkit (ITK) is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. 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 a MRI scan in order to combine the information contained in both.

The ITK project uses an open governance model and is fiscally sponsored by NumFOCUS. Consider making a tax-deductible donation to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.


ITK is distributed in binary Python packages. To install:

pip install itk

or

conda install -c conda-forge itk

The cross-platform, C++ core of the toolkit may be built from source using CMake.

Copyright

NumFOCUS holds the copyright of this software. NumFOCUS is a non-profit entity that promotes the use of open source scientific software for educational and research purposes. NumFOCUS delegates project governance to the Insight Software Consortium Council, an educational consortium dedicated to promoting and maintaining open-source, freely available software for medical image analysis. This includes promoting such software in teaching, research, and commercial applications, and maintaining webpages and user and developer communities. ITK is distributed under a license that enables use for both non-commercial and commercial applications. See LICENSE and NOTICE files for details.

Supporting ITK

ITK is a fiscally sponsored project of NumFOCUS, a non-profit dedicated to supporting the open source scientific computing community. If you want to support ITK's mission to develop and maintain open-source, reproducible scientific image analysis software for education and research, please consider making a donation to support our efforts.

NumFOCUS is 501(c)(3) non-profit charity in the United States; as such, donations to NumFOCUS are tax-deductible as allowed by law. As with any donation, you should consult with your personal tax adviser or the IRS about your particular tax situation.

Professional Services

Kitware provides professional services for ITK, including custom solution creation, collaborative research and development, development support, and training.

Citation

To cite ITK, please reference, as appropriate:

The papers

McCormick M, Liu X, Jomier J, Marion C, Ibanez L. ITK: enabling reproducible research and open science. Front Neuroinform. 2014;8:13. Published 2014 Feb 20. doi:10.3389/fninf.2014.00013

Yoo TS, Ackerman MJ, Lorensen WE, Schroeder W, Chalana V, Aylward S, Metaxas D, Whitaker R. Engineering and Algorithm Design for an Image Processing API: A Technical Report on ITK – The Insight Toolkit. In Proc. of Medicine Meets Virtual Reality, J. Westwood, ed., IOS Press Amsterdam pp 586-592 (2002).

The books

Johnson, McCormick, Ibanez. "The ITK Software Guide: Design and Functionality." Fourth Edition. Published by Kitware, Inc. 2015 ISBN: 9781-930934-28-3.

Johnson, McCormick, Ibanez. "The ITK Software Guide: Introduction and Development Guidelines." Fourth Edition. Published by Kitware, Inc. 2015 ISBN: 9781-930934-27-6.

Specific software version

DOI

Once your work has been published, please create a pull request to add the publication to the ITKBibliography.bib file.

Comments
  • Hdf5 1 12 1

    Hdf5 1 12 1

    PR Checklist

    • [x] No API changes were made (or the changes have been approved)
    • [x] No major design changes were made (or the changes have been approved)
    • [ ] Added test (or behavior not changed)
    • [ ] Updated API documentation (or API not changed)
    • [ ] Added license to new files (if any)
    • [ ] Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
    • [ ] Added ITK examples for all new major features (if any)

    Refer to the ITK Software Guide for further development details if necessary.

    type:Infrastructure area:Examples area:Python wrapping area:ThirdParty 
    opened by seanm 59
  • BUG: Fix failing isAffine check due to insuffcient precision in calculations

    BUG: Fix failing isAffine check due to insuffcient precision in calculations

    Fixes #3333

    Co-authored-by: Vladimir S. FONOV [email protected]

    PR Checklist

    • [x] No API changes were made (or the changes have been approved)

    • [x] No major design changes were made (or the changes have been approved)

    • [x] Updated API documentation (or API not changed)

    • [ ] Added license to new files (if any)

    • [X] Added test

    • NO Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5

    • NO Added ITK examples for all new major features (if any)

    type:Bug type:Infrastructure type:Testing area:IO type:Data 
    opened by gdevenyi 54
  • STYLE: Enforce ITK style defined by .clang-format

    STYLE: Enforce ITK style defined by .clang-format

    ITK/Utilities/Maintenance/clang-format.bash
    --clang-format ~/local/llvm/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang-format
    --tracked

    This patch updates the ITK preferred style to one that can be automatically enforced, integrated with many IDE's, and based on externally defined documentation and examples.

    See: https://discourse.itk.org/t/update-coding-style-for-itk/2055

    Most of the changes make inconsistent coding practices consistent throughout the toolkit.

    One large change is changing the {} indentation style from Whitesmiths style https://en.wikipedia.org/wiki/Indentation_style#Whitesmiths_style to an indentation style consistent with many of the other common indentation styles. The primary reason for this change is to overcome the common deficiency of IDE's and formatters to support this uncommon style choice. Completes the work started in #1094

    PR Checklist

    • :no_entry_sign: Makes breaking changes
    • :no_entry_sign: Makes design changes
    • :no_entry_sign: Adds the License notice to new files.
    • :no_entry_sign: Adds Python wrapping.
    • :no_entry_sign: Adds tests and baseline comparison (quantitative).
    • :no_entry_sign: Adds test data.
    • :no_entry_sign: Adds Examples to ITKExamples
    • :no_entry_sign: Adds Documentation.
    type:Style 
    opened by hjmjohnson 45
  • Build with Module_GenericLabelInterpolator:BOOL=ON while avoiding implicit download

    Build with Module_GenericLabelInterpolator:BOOL=ON while avoiding implicit download

    I would like to build ITK with the module. Setting it in the build system attempts to implicitly download it during install. I would like to avoid this, so as to best ensure that only files explicitly known to be needed by the package manager will be downloaded.

     * Package:    sci-libs/itk-5.0.1
     * Repository: chymeric
     * Maintainer: maintainer-wan[email protected] [email protected]
     * USE:        abi_x86_64 amd64 elibc_glibc kernel_linux python_single_target_python3_6 python_targets_python2_7 python_targets_python3_6 userland_GNU
     * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
    >>> Unpacking source...
    >>> Unpacking InsightToolkit-5.0.1.tar.gz to /var/tmp/portage/sci-libs/itk-5.0.1/work
    >>> Source unpacked in /var/tmp/portage/sci-libs/itk-5.0.1/work
    >>> Preparing source in /var/tmp/portage/sci-libs/itk-5.0.1/work/InsightToolkit-5.0.1 ...
    >>> Source prepared.
    >>> Configuring source in /var/tmp/portage/sci-libs/itk-5.0.1/work/InsightToolkit-5.0.1 ...
     * cmake-utils_src_prepare has not been run, please open a bug on https://bugs.gentoo.org/
    >>> Working in BUILD_DIR: "/var/tmp/portage/sci-libs/itk-5.0.1/work/itk-5.0.1_build"
    cmake -C /var/tmp/portage/sci-libs/itk-5.0.1/work/itk-5.0.1_build/gentoo_common_config.cmake -G Unix Makefiles -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON -DITK_USE_SYSTEM_DCMTK=ON -DGDCM_USE_SYSTEM_OPENJPEG=ON -DITK_USE_SYSTEM_DOUBLECONVERSION=ON -DITK_USE_SYSTEM_CASTXML=ON -DITK_USE_SYSTEM_HDF5=ON -DITK_USE_SYSTEM_JPEG=ON -DITK_USE_SYSTEM_PNG=ON -DITK_USE_SYSTEM_SWIG=ON -DITK_USE_SYSTEM_TIFF=ON -DITK_USE_SYSTEM_ZLIB=ON -DITK_USE_KWSTYLE=OFF -DITK_BUILD_DEFAULT_MODULES=ON -DITK_COMPUTER_MEMORY_SIZE=1 -DWRAP_ITK_JAVA=OFF -DWRAP_ITK_TCL=OFF -Ddouble-conversion_INCLUDE_DIRS=/usr/include/double-conversion -DExternalData_OBJECT_STORES=/var/tmp/portage/sci-libs/itk-5.0.1/work/InsightToolkit-5.0.1/.ExternalData -DModule_GenericLabelInterpolator:BOOL=ON -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DITK_USE_REVIEW=OFF -DITK_INSTALL_LIBRARY_DIR=lib64 -DITK_WRAP_PYTHON=OFF -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/sci-libs/itk-5.0.1/work/itk-5.0.1_build/gentoo_toolchain.cmake  /var/tmp/portage/sci-libs/itk-5.0.1/work/InsightToolkit-5.0.1
    loading initial cache file /var/tmp/portage/sci-libs/itk-5.0.1/work/itk-5.0.1_build/gentoo_common_config.cmake
    -- The CXX compiler identification is GNU 9.1.0
    -- The C compiler identification is GNU 9.1.0
    -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++
    -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc
    -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Found Git: /usr/bin/git (found version "2.22.0") 
    -- Found PythonInterp: /var/tmp/portage/sci-libs/itk-5.0.1/temp/python3.6/bin/python (found version "3.6.9") 
    -- Performing Test C_HAS_WARNING-Wno-uninitialized
    -- Performing Test C_HAS_WARNING-Wno-uninitialized - Success
    -- Performing Test C_HAS_WARNING-Wno-unused-parameter
    -- Performing Test C_HAS_WARNING-Wno-unused-parameter - Success
    -- Performing Test C_HAS_WARNING-Wall
    -- Performing Test C_HAS_WARNING-Wall - Success
    -- Performing Test C_HAS_WARNING-Wno-long-double
    -- Performing Test C_HAS_WARNING-Wno-long-double - Failed
    -- Performing Test C_HAS_WARNING-Wcast-align
    -- Performing Test C_HAS_WARNING-Wcast-align - Success
    -- Performing Test C_HAS_WARNING-Wdisabled-optimization
    -- Performing Test C_HAS_WARNING-Wdisabled-optimization - Success
    -- Performing Test C_HAS_WARNING-Wextra
    -- Performing Test C_HAS_WARNING-Wextra - Success
    -- Performing Test C_HAS_WARNING-Wformat_2
    -- Performing Test C_HAS_WARNING-Wformat_2 - Success
    -- Performing Test C_HAS_WARNING-Winvalid-pch
    -- Performing Test C_HAS_WARNING-Winvalid-pch - Success
    -- Performing Test C_HAS_WARNING-Wno-format-nonliteral
    -- Performing Test C_HAS_WARNING-Wno-format-nonliteral - Success
    -- Performing Test C_HAS_WARNING-Wpointer-arith
    -- Performing Test C_HAS_WARNING-Wpointer-arith - Success
    -- Performing Test C_HAS_WARNING-Wshadow
    -- Performing Test C_HAS_WARNING-Wshadow - Success
    -- Performing Test C_HAS_WARNING-Wunused
    -- Performing Test C_HAS_WARNING-Wunused - Success
    -- Performing Test C_HAS_WARNING-Wwrite-strings
    -- Performing Test C_HAS_WARNING-Wwrite-strings - Success
    -- Performing Test C_HAS_WARNING-funit-at-a-time
    -- Performing Test C_HAS_WARNING-funit-at-a-time - Success
    -- Performing Test C_HAS_WARNING-Wno-strict-overflow
    -- Performing Test C_HAS_WARNING-Wno-strict-overflow - Success
    -- Performing Test CXX_HAS_WARNING-Wall
    -- Performing Test CXX_HAS_WARNING-Wall - Success
    -- Performing Test CXX_HAS_WARNING-Wno-long-double
    -- Performing Test CXX_HAS_WARNING-Wno-long-double - Failed
    -- Performing Test CXX_HAS_WARNING-Wcast-align
    -- Performing Test CXX_HAS_WARNING-Wcast-align - Success
    -- Performing Test CXX_HAS_WARNING-Wdisabled-optimization
    -- Performing Test CXX_HAS_WARNING-Wdisabled-optimization - Success
    -- Performing Test CXX_HAS_WARNING-Wextra
    -- Performing Test CXX_HAS_WARNING-Wextra - Success
    -- Performing Test CXX_HAS_WARNING-Wformat_2
    -- Performing Test CXX_HAS_WARNING-Wformat_2 - Success
    -- Performing Test CXX_HAS_WARNING-Winvalid-pch
    -- Performing Test CXX_HAS_WARNING-Winvalid-pch - Success
    -- Performing Test CXX_HAS_WARNING-Wno-format-nonliteral
    -- Performing Test CXX_HAS_WARNING-Wno-format-nonliteral - Success
    -- Performing Test CXX_HAS_WARNING-Wpointer-arith
    -- Performing Test CXX_HAS_WARNING-Wpointer-arith - Success
    -- Performing Test CXX_HAS_WARNING-Wshadow
    -- Performing Test CXX_HAS_WARNING-Wshadow - Success
    -- Performing Test CXX_HAS_WARNING-Wunused
    -- Performing Test CXX_HAS_WARNING-Wunused - Success
    -- Performing Test CXX_HAS_WARNING-Wwrite-strings
    -- Performing Test CXX_HAS_WARNING-Wwrite-strings - Success
    -- Performing Test CXX_HAS_WARNING-funit-at-a-time
    -- Performing Test CXX_HAS_WARNING-funit-at-a-time - Success
    -- Performing Test CXX_HAS_WARNING-Wno-strict-overflow
    -- Performing Test CXX_HAS_WARNING-Wno-strict-overflow - Success
    -- Performing Test CXX_HAS_WARNING-Wno-deprecated
    -- Performing Test CXX_HAS_WARNING-Wno-deprecated - Success
    -- Performing Test CXX_HAS_WARNING-Wno-invalid-offsetof
    -- Performing Test CXX_HAS_WARNING-Wno-invalid-offsetof - Success
    -- Performing Test CXX_HAS_WARNING-Wno-undefined-var-template
    -- Performing Test CXX_HAS_WARNING-Wno-undefined-var-template - Failed
    -- Performing Test CXX_HAS_WARNING-Woverloaded-virtual
    -- Performing Test CXX_HAS_WARNING-Woverloaded-virtual - Success
    -- Performing Test CXX_HAS_WARNING-Wstrict-null-sentinel
    -- Performing Test CXX_HAS_WARNING-Wstrict-null-sentinel - Success
    -- Performing Test C_HAS_WARNING-mtune_native
    -- Performing Test C_HAS_WARNING-mtune_native - Success
    -- Performing Test C_HAS_WARNING-march_corei7
    -- Performing Test C_HAS_WARNING-march_corei7 - Success
    -- Performing Test CXX_HAS_WARNING-mtune_native
    -- Performing Test CXX_HAS_WARNING-mtune_native - Success
    -- Performing Test CXX_HAS_WARNING-march_corei7
    -- Performing Test CXX_HAS_WARNING-march_corei7 - Success
    -- Performing Test have_gold
    -- Performing Test have_gold - Success
    -- Performing Test CXX_HAS_DISABLE_OPTIMIZATION_FLAG
    -- Performing Test CXX_HAS_DISABLE_OPTIMIZATION_FLAG - Failed
    CMake Error at CMake/ITKModuleRemote.cmake:12 (message):
      Failed to clone repository:
      'https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator.git'
    Call Stack (most recent call first):
      CMake/ITKModuleRemote.cmake:134 (_git_clone)
      CMake/ITKModuleRemote.cmake:197 (_fetch_with_git)
      Modules/Remote/GenericLabelInterpolator.remote.cmake:1 (itk_fetch_module)
      Modules/Remote/CMakeLists.txt:6 (include)
    
    
    -- Configuring incomplete, errors occurred!
    

    What would be the best way to go about this? Should I download and unpack some ITKGenericLabelInterpolator tarball explicitly? If so, then to where? If not, perhaps the ITKGenericLabelInterpolator can be built separately and installed into the appropriate path. But I do not see how this can be done, since the module README only lists the ITK CMake flag as an install instruction.

    type:Infrastructure 
    opened by TheChymera 36
  • BUG: Half a pixel margin ImageMaskSpatialObject::ComputeMyBoundingBox()

    BUG: Half a pixel margin ImageMaskSpatialObject::ComputeMyBoundingBox()

    Enlarges the bounding box by half a pixel in each direction, to ensure that a point (in object space) whose nearest pixel has a non-zero value is always treated as being inside the object.

    Fixes issue #753 (ImageMaskSpatialObject BoundingBox smaller than before Spatial Object update) and issue #785 (ImageMaskSpatialObject IsInside should not depend on distant pixels). Related to discussion topic "ImageMaskSpatialObject IsInside less than half a pixel away?", https://discourse.itk.org/t/imagemaskspatialobject-isinside-less-than-half-a-pixel-away/1807

    opened by N-Dekker 36
  • Apple Silicon support

    Apple Silicon support

    Build and test on the new Apple M1 ARM Silicon processor / system.

    Description

    We will have to work with the newer Xcode / processor / binary system.

    Additional Information

    This is a tracking issue to discuss issues / progress.

    CC: @dzenanz @imikejackson

    type:Compiler 
    opened by thewtex 35
  • Syntax error in input(3) of itkVectorContainer.i

    Syntax error in input(3) of itkVectorContainer.i

    Description

    I want to build insighttoolkit for openSUSE Tumbleweed on s390x and x86. It is failing with the following error message:

    [ 1239s] /home/abuild/rpmbuild/BUILD/ITK-5.2.1/build/Wrapping/Typedefs/itkVectorContainer.i:177: Error: Syntax error in input(3).
    [ 1239s] ninja: build stopped: subcommand failed.
    
    

    Steps to Reproduce

    %cmake \
      -DITK_INSTALL_LIBRARY_DIR:PATH=%{_lib}/ \
      -DITK_INSTALL_INCLUDE_DIR:PATH=include/%{name}/ \
      -DITK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{name}/ \
      -DITK_INSTALL_RUNTIME_DIR:PATH=%{_bindir} \
      -DITK_INSTALL_DOC_DIR=share/doc/packages/%{name}/ \
      -DBUILD_EXAMPLES:BOOL=ON \
      -DBUILD_SHARED_LIBS:BOOL=ON \
      -DBUILD_TESTING:BOOL=OFF \
      -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \
      -DITK_USE_FFTWD:BOOL=ON \
      -DITK_USE_FFTWF:BOOL=ON \
      -DITK_USE_SYSTEM_LIBRARIES:BOOL=ON \
      -DITK_USE_SYSTEM_CASTXML:BOOL=ON \
      -DITK_USE_SYSTEM_GDCM:BOOL=ON \
    %if %{without system_eigen}
      -DITK_USE_SYSTEM_EIGEN:BOOL=OFF \
    %endif
      -DITK_USE_SYSTEM_SWIG:BOOL=ON \
      -DITK_USE_SYSTEM_VXL:BOOL=OFF \
      -DVXL_BUILD_CORE_NUMERICS:BOOL=OFF \
      -DVCL_INCLUDE_CXX_0X:BOOL=ON \
      -DITK_FORBID_DOWNLOADS=ON \
      -DITK_WRAP_PYTHON:BOOL=ON
    
    

    Expected behavior

    You can build ITK without any syntax error.

    Actual behavior

    Build of the openSUSE package is failing because of a syntax error.

    Reproducibility

    100% on s390x and x86

    Versions

    5.2.1

    Environment

    openSUSE Tumbleweed architecture: s390x or x86 cpp-12-2.2 cmake-3.23.2-2.1 gcc-12-2.2 gtk2-devel-2.24.33-2.5

    Additional Information

    (see build log: https://build.opensuse.org/public/build/Application:Geo/openSUSE_Factory_zSystems/s390x/insighttoolkit/_log )

    type:Bug 
    opened by skriesch 33
  • Building ITK on Windows

    Building ITK on Windows

    Building ITK on Windows (through R)

    I'm trying to build ITK on Windows, through R in the ITKR package (https://github.com/muschellij2/ITKR). I'm testing this through appveyor (https://ci.appveyor.com/project/muschellij2/itkr). I'm getting the following error:

    [ 73%] Building C object Modules/ThirdParty/HDF5/src/itkhdf5/src/CMakeFiles/hdf5-static.dir/H5Defl.c.obj
    In file included from C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5private.h:615:0,
                     from C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5Defl.c:29:
    C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5Defl.c: In function 'H5D__efl_read':
    C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5win32defs.h:57:66: error: expected expression before ')' token
     #define HDopen(S,F,...)       _open(S, F | _O_BINARY, __VA_ARGS__)
                                                                      ^
    C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5Defl.c:291:18: note: in expansion of macro 'HDopen'
             if((fd = HDopen(full_name, O_RDONLY)) < 0)
                      ^
    Modules\ThirdParty\HDF5\src\itkhdf5\src\CMakeFiles\hdf5-static.dir\build.make:770: recipe for target 'Modules/ThirdParty/HDF5/src/itkhdf5/src/CMakeFiles/hdf5-static.dir/H5Defl.c.obj' failed
    

    This worked using commit 4f89edd8334da198099c686b993ec9f9f12dccdf, but not the latest or anything with respect to v5.0.

    Steps to Reproduce

    The steps can be seen here: https://ci.appveyor.com/project/muschellij2/itkr

    1. The main configure script is https://github.com/muschellij2/ITKR/blob/master/configure.win
    2. The make version is mingw32-make, and the Makevars necessary to reproduce are: https://github.com/muschellij2/ITKR/blob/master/src/Makevars.win
    3. See the attached 00install.txt file below.

    Expected behavior

    Successful build such as https://ci.appveyor.com/project/muschellij2/itkr/build/1.0.278

    Actual behavior

    Build failure such as https://ci.appveyor.com/project/muschellij2/itkr/build/1.0.282

    Reproducibility

    100% of the builds with

    Versions

    ITK_VERSION_MAJOR = 5 ITK_VERSION_MINOR = 0 ITK_VERSION_PATCH = 0

    Environment

    Windows on Appveyor (I believe Windows Server 2012 R2 )

    Additional Information

    I've uploaded the CMakeLists and the installation output CMakeLists.txt 00install.txt

    type:Compiler area:ThirdParty 
    opened by muschellij2 33
  • io factory registration python

    io factory registration python

    Load IO and FFT factories at runtime based on the itk-module.cmake FACTORY_NAMES metadata, as is done with C++ static binary initialization.

    This enables run-time discovery of all Python IO or FFT implementations. Some may be added with remote module Python packages.

    This also addresses Slicer's use case where Slicer is performing initialization of IO factories with static initialization. Only one static binary initialization is intended to be supported per application. Do not perform static binary initialization in the Python modules.

    FFTImageFilter consolidation was finalized, and the required corresponding VnlFFTImageFilterFactory and FFTWFFTImageFilterFactory classes created and wrapped.

    Add the missing required TransformIO wrapping.

    type:Infrastructure area:Python wrapping type:Testing area:Filtering area:IO 
    opened by thewtex 32
  • STYLE: remove unused code from 168c457 in GDCM IO

    STYLE: remove unused code from 168c457 in GDCM IO

    This switch is useless, forced Tag is (0028,0030), so entry is always from dictionary {0x0028,0x0030,VR::DS,VM::VM2,"Pixel Spacing","PixelSpacing",false }, this switch was simply copy/pasted, s. here and dictionary lookup above is useless too, it is loop.

    Edit: m_El.SetLength(entry.GetVM().GetLength() * entry.GetVR().GetSizeof()) is from dictionary and always 2 * 8 = 16.

    opened by issakomi 31
  • IBM powerpc compile error

    IBM powerpc compile error

    Hi, I am working on Power9 with ppcle-64 arch. I tried to compile it. It shows error.

    Scanning dependencies of target ITKReview-all
    [100%] Built target ITKReview-all
    [100%] Linking CXX static library ../../../../lib/libITKTestKernel-5.1.a
    [100%] Built target ITKTestKernel
    Scanning dependencies of target itkTestDriver
    [100%] Building CXX object Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/itkTestDriver.cxx.o
    [100%] Linking CXX executable ../../../../bin/itkTestDriver
    ../../../../lib/libitkpng-5.1.a(pngrutil.c.o):pngrutil.c:function itk_png_read_filter_row: error: undefined reference to 'png_init_filter_functions_vsx'
    collect2: error: ld returned 1 exit status
    make[5]: *** [bin/itkTestDriver] Error 1
    make[4]: *** [Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/all] Error 2
    make[3]: *** [all] Error 2
    make[2]: *** [ITKv5-prefix/src/ITKv5-stamp/ITKv5-build] Error 2
    make[1]: *** [CMakeFiles/ITKv5.dir/all] Error 2
    make: *** [all] Error 2
    
    type:Bug 
    opened by Mon-ius 30
  • BUG: Fix uninitialized value warning

    BUG: Fix uninitialized value warning

    Fix uninitialized value warning.

    Fixes:

    UMC ==16463== Conditional jump or move depends on uninitialised value(s)
    ==16463==    at 0x9BD983: itk::ImageRegistrationMethodv4, itk::Image, itk::DisplacementFieldTransform, itk::Image, itk::PointSet > >::SetNumberOfLevels(unsigned long) (itkImageRegistrationMethodv4.hxx:881)
    ==16463==    by 0x9C44B6: itk::ImageRegistrationMethodv4, itk::Image, itk::DisplacementFieldTransform, itk::Image, itk::PointSet > >::ImageRegistrationMethodv4() (itkImageRegistrationMethodv4.hxx:103)
    ==16463==    by 0x9BBFA0: itk::SyNImageRegistrationMethod, itk::Image, itk::DisplacementFieldTransform, itk::Image, itk::PointSet > >::SyNImageRegistrationMethod() (itkSyNImageRegistrationMethod.hxx:41)
    ==16463==    by 0x9B5974: itk::SyNImageRegistrationMethod, itk::Image, itk::DisplacementFieldTransform, itk::Image, itk::PointSet > >::New() (itkSyNImageRegistrationMethod.h:84)
    ==16463==    by 0xA15CD4: itkSyNPointSetRegistrationTest(int, char**) (itkSyNPointSetRegistrationTest.cxx:132)
    ==16463==    by 0x317927: main (ITKRegistrationMethodsv4TestDriver.cxx:222)
    

    and similar warnings triggered by registration testing code.

    Visible in: https://open.cdash.org/viewDynamicAnalysis.php?buildid=8374098

    Introduced in d1c46d63be7f78d758720e1e0a463b73b30a4055.

    PR Checklist

    type:Bug area:Registration 
    opened by jhlegarreta 1
  • COMP: Fix MSVC error C2516: 'ConstIterator': is not a legal base class

    COMP: Fix MSVC error C2516: 'ConstIterator': is not a legal base class

    Originally reported by Astha, March 14, 2022, and further discussed at "ITK build Error in itk::ShapedNeighborhoodIterator", https://discourse.itk.org/t/itk-build-error-in-itk-shapedneighborhooditerator/4861

    type:Compiler area:Core area:Segmentation 
    opened by N-Dekker 2
  • Fix MSVC warning C26495: `ZwQuerySystemInformation`, `m_MetaDataObjectValue` uninitialized

    Fix MSVC warning C26495: `ZwQuerySystemInformation`, `m_MetaDataObjectValue` uninitialized

    Fixed Visual Studio 2019 Code Analysis warnings from both MetaDataObject and WindowsMemoryUsageObserver, saying:

    warning C26495: Variable is uninitialized. Always initialize a member variable (type.6)

    area:Core 
    opened by N-Dekker 1
  • STYLE: Move ObjectFactorBase `OverrideInformation` to unnamed namespace

    STYLE: Move ObjectFactorBase `OverrideInformation` to unnamed namespace

    OverrideInformation is just an internal implementation class type of ObjectFactorBase, so it is not meant to be part of the interface of ObjectFactorBase.

    area:Core type:Style 
    opened by N-Dekker 0
  • ENH: Add test for the `itk::BoundedReciprocalImageFilter` class

    ENH: Add test for the `itk::BoundedReciprocalImageFilter` class

    Add a test for the itk::BoundedReciprocalImageFilter class.

    PR Checklist

    type:Infrastructure type:Enhancement type:Testing area:Filtering type:Data 
    opened by jhlegarreta 1
  • ENH: Increase coverage for `itk::RecursiveGaussianImageFilter`

    ENH: Increase coverage for `itk::RecursiveGaussianImageFilter`

    • STYLE: Use canonical naming in itkRecursiveGaussianImageFilter tests
    • ENH: Add boolean macro to across-scale normalization ivar
    • ENH: Increase coverage for itk::RecursiveGaussianImageFilter

    PR Checklist

    type:Infrastructure type:Enhancement type:Testing area:Filtering type:Coverage 
    opened by jhlegarreta 0
Releases(v5.3.0)
Owner
Insight Software Consortium
Community development of the Insight Toolkit (ITK)
Insight Software Consortium
the implementations of 'Parzen-Window Based Normalized Mutual Information for Medical Image Registration'

ImageRegistration_NormalisedMutualInformation 代码复现论文《Parzen-Window Based Normalized Mutual Information for Medical Image Registration》 利用归一化互信息对医学图像进行

gtc1072 3 Apr 4, 2022
An open source iOS framework for GPU-based image and video processing

GPUImage Brad Larson http://www.sunsetlakesoftware.com @bradlarson [email protected] Overview The GPUImage framework is a BSD-licensed iO

Brad Larson 20k Jan 7, 2023
Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, C++ machine learning library designed for real-time gesture recognition.

Gesture Recognition Toolkit (GRT) The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, C++ machine learning library designed for re

Nicholas Gillian 793 Dec 29, 2022
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

CNTK Chat Windows build status Linux build status The Microsoft Cognitive Toolkit (https://cntk.ai) is a unified deep learning toolkit that describes

Microsoft 17.3k Dec 23, 2022
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

The Microsoft Cognitive Toolkit is a unified deep learning toolkit that describes neural networks as a series of computational steps via a directed graph.

Microsoft 17.3k Jan 6, 2023
Super Mario Remake using C++, SFML, and Image Processing which was a project for Structure Programming Course, 1st Year

Super Mario Remake We use : C++ in OOP concepts SFML for game animations and sound effects. Image processing (Tensorflow and openCV) to add additional

Omar Elshopky 5 Dec 11, 2022
NVIDIA Texture Tools samples for compression, image processing, and decompression.

NVTT 3 Samples This repository contains a number of samples showing how to use NVTT 3, a GPU-accelerated texture compression and image processing libr

NVIDIA DesignWorks Samples 33 Dec 20, 2022
ClanLib is a cross platform C++ toolkit library.

ClanLib ClanLib is a cross platform toolkit library with a primary focus on game creation. The library is Open Source and free for commercial use, und

Kenneth Gangstø 309 Dec 18, 2022
A easy-to-use image processing library accelerated with CUDA on GPU.

gpucv Have you used OpenCV on your CPU, and wanted to run it on GPU. Did you try installing OpenCV and get frustrated with its installation. Fret not

shrikumaran pb 4 Aug 14, 2021
Portrait segmentation in your web browser with ncnn and webassembly

ncnn-webassembly-portrait-segmentation open https://nihui.github.io/ncnn-webassembly-portrait-segmentation and enjoy build and deploy Install emscript

null 26 Dec 5, 2022
Android face detect and segmentation by ncnn

Android face detect and segmentation by ncnn

null 118 Dec 29, 2022
Ground segmentation and point cloud clustering based on CVC(Curved Voxel Clustering)

my_detection Ground segmentation and point cloud clustering based on CVC(Curved Voxel Clustering) 本项目使用设置地面坡度阈值的方法,滤除地面点,使用三维弯曲体素聚类法完成点云的聚类,包围盒参数由Apol

null 9 Jul 15, 2022
A c++ trainable semantic segmentation library based on libtorch (pytorch c++). Backbone: ResNet, ResNext. Architecture: FPN, U-Net, PAN, LinkNet, PSPNet, DeepLab-V3, DeepLab-V3+ by now.

中文 C++ library with Neural Networks for Image Segmentation based on LibTorch. The main features of this library are: High level API (just a line to cr

null 310 Jan 3, 2023
⚡️Real-time portrait segmentation

ncnn-portrait-segmentation ⚡️ Real-time portrait segmentation This project provides real-time human segmentation based on CPU. Requirements ncnn openc

Youngsoo Lee 39 Dec 21, 2022
Android hair/human segmentation demo by ncnn

ncnn_Android_human Android hair/human segmentation demo by ncnn PS:performance maybe poor.it's just a demo:) Reference: 1.https://github.com/Tencent/n

null 23 May 23, 2022
Official page of "Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor"

Patchwork Official page of "Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor

Hyungtae Lim 252 Dec 21, 2022
segformer semantic segmentation infer by tengine

Segformer-tengine Segformer semantic segmentation infer by tengine 前言: 记录一下Segformer部署在tengine上的折腾过程 - 小飞飞的文章 - 知乎 https://zhuanlan.zhihu.com/p/397735

null 9 Jun 18, 2022
An implementation on Fast Ground Segmentation for 3D LiDAR Point Cloud Based on Jump-Convolution-Process.

An implementation on "Shen Z, Liang H, Lin L, Wang Z, Huang W, Yu J. Fast Ground Segmentation for 3D LiDAR Point Cloud Based on Jump-Convolution-Process. Remote Sensing. 2021; 13(16):3239. https://doi.org/10.3390/rs13163239"

Wangxu1996 59 Jan 5, 2023
A LiDAR point cloud cluster for panoptic segmentation

Divide-and-Merge-LiDAR-Panoptic-Cluster A demo video of our method with semantic prior: More information will be coming soon! As a PhD student, I don'

YimingZhao 65 Dec 22, 2022