ITK/Release 4.4

From KitwarePublic
Jump to navigationJump to search

We are excited to announce two new ImageIO modules available in the main repository. The MINC ImageIO module provides a bridge to the MINC file format, a powerful medical imaging format used by the MINC library, another open source library with many features similar to ITK. The new MINC module, which has Image IO and Transform IO capabilities, is considered experimental and must be enabled by turning Module_ITKIOMINC ON in CMake’s configuration. This will automatically build the MINC library, which is now available on Mac, Linux, and Windows. The HDF5-based MINC2 file format is supported, but support for the NetCDF-based MINC1 file format is not supported because NetCDF is not distributed with ITK.

Another new ImageIO module that expands the reach of ITK is the SCIFIO module. SCIFIO is a refactoring of the Bio-Formats library. This module provides access to a wide range of file formats encountered in life sciences/microscopy environments. This experimental feature is available a Remote module; to enable it, set the Fetch_SCIFIO CMake variable to ON. Many improvements and fixes are ongoing for this module; Git master is recommended for those interested in this module.

A number of improvements were also made to DCMTK ImageIO, but this module remains experimental on disabled by default. To try DCMTK ImageIO support, turn the CMake option Module_ITKIODCMTK ON. For Unix platforms, the supporting DCMTK library will automatically be built as a CMake ExternalProject. On Windows, the DCMTK library must be built independently of the ITK build system. Then, specify the location to the external build after setting the CMake option ITK_USE_SYSTEM_DCMTK ON.

A number of performance improvements were made to QuadEdgeMesh processing and memory copy functions. A new ImageScanlineIterator is available. This iterator can be used in many of the cases where an ImageRegionIterator is applied, but it has better performance.

The approach to split image regions for parallel processing is no longer hard coded to make multiple options available.

An API design change was started to improve the implied functionality of the GetObject methods. The non-const “GetObjectMacro” has been replaced with a “GetModifiableObjectMacro” that will result in a GetModifiableXXX method instead of a GetXXX method. This makes the non-const nature of the method and the circumvention of pipeline update semantics explicit for both the code author and those reading the class API. This was implemented in a backwards compatible way, and it will only be enforced if ITK_FUTURE_LEGACY_REMOVE is defined.

Support for the Google Double Conversion library was added to improve the reading and writing of double values as ASCII text with the intention to improve the precision of the text transform file format’s serialization.

It is now easier to identify filter inputs by both a string name or an integer index. The internal methods to store and retrieve inputs by either string or index was correspondingly refactored, and performance was also improved.

JPEG ImageIO now writes and reads image spacing in a manner similar to the TIFF ImageIO.

An extensive amount of code cruft was removed and coding style was made more consistent; ITK gets more stylish and classy with every release!

The ExternalData method to store large testing data outside of the Git repository is now in upstream CMake 2.8.11. Our internal version has been updated to the improved version in CMake.

The minimum CMake required version was bumped to 2.8.8 on Windows and 2.8.5 otherwise. This may be increased even higher in the near future to ensure all CMake features utilized operate correctly.

Known assertion failures occur when compiled under Visual Studio in the Debug configuration. This will be fixed in 4.4.1. If this has a significant negative impact on your work, please consider contributing a Nightly dashboard build under this configuration. As previously scheduled, Visual Studio 2005 is no longer be supported.

Support for building against system third party libraries continues to improve. Further improvements are expected for version 4.5.

All tests are now passing again on the Nightly big-endian dashboard system.

InsightApplications (ITKApps) has seen fixes in the FLTK superbuild and the TCL wrapped applications.