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