diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..5a09c53 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,63 @@ +version: 2 +jobs: + build-and-test: + working_directory: /LesionSizingToolkit-build + docker: + - image: insighttoolkit/module-ci:latest + steps: + - checkout: + path: /LesionSizingToolkit + - run: + name: Fetch CTest driver script + command: | + curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O + - run: + name: Configure CTest script + command: | + SHASNIP=$(echo $CIRCLE_SHA1 | cut -c1-7) + cat > dashboard.cmake << EOF + set(CTEST_SITE "CircleCI") + set(CTEST_BUILD_NAME "External-LesionSizingToolkit-${CIRCLE_BRANCH}-${CIRCLE_BUILD_NUM}-${SHASNIP}") + set(CTEST_BUILD_CONFIGURATION "MinSizeRel") + set(CTEST_CMAKE_GENERATOR "Unix Makefiles") + set(CTEST_BUILD_FLAGS: "-j5") + set(CTEST_SOURCE_DIRECTORY /LesionSizingToolkit) + set(CTEST_BINARY_DIRECTORY /LesionSizingToolkit-build) + set(dashboard_model Experimental) + set(dashboard_no_clean 1) + set(dashboard_cache " + ITK_DIR:PATH=/ITK-build + BUILD_TESTING:BOOL=ON + ") + include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) + EOF + - run: + name: Build and Test + no_output_timeout: 1.0h + command: | + ctest -j 2 -VV -S dashboard.cmake + package: + working_directory: ~/LesionSizingToolkit + machine: true + steps: + - checkout + - run: + name: Fetch build script + command: | + curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O + chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh + - run: + name: Build Python packages + no_output_timeout: 1.0h + command: | + ./dockcross-manylinux-download-cache-and-build-module-wheels.sh + - store_artifacts: + path: dist + destination: dist + +workflows: + version: 2 + build-test-package: + jobs: + - build-and-test + - package diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..4bd8df1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +sudo: true +language: cpp +os: +- osx +compiler: +- gcc +cache: + directories: + - "$HOME/Library/Caches/Homebrew" +script: +- curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O +- chmod u+x macpython-download-cache-and-build-module-wheels.sh +- ./macpython-download-cache-and-build-module-wheels.sh +- tar -zcvf dist.tar.gz dist/ +- curl --upload-file dist.tar.gz https://transfer.sh/dist.tar.gz diff --git a/CTestConfig.cmake b/CTestConfig.cmake index 77d7762..62f68ac 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -1,13 +1,7 @@ -## This file should be placed in the root directory of your project. -## Then modify the CMakeLists.txt file in the root directory of your -## project to incorporate the testing dashboard. -## # The following are required to uses Dart and the Cdash dashboard -## ENABLE_TESTING() -## INCLUDE(CTest) -set(CTEST_PROJECT_NAME "LesionSizing") -set(CTEST_NIGHTLY_START_TIME "2:00:00 UTC") +set(CTEST_PROJECT_NAME "ITK") +set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC") set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "my.cdash.org") -set(CTEST_DROP_LOCATION "/submit.php?project=LesionSizingToolkit") +set(CTEST_DROP_SITE "open.cdash.org") +set(CTEST_DROP_LOCATION "/submit.php?project=Insight") set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/README.rst b/README.rst index a3d2612..ee5c06f 100644 --- a/README.rst +++ b/README.rst @@ -1,6 +1,21 @@ The Lesion Sizing Toolkit (LSTK) ================================ +.. |CircleCI| image:: https://circleci.com/gh/InsightSoftwareConsortium/LesionSizingToolkit.svg?style=shield + :target: https://circleci.com/gh/InsightSoftwareConsortium/LesionSizingToolkit + +.. |TravisCI| image:: https://travis-ci.org/InsightSoftwareConsortium/LesionSizingToolkit.svg?branch=master + :target: https://travis-ci.org/InsightSoftwareConsortium/LesionSizingToolkit + +.. |AppVeyor| image:: https://img.shields.io/appveyor/ci/InsightSoftwareConsortium/lesionsizingtoolkit.svg + :target: https://ci.appveyor.com/project/InsightSoftwareConsortium/lesionsizingtoolkit + +=========== =========== =========== + Linux macOS Windows +=========== =========== =========== +|CircleCI| |TravisCI| |AppVeyor| +=========== =========== =========== + Overview -------- @@ -17,6 +32,18 @@ For more information, see the `Insight Journal article `_ +are available for Linux, macOS, and Windows. They can be installed with:: + + python -m pip install --upgrade pip + python -m pip install itk-lesionsizingtoolkit + Data ---- The project has extensively used the CT lesion data assembled by NIST for the diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..99c62fc --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,21 @@ +branches: + only: + - master + +version: "0.0.1.{build}" + +install: + + - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/windows-download-cache-and-build-module-wheels.ps1 -O + - ps: .\windows-download-cache-and-build-module-wheels.ps1 + +build: off + +test: off + +artifacts: + + # pushing entire folder as a zip archive + - path: dist\* + +deploy: off diff --git a/itk-module.cmake b/itk-module.cmake index 9c92393..63fd0a2 100644 --- a/itk-module.cmake +++ b/itk-module.cmake @@ -1,32 +1,38 @@ -set(DOCUMENTATION "This module contains a collection of classes for performing -measurement of lesions. Its clinical motivation is the study of cancerous lung -lesions. However, the functionalities developed here are usable in a wider -range of applications. The Lesion Sizing Toolkit is built upon ITK and adds to -it specific classes for computing image features that are then combined into a -detection and measurement layer.") +# the top-level README is used for describing this module, just +# re-used it for documentation here +get_filename_component(MY_CURRENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(READ "${MY_CURRENT_DIR}/README.rst" DOCUMENTATION) +# itk_module() defines the module dependencies in LesionSizingToolkit +# The testing module in LesionSizingToolkit depends on ITKTestKernel +# By convention those modules outside of ITK are not prefixed with +# ITK. + +# define the dependencies of the include module and the tests itk_module(LesionSizingToolkit - DEPENDS - ITKImageFeature - ITKLevelSets - ITKStatistics - ITKIOSpatialObjects - ITKRegionGrowing - ITKLabelVoting - ITKMathematicalMorphology - ITKIOBruker - ITKIOGDCM - ITKIOMeta - ITKIOMINC - ITKIOGE - ITKIOBioRad - ITKIOHDF5 - ITKIOLSM - ITKIOMRC - ITKIOStimulate - ITKVtkGlue - ITKTestKernel #to handle IO in src - EXCLUDE_FROM_DEFAULT - DESCRIPTION - "${DOCUMENTATION}" + DEPENDS + ITKImageFeature + ITKLevelSets + ITKStatistics + ITKIOSpatialObjects + ITKRegionGrowing + ITKLabelVoting + ITKMathematicalMorphology + ITKIOBruker + ITKIOGDCM + ITKIOMeta + ITKIOMINC + ITKIOGE + ITKIOBioRad + ITKIOHDF5 + ITKIOLSM + ITKIOMRC + ITKIOStimulate + ITKVtkGlue + ITKTestKernel #to handle IO in src + TEST_DEPENDS + ITKTestKernel + EXCLUDE_FROM_DEFAULT + DESCRIPTION + "${DOCUMENTATION}" ) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..6b62f65 --- /dev/null +++ b/setup.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +from __future__ import print_function +from os import sys + +try: + from skbuild import setup +except ImportError: + print('scikit-build is required to build from source.', file=sys.stderr) + print('Please run:', file=sys.stderr) + print('', file=sys.stderr) + print(' python -m pip install scikit-build') + sys.exit(1) + +setup( + name='lesionsizingtoolkit', + version='0.0.1', + author='Xiao Xiao Liu', + author_email='xiaoxiao.liu@kitware.com', + packages=['itk'], + package_dir={'itk': 'itk'}, + download_url=r'https://github.com/InsightSoftwareConsortium/LesionSizingToolkit', + description=r'A generic and extensible ITK module for lesion segmentation', + long_description='LesionSizingToolkit (LSTK) provides a generic, modular, ' + 'and extensible architecture for lesion sizing' + 'algorithms in medical images as well as a reference' + 'algorithm for lung solid lesion segmentation in CT images.\n' + 'Please refer to:' + 'Liu X., Helba B., Krishnan K., Reynolds P., McCormick M., Turner W., Ibáñez L., Yankelevitz D., Avila R.,' + '“Fostering Open Science in Lung Cancer Lesion Sizing with ITK module LSTK”, ' + 'Insight Journal, http://hdl.handle.net/10380/3369, 2012.', + classifiers=[ + "License :: OSI Approved :: BSD 2-Clause \"Simplified\" License", + "Programming Language :: Python", + "Programming Language :: C++", + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Education", + "Intended Audience :: Healthcare Industry", + "Intended Audience :: Science/Research", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Medical Science Apps.", + "Topic :: Scientific/Engineering :: Information Analysis", + "Topic :: Software Development :: Libraries", + "Operating System :: Android", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX", + "Operating System :: Unix", + "Operating System :: MacOS" + ], + license='BSD', + keywords='ITK InsightToolkit', + url=r'https://itk.org/', + install_requires=[ + r'itk' + ] + ) diff --git a/wrapping/CMakeLists.txt b/wrapping/CMakeLists.txt new file mode 100644 index 0000000..298939a --- /dev/null +++ b/wrapping/CMakeLists.txt @@ -0,0 +1,48 @@ +itk_wrap_module(LesionSizingToolkit) + +set(WRAPPER_SUBMODULE_ORDER + itkBinaryThresholdFeatureGenerator + itkCannyEdgeDetectionRecursiveGaussianImageFilter + itkCannyEdgesDistanceAdvectionFieldFeatureGenerator + itkCannyEdgesDistanceFeatureGenerator + itkCannyEdgesFeatureGenerator + itkConfidenceConnectedSegmentationModule + itkConnectedreoldSegmentationModule + itkDescoteauxeetnessFeatureGenerator + itkDescoteauxeetnessImageFilter + itkFastMaringAndGeodesicActiveContourLevelSetSegmentationModule + itkFastMaringAndapeDetectionLevelSetSegmentationModule + itkFastMaringSegmentationModule + itkFeatureAggregator + itkFeatureGenerator + itkFrangiTubularnessFeatureGenerator + itkFrangiTubularnessImageFilter + itkGeodesicActiveContourLevelSetSegmentationModule + itkGradientMagnitudeSigmoidFeatureGenerator + itkGrayscaleImageSegmentationVolumeEstimator + itkIsotropicResampler + itkIsotropicResamplerImageFilter + itkLandmarksReader + itkLesionSegmentationImageFilter8 + itkLesionSegmentationMeod + itkLocalStructureImageFilter + itkLungWallFeatureGenerator + itkMaximumFeatureAggregator + itkMinimumFeatureAggregator + itkMorologicalOpenningFeatureGenerator + itkRegionCompetitionImageFilter + itkRegionGrowingSegmentationModule + itkSatoLocalStructureFeatureGenerator + itkSatoVesselnessFeatureGenerator + itkSatoVesselnessSigmoidFeatureGenerator + itkSegmentationModule + itkSegmentationVolumeEstimator + itkapeDetectionLevelSetSegmentationModule + itkSigmoidFeatureGenerator + itkSingleaseLevelSetSegmentationModule + itkVesselEancingDiffusion3DImageFilter + itkVotingBinaroleFillFloodingImageFilter + itkWeitedSumFeatureAggregator) + +itk_auto_load_submodules() +itk_end_wrap_module() diff --git a/wrapping/itkBinaryThresholdFeatureGenerator.wrap b/wrapping/itkBinaryThresholdFeatureGenerator.wrap new file mode 100644 index 0000000..5837719 --- /dev/null +++ b/wrapping/itkBinaryThresholdFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::BinaryThresholdFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkCannyEdgeDetectionRecursiveGaussianImageFilter.wrap b/wrapping/itkCannyEdgeDetectionRecursiveGaussianImageFilter.wrap new file mode 100644 index 0000000..299a54b --- /dev/null +++ b/wrapping/itkCannyEdgeDetectionRecursiveGaussianImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::CannyEdgeDetectionRecursiveGaussianImageFilter" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkCannyEdgesDistanceAdvectionFieldFeatureGenerator.wrap b/wrapping/itkCannyEdgesDistanceAdvectionFieldFeatureGenerator.wrap new file mode 100644 index 0000000..7fbdcaf --- /dev/null +++ b/wrapping/itkCannyEdgesDistanceAdvectionFieldFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::CannyEdgesDistanceAdvectionFieldFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkCannyEdgesDistanceFeatureGenerator.wrap b/wrapping/itkCannyEdgesDistanceFeatureGenerator.wrap new file mode 100644 index 0000000..81c2c8b --- /dev/null +++ b/wrapping/itkCannyEdgesDistanceFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::CannyEdgesDistanceFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkCannyEdgesFeatureGenerator.wrap b/wrapping/itkCannyEdgesFeatureGenerator.wrap new file mode 100644 index 0000000..5afdf95 --- /dev/null +++ b/wrapping/itkCannyEdgesFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::CannyEdgesFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkConfidenceConnectedSegmentationModule.wrap b/wrapping/itkConfidenceConnectedSegmentationModule.wrap new file mode 100644 index 0000000..01f3c83 --- /dev/null +++ b/wrapping/itkConfidenceConnectedSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::ConfidenceConnectedSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkConnectedThresholdSegmentationModule.wrap b/wrapping/itkConnectedThresholdSegmentationModule.wrap new file mode 100644 index 0000000..facbeae --- /dev/null +++ b/wrapping/itkConnectedThresholdSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::ConnectedThresholdSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkDescoteauxSheetnessFeatureGenerator.wrap b/wrapping/itkDescoteauxSheetnessFeatureGenerator.wrap new file mode 100644 index 0000000..a062ae7 --- /dev/null +++ b/wrapping/itkDescoteauxSheetnessFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::DescoteauxSheetnessFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkDescoteauxSheetnessImageFilter.wrap b/wrapping/itkDescoteauxSheetnessImageFilter.wrap new file mode 100644 index 0000000..ced7428 --- /dev/null +++ b/wrapping/itkDescoteauxSheetnessImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::DescoteauxSheetnessImageFilter" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkFastMarchingAndGeodesicActiveContourLevelSetSegmentationModule.wrap b/wrapping/itkFastMarchingAndGeodesicActiveContourLevelSetSegmentationModule.wrap new file mode 100644 index 0000000..d5dab80 --- /dev/null +++ b/wrapping/itkFastMarchingAndGeodesicActiveContourLevelSetSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::FastMarchingAndGeodesicActiveContourLevelSetSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkFastMarchingAndShapeDetectionLevelSetSegmentationModule.wrap b/wrapping/itkFastMarchingAndShapeDetectionLevelSetSegmentationModule.wrap new file mode 100644 index 0000000..38644a9 --- /dev/null +++ b/wrapping/itkFastMarchingAndShapeDetectionLevelSetSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::FastMarchingAndShapeDetectionLevelSetSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkFastMarchingSegmentationModule.wrap b/wrapping/itkFastMarchingSegmentationModule.wrap new file mode 100644 index 0000000..8fd605b --- /dev/null +++ b/wrapping/itkFastMarchingSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::FastMarchingSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkFeatureAggregator.wrap b/wrapping/itkFeatureAggregator.wrap new file mode 100644 index 0000000..17b0162 --- /dev/null +++ b/wrapping/itkFeatureAggregator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::FeatureAggregator" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkFeatureGenerator.wrap b/wrapping/itkFeatureGenerator.wrap new file mode 100644 index 0000000..b3c029c --- /dev/null +++ b/wrapping/itkFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::FeatureGenerator" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkFrangiTubularnessFeatureGenerator.wrap b/wrapping/itkFrangiTubularnessFeatureGenerator.wrap new file mode 100644 index 0000000..58c40ee --- /dev/null +++ b/wrapping/itkFrangiTubularnessFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::FrangiTubularnessFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkFrangiTubularnessImageFilter.wrap b/wrapping/itkFrangiTubularnessImageFilter.wrap new file mode 100644 index 0000000..392b4d6 --- /dev/null +++ b/wrapping/itkFrangiTubularnessImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::FrangiTubularnessImageFilter" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkGeodesicActiveContourLevelSetSegmentationModule.wrap b/wrapping/itkGeodesicActiveContourLevelSetSegmentationModule.wrap new file mode 100644 index 0000000..a1aff13 --- /dev/null +++ b/wrapping/itkGeodesicActiveContourLevelSetSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::GeodesicActiveContourLevelSetSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkGradientMagnitudeSigmoidFeatureGenerator.wrap b/wrapping/itkGradientMagnitudeSigmoidFeatureGenerator.wrap new file mode 100644 index 0000000..76d492f --- /dev/null +++ b/wrapping/itkGradientMagnitudeSigmoidFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::GradientMagnitudeSigmoidFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkGrayscaleImageSegmentationVolumeEstimator.wrap b/wrapping/itkGrayscaleImageSegmentationVolumeEstimator.wrap new file mode 100644 index 0000000..9a37b1d --- /dev/null +++ b/wrapping/itkGrayscaleImageSegmentationVolumeEstimator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::GrayscaleImageSegmentationVolumeEstimator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkIsotropicResampler.wrap b/wrapping/itkIsotropicResampler.wrap new file mode 100644 index 0000000..ed8bbfb --- /dev/null +++ b/wrapping/itkIsotropicResampler.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::IsotropicResampler" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkIsotropicResamplerImageFilter.wrap b/wrapping/itkIsotropicResamplerImageFilter.wrap new file mode 100644 index 0000000..b296a0d --- /dev/null +++ b/wrapping/itkIsotropicResamplerImageFilter.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::IsotropicResamplerImageFilter" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkLandmarksReader.wrap b/wrapping/itkLandmarksReader.wrap new file mode 100644 index 0000000..d92d45c --- /dev/null +++ b/wrapping/itkLandmarksReader.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::LandmarksReader" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkLesionSegmentationImageFilter8.wrap b/wrapping/itkLesionSegmentationImageFilter8.wrap new file mode 100644 index 0000000..b473592 --- /dev/null +++ b/wrapping/itkLesionSegmentationImageFilter8.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::LesionSegmentationImageFilter8" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkLesionSegmentationMethod.wrap b/wrapping/itkLesionSegmentationMethod.wrap new file mode 100644 index 0000000..21ee8ff --- /dev/null +++ b/wrapping/itkLesionSegmentationMethod.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::LesionSegmentationMethod" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkLocalStructureImageFilter.wrap b/wrapping/itkLocalStructureImageFilter.wrap new file mode 100644 index 0000000..cd29f9c --- /dev/null +++ b/wrapping/itkLocalStructureImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::LocalStructureImageFilter" POINTER_WITH_SUPERCLASS) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2) +itk_end_wrap_class() diff --git a/wrapping/itkLungWallFeatureGenerator.wrap b/wrapping/itkLungWallFeatureGenerator.wrap new file mode 100644 index 0000000..ef3616e --- /dev/null +++ b/wrapping/itkLungWallFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::LungWallFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkMaximumFeatureAggregator.wrap b/wrapping/itkMaximumFeatureAggregator.wrap new file mode 100644 index 0000000..6512094 --- /dev/null +++ b/wrapping/itkMaximumFeatureAggregator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::MaximumFeatureAggregator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkMinimumFeatureAggregator.wrap b/wrapping/itkMinimumFeatureAggregator.wrap new file mode 100644 index 0000000..8158edc --- /dev/null +++ b/wrapping/itkMinimumFeatureAggregator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::MinimumFeatureAggregator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkMorphologicalOpeningFeatureGenerator b/wrapping/itkMorphologicalOpeningFeatureGenerator new file mode 100644 index 0000000..5f638b3 --- /dev/null +++ b/wrapping/itkMorphologicalOpeningFeatureGenerator @@ -0,0 +1,5 @@ +itk_wrap_class("itk::MorphologicalOpeningFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkRegionCompetitionImageFilter.wrap b/wrapping/itkRegionCompetitionImageFilter.wrap new file mode 100644 index 0000000..551aba7 --- /dev/null +++ b/wrapping/itkRegionCompetitionImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::RegionCompetitionImageFilter" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkRegionGrowingSegmentationModule.wrap b/wrapping/itkRegionGrowingSegmentationModule.wrap new file mode 100644 index 0000000..9c820dc --- /dev/null +++ b/wrapping/itkRegionGrowingSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::RegionGrowingSegmentationModule" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSatoLocalStructureFeatureGenerator.wrap b/wrapping/itkSatoLocalStructureFeatureGenerator.wrap new file mode 100644 index 0000000..43cb157 --- /dev/null +++ b/wrapping/itkSatoLocalStructureFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SatoLocalStructureFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSatoVesselnessFeatureGenerator.wrap b/wrapping/itkSatoVesselnessFeatureGenerator.wrap new file mode 100644 index 0000000..fcf1945 --- /dev/null +++ b/wrapping/itkSatoVesselnessFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SatoVesselnessSigmoidFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSatoVesselnessSigmoidFeatureGenerator.wrap b/wrapping/itkSatoVesselnessSigmoidFeatureGenerator.wrap new file mode 100644 index 0000000..fcf1945 --- /dev/null +++ b/wrapping/itkSatoVesselnessSigmoidFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SatoVesselnessSigmoidFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSegmentationModule.wrap b/wrapping/itkSegmentationModule.wrap new file mode 100644 index 0000000..b813170 --- /dev/null +++ b/wrapping/itkSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SegmentationModule" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSegmentationVolumeEstimator.wrap b/wrapping/itkSegmentationVolumeEstimator.wrap new file mode 100644 index 0000000..5a25591 --- /dev/null +++ b/wrapping/itkSegmentationVolumeEstimator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SegmentationVolumeEstimator" POINTER_WITH_SUPERCLASS) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkShapeDetectionLevelSetSegmentationModule.wrap b/wrapping/itkShapeDetectionLevelSetSegmentationModule.wrap new file mode 100644 index 0000000..c0743dd --- /dev/null +++ b/wrapping/itkShapeDetectionLevelSetSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::ShapeDetectionLevelSetSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSigmoidFeatureGenerator.wrap b/wrapping/itkSigmoidFeatureGenerator.wrap new file mode 100644 index 0000000..4462755 --- /dev/null +++ b/wrapping/itkSigmoidFeatureGenerator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SigmoidFeatureGenerator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkSinglePhaseLevelSetSegmentationModule.wrap b/wrapping/itkSinglePhaseLevelSetSegmentationModule.wrap new file mode 100644 index 0000000..d821aad --- /dev/null +++ b/wrapping/itkSinglePhaseLevelSetSegmentationModule.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::SinglePhaseLevelSetSegmentationModule" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class() diff --git a/wrapping/itkVesselEnhancingDiffusion3DImageFilter.wrap b/wrapping/itkVesselEnhancingDiffusion3DImageFilter.wrap new file mode 100644 index 0000000..6a949f5 --- /dev/null +++ b/wrapping/itkVesselEnhancingDiffusion3DImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::VesselEnhancingDiffusion3DImageFilter" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkVotingBinaryHoleFillFloodingImageFilter.wrap b/wrapping/itkVotingBinaryHoleFillFloodingImageFilter.wrap new file mode 100644 index 0000000..32f520b --- /dev/null +++ b/wrapping/itkVotingBinaryHoleFillFloodingImageFilter.wrap @@ -0,0 +1,3 @@ +itk_wrap_class("itk::VotingBinaryHoleFillFloodingImageFilter" POINTER) + itk_wrap_image_filter("${WRAP_ITK_SCALAR}" 2+) +itk_end_wrap_class() diff --git a/wrapping/itkWeightedSumFeatureAggregator.wrap b/wrapping/itkWeightedSumFeatureAggregator.wrap new file mode 100644 index 0000000..40731bc --- /dev/null +++ b/wrapping/itkWeightedSumFeatureAggregator.wrap @@ -0,0 +1,5 @@ +itk_wrap_class("itk::WeightedSumFeatureAggregator" POINTER) + foreach(d ${ITK_WRAP_IMAGE_DIMS}) + itk_wrap_template(${d} ${d}) + endforeach() +itk_end_wrap_class()