1ITK Release 4.13 2================ 3 4The Insight Segmentation and Registration Toolkit (ITK), is an open-source, cross-platform library for multidimensional image analysis. On behalf of the Insight Toolkit community, we are proud to announce that **ITK 4.13.0** has been released! 5 6Links to the `Sourceforge.net` tarballs can be found on the download page: 7 8Outline 9---------- 10 111. Introduction 122. New Features 133. ITK Changelog 144. ITK Sphinx Examples Changelog 155. ITK Software Guide Changelog 16 17Introduction 18--------------- 19 20Developed by an international community, ITK collects best-of-breed algorithms for registering, segmenting, analyzing, and quantifying n-dimensional imaging data. The high-quality library facilitates reproducible research, provides a software resource for teaching image analysis, and offers a platform for commercial product development. 21 22Here are a few selected highlights for this release: 23 24 - ITK is on PyPI: install ITK's Python wrapping with: `pip install itk` 25 - IsotropicWavelets remote module: isotropic and steerable wavelets in the frequency domain 26 - Improvement of the Image IO, including full 64 bit pixel support 27 - ITK Python interface improvements: use ITK in a procedural way 28 - Improved image and transform IO factory registration 29 - ITK's thread pool refactored for improved performance 30 - Improved ITK test driver to compare images spacing, origin, size and direction 31 32 33This release brings multiple exciting new developments for ITK's Python wrapping. 34 35**Binary Python Packages** 36Binary Python wheels are available for Linux, macOS, and Windows, for Python 2.7 and the recent Python 3.X. The wheels have been published on PyPI, the Python package index. These binary wheels are built to be compatible with Python distributions from [Python.org](https://www.python.org/), system package managers like apt and Homebrew, and Anaconda. (official announcement [here](https://blog.kitware.com/itk-is-on-pypi-pip-install-itk-is-here)). This means that it has never been easier to install and start using ITK: one simple `pip install itk` command, and a few seconds later it is possible to start interactively processing images. 37 38**External Module Python Packages** 39Furthermore, Python packages for externally developed ITK modules can now be automatically generated and uploaded to PyPI. The module Python package is created by free GitHub continuous integration services. Like the main ITK packages, these packages embed documentation from Doxygen comments into Python docstrings. See https://blog.kitware.com/python-packages-for-itk-modules for details on how to get started. A number of novel ITK module Python packages have already been created this way, including 40 41 - itk-bonemorphometry 42 - itk-polartransform 43 - itk-texturefeatures 44 - itk-anisotropicdiffusionlbr 45 - itk-ultrasound 46 - itk-morphologicalcontourinterpolation 47 - itk-cuberille 48 - itk-ringartifact 49 50**IsotropicWavelets Remote Module** 51A Python package is available for a powerful new remote module, IsotropicWavelets. This module implements a multiresolution (MRA) analysis framework using isotropic and steerable wavelets in the frequency domain. This framework provides the backbone for state of the art filters for denoising, feature detection or phase analysis in N-dimensions. Since it is wrapped in Python, it is as easy to use as ITK: Install the module with `pip install itk-isotropicwavelets`. Write a Python script or start an interactive Python environment, and call `import itk`. All the functionality of IsotropicWavelets will be available. 52 53**Procedural Filter Interface for Rapid Prototyping** 54ITK v4.13.0 also incorporates an API improvement throughout the entire toolkit to facilitate rapid prototyping: ITK Python filters are now callables, so ITK can be used in a procedural way. It is possible to run filters without the need to declare a filter object first, and without the need to explicitly call ‘Update()’ on a pipeline. 55 56`itk.imwrite(itk.MedianImageFilter(itk.imread(‘my_image.png’), Radius=4), ‘my_output.png’)` 57 58This one-liner will read an image, filter it with the MedianImageFilter with a radius of 4 voxels, and save the result in a different file. 59 60**Image IO Improvement, including Full 64 bit Pixel Support** 61Several improvements have been made in the Image IO in this major release: 64 bit images are now consistently supported by all Image IOs. Additionally, MINC image IO is now enabled by default, Bruker IO improved and enabled by default, and DICOM support via DCMTK was greatly improved (and supported on MS Windows). See below “Improved Factory Registration” for the last improvement of Image IO in this release. 62 63**GoogleTest for Writing Tests** 64An ITK module can be tested with GoogleTest library, using the CMake funtion `CreateGoogleTestDriver()`, in addition to the classic ITKTestDriver. This function will add the GTest dependency to your test. GoogleTest makes it easy to write a lot of different tests to verify that your code works. Examples of tests using this framework can be found in ITK in `Modules/Filtering/ImageGrid/test/itkSliceImageFilterTest.cxx`, `/Modules/Filtering/ImageIntensity/test/itkArithmeticOpsFunctorsTest.cxx`, and several other files. 65 66**Improved Factory Registration** 67Each module (including remote modules) can list the factories and formats they support. This information is used to automatically register all formats supported by modules loaded during configuration. When loading ITK with the CMake command `find_package()` and loading a limited number of ITK components, it is now possible to load all modules corresponding to a factory, e.g. ImageIO, TransformIO. To load all components of a factory, add the component `ITK<factory>` in the list of requested components. Here is an example that finds ITK with the ITKCommon module and all the available image and transform IO modules: 68 69 `find_package(ITK COMPONENTS ITKCommon ITKImageIO ITKTransformIO REQUIRED)` 70 71**ITK's Thread Pool Refactored for Improved Performance** 72ITK's thread pool has been refactored for improved performance. To test the thread pool, set the environment variable: 73 74 `ITK_USE_THREADPOOL=1;` 75 76Or, call the static method 77 78 `itk::MultiThreader::SetGlobalDefaultUseThreadPool(true);` 79 80at the start of your application. The thread pool is still experimental, and its implementation and interface will be improved and modified in the near future. 81 82**Improved ITK test driver to compare images spacing, origin, size and direction** 83In part to support improved testing and support for DICOM image metadata, the ITK test driver now checks image spacing, origin, and direction when making baseline image comparisons. If your project uses the ITK test driver, new image baselines with correct metadata information may be required. Alternatively, pass the `--ignoreInputInformation` flag to the test driver. 84 85<br> 86 87**Congratulations** to the **26** contributors to this release. We would especially like to recognize the **new contributors**: Laura Pascal, Beatriz Paniagua, Rene-Paul Debroize, Edwin Bennink, David Kügler, Adrien Bailly, and Steve Pieper. 88 89 90The next feature release, scheduled for June 2018, will be ITK 5.0. This release will introduce thread pools by default with an optional Intel Threading Building Blocks (TBB) backend, require C++11 compiler support, and require a newer version of CMake. 91 92 93New Features 94------------------ 95* Wrapping Improvements 96 - Binary Python packages are now available for Linux, macOS, and Windows. Install with: 97``` 98 pip install --upgrade pip 99 pip install itk 100``` 101 102 - ITK modules developed on GitHub can generate their own Python package with freely available continuous integration services. 103 - [https://blog.kitware.com/python-packages-for-itk-modules](https://blog.kitware.com/python-packages-for-itk-modules) 104 - Example module Python packages now pip installable from PyPI: `itk-bonemorphometry`, `itk-polartransform`, `itk-texturefeatures`, `itk-anisotropicdiffusionlbr`, `itk-ultrasound`, `itk-morphologicalcontourinterpolation`, `itk-cuberille`, `itk-isotropicwavelets`, `itk-ringartifact` 105 - Add wrapping for several classes: `MultiResolutionIterationEvent`, `RegionOfInterestFilter` for `VectorImage`'s, `FloatingPointExceptions`, `CorrelationMetricv4`, `DemonsMetricv4`, `JointHistogramMIMetricv4`, `ITKIOMesh`. 106 - Enable `__call__()` function in Python for `itkTemplate` objects to make ITK more Pythonic. A developer can run instantiate, run a filter, and get the output, in one single command. 107 - Python docstrings are generated from the C++ doxygen documentation and directly integrated in the Python modules. 108 - The `unsigned short` pixel type is now supported in ITK Python packages. 109 - Bruker IO wrapping 110 111* New Remote Modules 112 - SimpleITKFilters 113 - The filters in this module may be wrappers of composites ITK filters, adapters of existing ITK filters or alternative implementations designed for SimpleITK's requirements. 114 - [http://github.com/SimpleITK/ITKSimpleITKFilters](http://github.com/SimpleITK/ITKSimpleITKFilters) 115 - TextureFeatures 116 - Filters to estimate texture feature maps from N-dimensional grayscale images. 117 - [http://hdl.handle.net/10380/3574](http://hdl.handle.net/10380/3574) 118 - IsotropicWavelets 119 - An ITK-based implementation of steerable isotropic wavelet transforms for multiscale phase analysis. 120 - [http://hdl.handle.net/10380/3558](http://hdl.handle.net/10380/3558) 121 122* Core Improvements 123 - GoogleTest available for testing in ITK 124 - Support VCPKG, Microsoft's vcpkg C++ package management system for Visual Studio 125 - Refactor ITK's ThreadPool implementation for performance 126 - Addition of type long long and unsigned long long for images 127 - Add options to `itkTestDriver` and `itkTestingComparisonImageFilter` to compare image size, origin, spacing, and direction 128 - Add `itk_module_examples()` macro to simplify the creation of independent examples in remote modules 129 - Improve factory registration mechanism (see highlighted features) 130 - ITK Python modules now share the list of factories that are registered 131 - Automatic enabling of the `-fPIC` flag for external modules 132 - Detect the presence of `feenableexcept` to compile on Alpine Linux 133 - Update GDCM import script for changes in upstream content 134 - CMake minimum required version is now 2.8.12 135 136* Filtering Improvements 137 - Improve `Not` functor and filter to follow other logic functors 138 - Separate functors from filters in header by operator groups 139 - Move rank filters out of review 140 - Explicitly warn and deprecate negative pixel spacing 141 - Add `SliceImageFilter` 142 - Move advance Demons registration filters out of review 143 - Add `ShapeLabelObject::GetRegion` method 144 - Many improvements in `HoughTransform2DCirclesImageFilter` 145 146* IO Improvements 147 - Enable MINC IO by default 148 - PNG IO was crashing instead of returning false when it couldn’t read image 149 - Several DCMTK improvements: build DMCTK on Windows, replace ICONV with ICU in DCMTK dependencies, support color images (RGB/RGBA) 150 - Use double floating point API for MetaImage: the text representation is now closer to the 151DICOM Image Orientation (Patient) or Image Position (Patient) attribute and will allow easier conversion from one representation to the other. 152 - Fixed `<nifti1_io.h>` leak into user code 153 - Updated the Bruker2DSeq reader to ParaVision 6.0 154 - ITKIOBruker is now its own module, migrated out of ITKReview 155 156* Documentation Improvements 157 - Improvement of documentation Markdown files throughout the repository 158 - Update old file headers/copyright notices. 159 - Improve source code coding style 160 - Enable offline Doxygen support 161 - Expose `RayCastInterpolateImageFunction` members in Doxygen 162 - Updated documentation for `LabelStatisticsImageFilter::GetBoundingBox`. 163 - Document behaviors of `ChangeLabelLabelMapFilter` 164 - New content in the [ITK Software Guide](https://itk.org/ItkSoftwareGuide.pdf) on 165 - Cross compilation 166 - An entire new Coding Style Guide section 167 - Python usage 168 - Build configuration 169 170* Remote Module Updates 171 - AnisotropicDiffusionLBR (08.31.2017) 172 - Update MorphologicalContourInterpolation (09.22.2017) 173 174* Third Party Library Updates 175 - Update pygccxml version (v1.9.0) 176 - Update libPNG to track upstream libpng16 branch 177 - Update version of DCMTK to 3.6.1_20170529 178 - Update CastXML to support GCC 7 (11.06.2017) 179 - Update MetaIO (12.04.2017) 180 - Adding libLBFGS third party library 181 - Update MINC (09.14.2017) 182 - Update VNL (10.05.2017) 183 184* *Lots* of important bug fixes 185 186* And much more! See details in the log below. 187 188 189Changes from v4.12.0 to v4.13.0 190------------------------------------------------ 191 192Adrien Bailly (1) @adrien.bailly : 193 ENH: add wrapping for MultiResolutionIterationEvent and other missing event 194 195Beatriz Paniagua (2) @bpaniagua : 196 ENH: Updating pygccxml version 197 ENH: Updating libPNG to track upstream libpng16 branch 198 199Brad King (2) @brad.king : 200 ENH: Port GDCM update script to update-third-party.bash 201 ENH: Update GDCM import script for changes in upstream content 202 203Bradley Lowekamp (93) @blowekamp : 204 DOC: fix spelling transfrom->transform 205 ENH: Improve Not functor and filter to follow other logic functors 206 ENH: Separate functors from filters in header by operator groups 207 DOC: Fix spelling mistakes from SimpleITK JSON, from spellintian 208 ENH: making available GoogleTest for testing in ITK 209 COMP: Address missing ITK_TEMPLATE_EXPORT definition 210 COMP: Use single line for string argument, by-pass multi-line issues 211 COMP: Revert to CMake 2 compatible line comment 212 ENH: Move rank filters out of review 213 BUG: Use const for pipeline inputs and state functions 214 ENH: Explicitly warn and deprecate negative pixel spacing. 215 BUG: Modify google test to define _VARIADIC_MAX=10 216 COMP: Fix using system GoogleTest with a compiled system library 217 ENH: Add SliceImageFilter 218 COMP: Use itk::Math::abs over vnl_math_abs 219 ENH: Add GetProbe method to collectors base. 220 BUG: Add missing exports for GTest::* targets 221 BUG: Fix computation of central moments for shape label map 222 ENH: Adding operator functors from SimpleITK 223 ENH: Choose efficient central moment computation for run 224 BUG: Add missing OrientedBoundingBox option 225 DOC: recommend using separate instances 226 BUG: Manually set seed for ParticleSwarmOptimzerTest 227 BUG: Fix computation of oriented bounding box 228 BUG: shape label object elongation incorrectly zero 229 ENH: Add GTest utilities for ITK 230 ENH: adding explicit testing of computed label shape attributes 231 BUG: Propagate make program to KWStyle ExternalProject 232 BUG: Error only when unknown module is enabled. 233 DOC: Document behaviors of ChangeLabelLabelMapFilter 234 BUG: Document and assert improper usage of transform methods. 235 COMP: Enable hidden visibility property with GoogleTest static libraries 236 DOC: Doxygen namespace tag must be full namespace 237 BUG: Fix computation for Jacobian local vector 238 BUG: Cast to PrintType for MaskLabel variable printing 239 ENH: Update FixedPointInverseDisplacementField remote module 240 BUG: Error only when unknown module is enabled. 241 BUG: Fix computation of central moments for shape label map 242 BUG: shape label object elongation incorrectly zero 243 BUG: Fix computation of oriented bounding box 244 BUG: Add missing OrientedBoundingBox option 245 ENH: Update FixedPointInverseDisplacementField remote module 246 ENH: Only remove hidden visibility for C file with CMake<3 247 BUG: Print missing Seeds parameter and values used for Upper/Lower 248 ENH: Remove unneeded m_Upper and m_Lower ivars 249 ENH: Prefer raw pointers for pipelined owned objects 250 ENH: Update to use CircleCI 2.0 251 ENH: Enable MINC IO by default 252 ENH: Move advance Demons registration filters out of review 253 BUG: Fix CircleCI command to upload test results 254 ENH: Test SliceBySlice with non-zero index 255 BUG: Use same origin for internal image as input image 256 BUG: Remove duplicate code from local commit 257 COMP: Remove MINC library level exports 258 ENH: Add ProcessObject::AddOptionalInputName and more named inputs 259 ENH: Make more use of AddOptionalInputName 260 BUG: Use input macros for const correct pipeline inputs 261 ENH: Remove input name when renamed and add tests 262 BUG: Correct OBB names in GetAttributeFromName 263 ENH: Add ShapeLabelObject::GetRegion method 264 ENH: Hide MINC data in MINCIImageIO interface 265 BUG: Remove newly added warning in ProcessObject AddRequiredInput 266 BUG: Apply constant function specifier 267 BUG: Fix marking of required inputs for GPU PDE registration 268 BUG: Add missing getter method for PDE InitialDisplacementField 269 ENH: Use Input macros for set/get GPU PDE inputs 270 ENH: Move private GE format headers to src 271 ENH: CircleCI use ccache and cache external data 272 ENH: Extract reusable code into a copy image information functor 273 ENH: Change Cast parent class to InPlaceImageFilter 274 BUG: Add search paths for GoogleTest as source code on system 275 BUG: Update BinaryImageToLabelMapFilter::m_NumberOfLabels 276 COMP: Remove shadowing typedef 277 ENH: Updating remote module TextureFeatures to 3.0.0 278 COMP: Use integer suffix for long long types 279 BUG: Disable checking of OBB origin 280 PERF: Use initialized global variable for default number of threads 281 ENH: Add remote mote SimpleITKFilters 282 ENH: Add type for MultiThreader used by the ProcessObject 283 BUG: Don't use void pointer 284 BUG: Fix LBFGS2 iteration count and iterface 285 BUG: Use AutoPtr for initialization based resource acquisition 286 BUG: Fix factory registration during static initialization 287 BUG: Fix const correctness of GetDisplacementField, use named input 288 STYLE: Use LineSearch conventions 289 BUG: Relax timeout to 60 seconds for itkSimpleFastMutexLockTest 290 COMP: Mark itkTimeVaryingBSplineVelocityFieldImageRegistrationTest long 291 COMP: Address linking error using operator<< 292 COMP: Must define target before adding compile definitions 293 COMP: Issue a CMake warning if ITKV3_COMPATIBILITY 294 COMP: Enable CMP0063, support setting visibility properties 295 COMP: Enable CMP0063, support setting visibility properties 296 COMP: Enable CMP0063, support setting visibility properties 297 298David Kügler (1) @david.kuegler : 299 BUG: better support for OBJ mesh format 300 301Dženan Zukić (21) @dzenanz : 302 ENH: adding an example and improving tests 303 ENH: support VCPKG 304 ENH: rewriting ThreadPool and enabling it by default 305 ENH: docs and compiler fix for ThreadPool, improvements of itkBarrierTest 306 ENH: turning off thread pool by default for now 307 STYLE: minor fix in debug mode and clearer code intent by using macros 308 STYLE: warn users of the DeformableSimplexMesh3DFilter's limitations 309 ENH: Addition of type long long and unsigned long long for images 310 STYLE: VTK Mesh IO code simplification 311 COMP: fixing warnings 312 BUG: a call to SetGlobalDefaultNumberOfThreads was not respected 313 BUG: LONGLONG was not handled by DCMTKImageIO 314 BUG: PNG IO: return false instead of crashing in CanReadFile 315 COMP: fix a warning 316 BUG: ThreadPool hangs on Windows when ITK is compiled as DLLs 317 BUG: tests writing to the same file randomly fail during parallel invocation 318 COMP: fixing 2 compile errors on some compilers 319 ENH: adding JSON format report to resource probe 320 BUG: NIFTI crashing when requested region is set 321 BUG: colliding file names caused spurious test failures 322 BUG: fix two rename mistakes introduced in previous patch 323 324Edwin Bennink (1) @ebennink : 325 BUG: Fixed cylinder bbox, fixed and enhanced IsInside func 326 327Floris Berendsen (2): 328 COMP: add symbol name mangling for niftilib in ITK 329 COMP: add symbol name mangling for niftilib in ITK 330 331Francois Budin (54) @fbudin : 332 ENH: Bump ITK version to 4.13.0. 333 BUG: Update external data content links 334 ENH: Add cleanup option to content synchronization script 335 BUG: Used ITK_HAVE_FEENABLEEXCEPT instead of ITK_HAS_FEENABLEEXCEPT 336 BUG: Used ITK_HAVE_FEENABLEEXCEPT instead of ITK_HAS_FEENABLEEXCEPT 337 Revert "Merge branch 'feenableexcept-musl-for-release' into release" 338 Merge branch 'upstream-metaio' into update_metaIO 339 ENH: Bump CMakeLists.txt version to 4.12.1. 340 COMP: Remove -fvisibility-inlines-hidden warning with CMake 2.8.12 341 BUG: Remove VNL view from array functions and rename wrong variable 342 BUG: itkSimilarity2DTransform was not reporting singular matrices 343 ENH: Add test to verify ITK-3553 fixes 344 BUG: itkTestingComparisonImageFilter should derive from itkImageToImageFilter 345 BUG: Update tests to use ImageToImage compare image filter 346 ENH: Add options to itkTestDriver and itkTestingComparisonImageFilter 347 ENH: Adds MINC image IO wrapping 348 ENH: Replace ICONV with ICU to compile DCMTK 349 DOC: Document that workaround MSVC 2017 optimization bug has been corrected 350 BUG: sha512 file must exist before complaining that it hasn't been updated 351 BUG: Missing files for DCMTK ImageOrientation test 352 BUG: itkgdcmopenjp2 was not exported in the build tree in GDCM 353 BUG: Duplicate SetInput()/GetInput() in itkTestingComparisonImageFilter 354 BUG: ICU_ARGS CMake variable should be declared CACHE 355 BUG: Typo in CMake variable name 356 BUG: Build DMCTK on Windows 357 BUG: Support color images (RGB/RGBA) with DCMTK 358 ENH: Add test for colored images loaded with DCMTK 359 BUG: ICU is always compiled statically 360 ENH: Update DCMTK build instructions for Windows 361 ENH: Adds itk_module_examples() macro 362 COMP: Bump CMake required version to 2.8.12 363 ENH: Simplify itk-module-init.cmake for DCMTK 364 BUG: Inconsistent image information between result and baseline 365 BUG: Python docstrings were not generated anymore 366 ENH: Add __call__() function in Python itkTemplate objects 367 BUG: DMCTK configuration with ICU on Windows was only correct for VS2017 368 BUG: Remove man page generation that is not necessary anymore 369 ENH: Improving factory registration 370 ENH: Adding factory components 371 ENH: Update remote modules using FACTORY_NAMES 372 BUG: Add previously removed function __getattr__() in `itkTemplate.py` 373 BUG: Synchronize factories across modules in Python 374 ENH: Allow RAW itk-module as shared library 375 BUG: ITK_WRAP_DOC should not be saved in ITKConfig.cmake 376 BUG: Remove unicode characters that stop python docstring generation 377 BUG: `doxy2swig.py` failed with Python3 378 BUG: Allow compilation of VNL with MSVC<1600 379 BUG: \default is not a doxygen keyword 380 BUG: Better control of GDCM symbols with CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 381 ENH: github comparison instead of shortlog in `UpdateThirdPartyFromUpstream.sh` 382 BUG: DCMTK CMakeLists.txt detects MSVC versions in [1910,1919] as MSVC2017 383 BUG: itkObjectFactoryBase was making ITK initialization crash 384 BUG: itkSpatialObject.cxx was not respecting ITK_FUTURE_LEGACY_REMOVE 385 BUG: Create IO Meta modules at module loading time 386 387GCC-XML Upstream (1): 388 ENH: pygccxml v1.9.0 (reduced) 389 390GDCM Upstream (4): 391 GDCM 2017-09-15 (87e3c363) 392 GDCM 2017-10-13 (46919364) 393 GDCM 2017-11-09 (af81d444) 394 GDCM 2017-11-23 (4c51c343) 395 396Google double-conversion Maintainers (1): 397 ENH: Google double-conversion (reduced) 398 399GoogleTest Upstream (2): 400 googletest 2016-07-14 (a3ac2d7f) 401 GoogleTest 2017-12-11 (0fe96607) 402 403Hans Johnson (7) @hjmjohnson : 404 BUG: vnl_fft_1d lacks sufficient numerical stability 405 COMP: Clang compiler regression 406 ENH: Synchronized with cmake version of file 407 BUG: Respect ITK_FUTURE_LEGACY_REMOVE 408 COMP: Missing ITK_OVERRIDE for BinaryPruningIMageFilter 409 BUG: Fix non-windows cmake configuration regression 410 COMP: Fix VariationalRegistration for future const GetMacro support 411 412Jean-Baptiste VIMORT (2) @jbvimort : 413 ENH: Automatic enabling of the -fPIC flag for external modules 414 ENH: Supression of GDCM's linking to CoreFoundation 415 416Jean-Christophe Fillion-Robin (6) @jcfr : 417 ENH: Support installing each module python wrapping independently 418 COMP: Update KWsys to set MACOSX_RPATH property based on CMAKE_MACOSX_RPATH 419 COMP: Update MINC to set MACOSX_RPATH property based on CMAKE_MACOSX_RPATH 420 COMP: ITKModuleExternal: Reset targets file 421 BUG: Fix hook clone 422 COMP: UseITK: Fix configure error due to different subproject requirements 423 424Jon Haitz Legarreta Gorroño (37) @jhlegarreta : 425 ENH: Improve coverage for v3 compatibility image arithm filters. 426 DOC: Fix typo in 'exception'. 427 STYLE: Improve the itk::FastMarchingImageFilterBase class style. 428 STYLE: Improve itkApproximageSignedDistanceMapImageFilterTest style. 429 ENH: Check for input/output objects with an assertion. 430 BUG: Fix const casting compiler errors. 431 DOC: Update old file headers/copyright notices. 432 STYLE: Improve the itkSmoothingRecursiveGaussiaImageFilter style. 433 ENH: Improve coverage for itkSmoothingRecursiveGaussianImageFilter. 434 BUG: Fix links to NOTICE and LICENSE files in `README.md`. 435 STYLE: Conform (partially) to ITK coding style. 436 DOC: Add missing links to Markdown file cross-refs. 437 ENH: Add a Pull Request template. 438 DOC: Remove extension to Markdown cross-ref link text. 439 STYLE: Change SubtractConstantFromImageFilterTest name. 440 BUG: Add missing input image iterator declaration. 441 BUG: Fix Superclass names in V3Compatibility tests. 442 DOC: Fix wrong comments in V3Compatibility tests. 443 DOC: Correct the preferred class names in ITKv4. 444 COMP: Fix valgrind-detected uninitialized members. 445 ENH: Improve coverage for itkWarpHarmonicEnergyCalculator. 446 ENH: Bump lastest version of remote repository. 447 ENH: Display error message in Iterator classes' wrapping. 448 DOC: Add links to NOTICE and LICENSE files in README. 449 DOC: Rework the contributing files. 450 DOC: Document how to upload binary data in a Markdown file. 451 DOC: Transition ThirdParty top-level README files to Markdown. 452 DOC: Add third party project updating documentation markdown file. 453 DOC: Document the release process in a Markdown file. 454 DOC: Transition Utilities/Maintenance/README Markdown. 455 DOC: Remove Documentation/Style.pdf file. 456 DOC: Redirect the "Submit a patch" link to `CONTRIBUTING.md`. 457 DOC: Mention the ITK full name in `README.md`. 458 DOC: Fix broken links and oversights in `CONTRIBUTING.md`. 459 DOC: Add a `GitHelp.md` resource to Documentation. 460 DOC: Make the ITK long name be consistent in .md files. 461 DOC: Create ISSUE_TEMPLATE.md 462 463KWSys Upstream (1): 464 KWSys 2017-10-17 (fc4d55ba) 465 466Laura Pascal (2): 467 ENH: Update version of DCMTK to 3.6.1_20170529 468 ENH: Update the DoubleConversion library upstream update script. 469 470Mathieu Malaterre (4) @mathieu.malaterre : 471 ENH: Explicit set the precision when printing double 472 ENH: Use double floating point API for MetaImage 473 ENH: Define a global default double precision for MetaImage 474 ENH: Enforce data truncation for legacy tests 475 476Matthew McCormick (52) @matt.mccormick : 477 ENH: Add install rules for External Module Python package 478 COMP: Do not wrap std::_Deque_alloc 479 ENH: Wrap RegionOfInterestFilter for VectorImage's 480 COMP: Disable CoreFoundation calls 481 ENH: Execute the merge when updating third party subtrees 482 ENH: Allow custom repo and branch for MetaIO subtree updates 483 COMP: Specify AR to PCRE build on macOS 484 BUG: Mark GoogleTest CMake options as advanced 485 COMP: Address LBFGS2Optimizerv4 doxygen warnings 486 BUG: ITKIOGE has a public dependency on ITKIOIPL 487 COMP: Bump KWStyle to latest master 488 ENH: Add TextureFeatures remote module 489 COMP: Detect the presence of mallinfo 490 COMP: IsNull() capitalization in LevelSetEquationAdvectionTerm 491 ENH: Wrap FloatingPointExceptions 492 COMP: Use GDCM_HAVE_BYTESWAP_H 493 COMP: Fail early when byteswap functions are not available 494 COMP: Detect the presence of feenableexcept 495 BUG: Use itkGetConstObjectMacro for LogBiasFieldControlPointLattice 496 COMP: Detect the presence of feenableexcept 497 COMP: Use GDCM_HAVE_BYTESWAP_H 498 COMP: Fix AnisotropicDiffusionLBR example build 499 BUG: Correct GPUMeanImageFilter Superclass 500 BUG: Remove debug code from GPUMeanImageFilter 501 BUG: Do not use static_cast, SmartPointer in GPUImage::GetGPUDataManager 502 BUG: Remove debug code in itkGPUImage.hxx 503 COMP: Do not call vector.data() in ITKIOBruker 504 ENH: Bump CMakeLists.txt version to 4.12.1 505 DOC: Format the README in markdown syntax 506 DOC: Enable offline Doxygen support 507 BUG: ITKIOMINC DEPENDS on ITKMINC 508 BUG: Update Bruker IO wrapping after migration from ITKReview 509 COMP: Update MorphologicalContourInterpolation to 2017-09-22 510 DOC: Do not pre-cache Doxygen php files 511 DOC: Expose RayCastInterpolateImageFunction members in Doxygen 512 BUG: RayCastInterpolateImageFunciton physical space issues 513 COMP: Overloaded - operator ambiguous in RayCastInterpolateImageFunction 514 BUG: Add missing template export for GradientAnisotropicDiffusionImageFilter 515 ENH: Wrap {Correlation,Demons,JointHistogramMI} Metricv4 516 ENH: Add Python wrapping for ITKIOMesh 517 BUG: Hide HDF5 CMake options from main configuration 518 BUG: Add DCMTK external project dependency after ExternalProject_Add 519 COMP: Bump CastXML to 2017-11-06 master 520 BUG: Fix hooks clone when ITK is a submodule 521 BUG: Remove duplicate entries of ITK_WRAP_PYTHON_LIBRARY_IMPORTS 522 DOC: Remove broken HoughTransform2DCircles wiki examples link 523 DOC: NeighborhoodIterator documentation formatting improvements 524 COMP: Do not use export macro in vnl_amoeba default_verbose 525 COMP: HoughTransform2DCirclesImageFilter lines too long for Software Guide 526 BUG: Reset LIST_OF_IMAGEIO_FORMATS in UseITK.cmake 527 COMP: Do not wrap itk::ObjectFactoryBasePrivate 528 DOC: Update Python package release process 529 530MetaIO Maintainers (5): 531 MetaIO 2017-07-20 (92caf34d) 532 MetaIO 2017-08-17 (3e1cb552) 533 MetaIO 2017-10-04 (55395e3d) 534 MetaIO 2017-08-31 (5f935e1b) 535 MetaIO 2017-12-04 (02a2e22e) 536 537Niels Dekker (23) @Niels_Dekker : 538 COMP: Fixed <nifti1_io.h> leak into user code 539 STYLE: Replaced NiftiImageHolder by AutoPointer 540 COMP: Fixed "gifti_io.h" leak into user code 541 COMP: Fixed "Ge5xHdr.h" leak into user code 542 PERF: Break out of loop as soon as requested number of circles is found 543 STYLE: Removed useless (or obsolete) local bool, 'found'. 544 PERF: Avoid redundant search in GetCircles(n) 545 PERF: GetCircles now calls Graft, instead of copying pixels from GetOutput(0) 546 DOC: Added comment that the grafted output image should not be modified. 547 STYLE: Removed HoughTransform GetCircles parameter (n) which appears obsolete 548 ENH: Added deprecated GetCircles(unsigned int) overload to HoughTransform 549 COMP: Replaced deprecated GetCircles(n) call in HoughTransform example 550 BUG: HoughTransform CirclesList should be empty when NumberOfCircles is zero 551 ENH: Tested HoughTransform CirclesList is empty when NumberOfCircles is zero 552 BUG: HoughTransform GetCircles() should avoid circles with accumulator <= 0 553 STYLE: Removed HoughTransform GetLines parameter (n), which appears obsolete 554 ENH: Improved HoughTransform2DCirclesImageFilter accuracy, using Math::Round 555 BUG: HoughTransform GetLines() returned too many lines 556 PERF: Improved speed of HoughTransform2DCirclesImageFilter::GenerateData() 557 STYLE: HoughTransform calling convenience overload of SetVariance 558 DOC: Mentioned that HoughTransform2DCirclesImageFilter also finds discs 559 ENH: Allow different types accumulator and radius image Hough Circles filter 560 BUG: Access violation itkGaussianDerivativeOperatorTest argv[0] 561 562Pablo Hernandez-Cerdan (4) @phcerdan : 563 ENH: Add External Module IsotropicWavelets. 564 ENH: Update ExternalModule IsotropicWavelets to v0.4 565 ENH: Update IsotropicWavelets 566 COMP: Fix macro ITK_NOEXCEPT, deprecate ITK_NOEXCEPT_OR_THROW 567 568Rene-Paul Debroize (1): 569 ENH: Add remote module TBBImageToImageFilter 570 571Samuel Gerber (2): 572 ENH: Adding libLBFGS third party library 573 BUG: stdint.h missing on Visual Studio 9 574 575Sean McBride (17) @seanm : 576 COMP: Added missing ITK_OVERRIDE 577 COMP: fixed compilation error with int vs nullptr_t 578 PERF: Fixed some comments; prefer preincrement 579 COMP: Set GDCM_USE_COREFOUNDATION_LIBRARY off 580 COMP: add itk prefix to gdcmopenjp2 library name 581 COMP: Fixed some -Winconsistent-missing-override warnings 582 COMP: Added ITK_OVERRIDE to hundreds of destructor declarations. 583 COMP: Made ITK_OVERRIDE work only in MSVC >= 2012 (instead of 2010) 584 COMP: Fixed Wshadow warnings by removing shadows 585 COMP: Added a bunch more missing ITK_OVERRIDE 586 COMP: suppress all compilers warnings from third party google test 587 COMP: Added yet more ITK_OVERRIDEs, mostly on destructors 588 COMP: Added yet more ITK_OVERRIDEs 589 COMP: Fixed various -Wconst-qual warnings 590 COMP: Fixed some Wcast-qual warnings 591 COMP: Removed superfluous declarations in subclass, fixing override warnings 592 COMP: Silence -Wunused-template warnings by making affected methods inline 593 594Simon Rit (1) @simon.rit : 595 COMP: remove dynamic exception specifications 596 597Steve Pieper (1) @pieper : 598 BUG: ITK-3553 fixes ImageOrientation issue in DCMTK reader 599 600Tobias Wood (3) @spinicist : 601 ENH: Updated the Bruker2DSeq reader to ParaVision 6.0 602 BUG: Bruker2dseq was not registered correctly due to module name change. 603 BUG: Fixed origin & orientation issues. 604 605VXL Maintainers (2): 606 VNL 2017-10-05 (dd7794d9) 607 VNL 2017-12-08 (a1573ca8) 608 609Vladimir S. FONOV (2): 610 MINC 2017-09-14 (e11c6df9) 611 MINC 2017-10-18 (f2d06a67) 612 613Ziv Yaniv (2) @zivy : 614 DOC: Updated documentation for LabelStatisticsImageFilter::GetBoundingBox. 615 BUG: itkVTKImageIO::CanWriteFile accepted files with wrong extension. 616 617ITK Sphinx Examples Changelog 618----------------------------------------------- 619 620Bradley Lowekamp (1) @blowekamp : 621 Add python syntax highlighting 622 623Dženan Zukić (1) @dzenanz : 624 COMP: allow examples to build when ITK_LEGACY_REMOVE is enabled 625 626Francois Budin (1) @fbudin : 627 ENH: Bump ITK version to 4.13.0 628 629Jon Haitz Legarreta Gorroño (6) @jhlegarreta : 630 ENH: Add WatershedImageFilter example. 631 ENH: Improve layout and doc for adaptive histogram equalization example. 632 ENH: Update the ToDo list of examples to import from Wiki. 633 ENH: Add an example for itk::AdaptiveHistogramEqualizationImageFilter. 634 BUG: Fix the example images not being rendered. 635 DOC: Improve the README.rst code syntax. 636 637Matt McCormick (2) @matt.mccormick : 638 DOC: Update documentation to install PyPI package 639 STYLE: Make Python code in src/ flake8 compliant 640 641 642ITK Software Guide Changelog 643----------------------------------------------- 644 645Francois Budin (1) @fbudin : 646 ENH: Add patch number to ITK version in Software guide 647 648Jon Haitz Legarreta Gorroño (21) @jhlegarreta : 649 ENH: Make class and brief dcostring keywords' start columns consistent. 650 DOC: Update the ITK logo to the new ITK logo. 651 DOC: Fix `ParseCxxExamples.py` script location in `README.md`. 652 DOC: Fix use of \center vs. \centering in figures. 653 DOC: Update to the official name of Apple OS systems. 654 DOC: Remove redundant greater-than sign in path. 655 DOC: Keep ITK CMake minimum required version consistency. 656 DOC: Update the Advanced Module Configuration CMake options. 657 DOC: Update Figures 2.2 and 2.3 in Advanced Module Configuration. 658 DOC: Update supported compilers' list. 659 DOC: Transition SoftwareGuide/Cover and Latex READMEs to Markdown 660 DOC: Fix ITK long name case mismatch. 661 DOC: Fix Coding Style Guide formatting issues. 662 DOC: Add Documentation Style section. 663 DOC: Add a CMake Style item to the Overview section. 664 DOC: Mention the ITK full name in common abstract. 665 DOC: Add a cross compilation section to Configuring and Building ch. 666 DOC: Add content to empty example in Variable Initialization 667 DOC: Use tilde to connect names and references. 668 DOC: Enhance the `README.md` syntax. 669 DOC: Add a test layout subsection. 670 671Matt McCormick (17) @matt.mccormick : 672 DOC: Correct Coding Style Guide doxygen links 673 ENH: Enable specification of ITK_GIT_TAG in the superbuild 674 COMP: Use the xcolor package instead of color 675 ENH: Split Running and Parsing examples into an ExternalProject 676 ENH: Improve EPS conversion operation output 677 ENH: Add support for Ninja job pools 678 COMP: Address undefined colorlet command 679 COMP: Undefined toprule command 680 COMP: Undefined control sequence cellcolor 681 COMP: Undefined table configuration 682 BUG: Do not add_subdirectory(Examples) for ITKSoftwareGuide build 683 BUG: Do not depend on Examples generated .tex sources 684 BUG: Update ITK version to 2017-12-15 master 685 COMP: Remove ITKV3_COMPATIBILITY 686 ENH: Add CircleCI configuration 687 ENH: Propagate CMAKE_{C,CXX}_COMPILER_LAUNCHER in superbuild 688 ENH: Bump ITK version to 4.13.0 689