Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/release' into release-5.4
Browse files Browse the repository at this point in the history
  • Loading branch information
thewtex committed Jan 17, 2025
2 parents 807c962 + 9fd4b5a commit 8ef0826
Show file tree
Hide file tree
Showing 13 changed files with 61 additions and 54 deletions.
17 changes: 12 additions & 5 deletions Documentation/docs/contributing/documenting_itk.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
# Documenting ITK

The ITK code documentation is available online at https://itk.org/Doxygen/html/.
The ITK code documentation is available online at https://docs.itk.org/projects/doxygen/.

By default, the latest released documentation version is displayed,
but documentation for previous versions is available at by choosing the
appropriate version at the bottom of the above page, e.g.
https://itk.org/Doxygen53/html/index.html.
appropriate version from the ReadTheDocs interface at the bottom right of a page, e.g.
https://docs.itk.org/projects/doxygen/en/v5.3.0/.

## Using Doxygen for C++ code

### Dependencies
### Build Option 1: Use Docker

The ITK Doxygen documentation can be built using Docker as described in the
[ITKDoxygen repository](https://github.com/InsightSoftwareConsortium/ITKDoxygen).

### Build Option 2: Use CMake, Doxygen Dot

#### Dependencies

Generating a complete Doxygen documentation requires (besides CMake and
the ITK source code):
Expand All @@ -22,7 +29,7 @@ Preferable:
- [Dot](https://graphviz.org/doc/info/lang.html) from [GraphViz](https://graphviz.org/)
for generating inheritance and dependency graphs.

## Generating the Doxygen documentation
#### Generating the Doxygen documentation

Generating the Doxygen documentation for ITK requires:

Expand Down
2 changes: 1 addition & 1 deletion Documentation/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ learn/fda_off_the_shelf_sw_guidelines.md
:maxdepth: 1
:caption: 🔨 Develop
API <https://itk.org/Doxygen/html/index.html>
API <https://docs.itk.org/projects/doxygen/en/stable/index.html>
Discussion <https://discourse.itk.org>
Issue tracker <https://github.com/InsightSoftwareConsortium/ITK/issues>
supported_compilers
Expand Down
2 changes: 1 addition & 1 deletion Documentation/docs/learn/dicom.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ $ DicomImageReadPrintTags image.dcm | grep "Image Pixel Value"
## Why did the header of my DICOM file change?

A common question that frequently arises after using
[`itk::GDCMImageIO`](https://itk.org/Doxygen/html/classitk_1_1GDCMImageIO.html)
[`itk::GDCMImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1GDCMImageIO.html)
to read, update and write out a DICOM file is: why did my header file
change during the update mechanism?

Expand Down
68 changes: 34 additions & 34 deletions Documentation/docs/learn/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ optional modules (e.g. [ITKVTKGlue](https://github.com/InsightSoftwareConsortium

The following table identifies the file formats that ITK can read/write
via a factory mechanism based on the file extension
([`itk::ImageIOFactory`](https://itk.org/Doxygen/html/classitk_1_1ImageIOFactory.html)). Some proprietary files format are only imported.
([`itk::ImageIOFactory`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1ImageIOFactory.html)). Some proprietary files format are only imported.

More information on supported file formats is available on the
[ITK-Wasm Image File Formats](https://wasm.itk.org/en/latest/introduction/file_formats/images.html)
Expand All @@ -32,39 +32,39 @@ images.
| ----------- | ---------- | ------ |
| Analyze 7.5 | `itk::AnalyzeImageIO` | |
| [BioRad](https://www.bio-rad.com/) | | |
| [BMP](https://en.wikipedia.org/wiki/BMP_file_format)| [`itk::BMPImageIO`](https://itk.org/Doxygen/html/classitk_1_1BMPImageIO.html) | |
| [DICOM](https://dicom.nema.org/) | [`itk::GDCMImageIO`](https://itk.org/Doxygen/html/classitk_1_1GDCMImageIO.html) | |
| [BMP](https://en.wikipedia.org/wiki/BMP_file_format)| [`itk::BMPImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1BMPImageIO.html) | |
| [DICOM](https://dicom.nema.org/) | [`itk::GDCMImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1GDCMImageIO.html) | |
| [DICOM Series](https://dicom.nema.org/) | | |
| GE 4x | [`itk::GE4ImageIO`](https://itk.org/Doxygen/html/classitk_1_1GE4ImageIO.html) | |
| GE 5x | [`itk::GE5ImageIO`](https://itk.org/Doxygen/html/classitk_1_1GE5ImageIO.html) | |
| GE Advantage Windows | | [`itk::GEAdwImageIO`](https://itk.org/Doxygen/html/classitk_1_1GEAdwImageIO.html) |
| [GIPL](https://www.ncbi.nlm.nih.gov/pubmed/12956259) (Guy's Image Processing Lab) (.gipl) | [`itk::GiplImageIO`](https://itk.org/Doxygen/html/classitk_1_1GiplImageIO.html) | |
| IPLCommon | [`itk::IPLCommonImageIO`](https://itk.org/Doxygen/html/classitk_1_1IPLCommonImageIO.html) | |
| GE 4x | [`itk::GE4ImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1GE4ImageIO.html) | |
| GE 5x | [`itk::GE5ImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1GE5ImageIO.html) | |
| GE Advantage Windows | | [`itk::GEAdwImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1GEAdwImageIO.html) |
| [GIPL](https://www.ncbi.nlm.nih.gov/pubmed/12956259) (Guy's Image Processing Lab) (.gipl) | [`itk::GiplImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1GiplImageIO.html) | |
| IPLCommon | [`itk::IPLCommonImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1IPLCommonImageIO.html) | |
| [ITK HDF5](https://support.hdfgroup.org/HDF5/) | | |
| [JPEG](https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format)| [`itk::JPEGImageIO`](https://itk.org/Doxygen/html/classitk_1_1JPEGImageIO.html) | |
| [LSM](https://www.openwetware.org/wiki/Dissecting_LSM_files) | [`itk::LSMImageIO`](https://itk.org/Doxygen/html/classitk_1_1LSMImageIO.html) | |
| [MetaImage](https://itk.org/Wiki/ITK/MetaIO/Documentation) (.mha/.mhd) | [`itk::MetaImageIO`](https://itk.org/Doxygen/html/classitk_1_1MetaImageIO.html) | |
| [MINC 2.0](https://en.wikibooks.org/wiki/MINC/SoftwareDevelopment/MINC2.0_File_Format_Reference) (Medical Image NetCDF) | [`itk::MINCImagIO`](https://itk.org/Doxygen/html/classitk_1_1MINCImageIO.html) | |
| [MGH](https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat) | [`itk:MGHImageIO`](https://itk.org/Doxygen/html/classitk_1_1MGHImageIO.html) | |
| [MRC](http://www.ccpem.ac.uk/mrc_format/mrc_format.php) | [`itk::MRCImageIO`](https://itk.org/Doxygen/html/classitk_1_1MRCImageIO.html) | |
| [NIfTI](https://nifti.nimh.nih.gov/nifti-1) (.nii) | [`itk::NiftiImageIO`](https://itk.org/Doxygen/html/classitk_1_1NiftiImageIO.html) | |
| [NRRD](http://teem.sourceforge.net/nrrd/format.html) (.nhdr/.nrrd) | [`itk::NrrdImageIO`](https://itk.org/Doxygen/html/classitk_1_1NrrdImageIO.html) | |
| [PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics)| [`itk::PNGImageIO`](https://itk.org/Doxygen/html/classitk_1_1PNGImageIO.html) | |
| Raw ‡ | [`itk::RawImageIO`](https://itk.org/Doxygen/html/classitk_1_1RawImageIO.html) | |
| [JPEG](https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format)| [`itk::JPEGImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1JPEGImageIO.html) | |
| [LSM](https://www.openwetware.org/wiki/Dissecting_LSM_files) | [`itk::LSMImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1LSMImageIO.html) | |
| [MetaImage](https://itk.org/Wiki/ITK/MetaIO/Documentation) (.mha/.mhd) | [`itk::MetaImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1MetaImageIO.html) | |
| [MINC 2.0](https://en.wikibooks.org/wiki/MINC/SoftwareDevelopment/MINC2.0_File_Format_Reference) (Medical Image NetCDF) | [`itk::MINCImagIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1MINCImageIO.html) | |
| [MGH](https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat) | [`itk:MGHImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1MGHImageIO.html) | |
| [MRC](http://www.ccpem.ac.uk/mrc_format/mrc_format.php) | [`itk::MRCImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1MRCImageIO.html) | |
| [NIfTI](https://nifti.nimh.nih.gov/nifti-1) (.nii) | [`itk::NiftiImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1NiftiImageIO.html) | |
| [NRRD](http://teem.sourceforge.net/nrrd/format.html) (.nhdr/.nrrd) | [`itk::NrrdImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1NrrdImageIO.html) | |
| [PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics)| [`itk::PNGImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1PNGImageIO.html) | |
| Raw ‡ | [`itk::RawImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1RawImageIO.html) | |
| [Scanco microCT volume file format](https://www.scanco.ch/en/support/customer-login/faq-customers/faq-customers-import-export.html) | | |
| Siemens Vision | | [`itk::SiemensVisionImageIO`](https://itk.org/Doxygen/html/classitk_1_1SiemensVisionImageIO.html) |
| Stimulate (spr/sdt) | [`itk::StimulateImageIO`](https://itk.org/Doxygen/html/classitk_1_1TIFFImageIO.html) | |
| Siemens Vision | | [`itk::SiemensVisionImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1SiemensVisionImageIO.html) |
| Stimulate (spr/sdt) | [`itk::StimulateImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1TIFFImageIO.html) | |
| [TIFF](https://en.wikipedia.org/wiki/TIFF) | [`itk::TIFFImageIO`]() | |
| [Varian FDF](https://github.com/InsightSoftwareConsortium/ITKIOFDF) | | |
| [VTK Structured Points](https://www.vtk.org/VTK/img/file-formats.pdf) | [`itk::VTKImageIO`](https://itk.org/Doxygen/html/classitk_1_1VTKImageIO.html) | |
| [VTK Structured Points](https://www.vtk.org/VTK/img/file-formats.pdf) | [`itk::VTKImageIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1VTKImageIO.html) | |

† BMP, PNG and JPEG are not very good formats for 3D medical images.
They only support 2D images and a limited set of pixel types such as
unsigned char, and unsigned short. The great advantage of BMP, PNG and
JPEG is that you can view them with almost any image viewer. It is
possible to read/write 3D datasets as collections of 2D slices each one
in an independent BMP, PNG or JPEG file by using the
[`ImageSeriesReader`](https://itk.org/Doxygen/html/classitk_1_1ImageSeriesReader.html) and [`itk::ImageSeriesWriter`](https://itk.org/Doxygen/html/classitk_1_1ImageSeriesWriter.html).
[`ImageSeriesReader`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1ImageSeriesReader.html) and [`itk::ImageSeriesWriter`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1ImageSeriesWriter.html).

‡ It is higly recommended not using this format. RAW is not a format, it
is insufficient, inconsistent and simply dangerous. A RAW file without a
Expand All @@ -81,7 +81,7 @@ contains a good set of tools for performing such conversions.

You can also take advantage of the VTK readers/importers. All you need
is then use the VTKImageToImage adaptor in order to convert the
[`vtkImageData`](https://vtk.org/doc/nightly/html/classvtkImageData.html) into an [`itk::Image`](https://itk.org/Doxygen/html/classitk_1_1Image.html).
[`vtkImageData`](https://vtk.org/doc/nightly/html/classvtkImageData.html) into an [`itk::Image`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1Image.html).

Supported VTK file formats can be found in https://docs.vtk.org/en/latest/supported_data_formats.html.

Expand All @@ -93,13 +93,13 @@ formats:
| File Format | Read/Write | Import |
| ----------- | ---------- | ------ |
| [BYU](http://www.eg-models.de/formats/Format_Byu.html) |
[`itk::BYUMeshIO`](https://itk.org/Doxygen/html/classitk_1_1BYUMeshIO.html) | |
| [FreeSurfer surface, binary and ASCII](http://www.grahamwideman.com/gw/brain/fs/surfacefileformats.htm) | [`itk::FreeSurferBinaryMeshIO`](https://itk.org/Doxygen/html/classitk_1_1FreeSurferBinaryMeshIO.html), [`itk::FreeSurferAsciiMeshIO`](https://itk.org/Doxygen/html/classitk_1_1FreeSurferAsciiMeshIO.html) | |
| [OFF](https://en.wikipedia.org/wiki/OFF_%28file_format%29) | [`ìtk::OFFMeshIO`](https://itk.org/Doxygen/html/classitk_1_1OFFMeshIO.html) | |
[`itk::BYUMeshIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1BYUMeshIO.html) | |
| [FreeSurfer surface, binary and ASCII](http://www.grahamwideman.com/gw/brain/fs/surfacefileformats.htm) | [`itk::FreeSurferBinaryMeshIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1FreeSurferBinaryMeshIO.html), [`itk::FreeSurferAsciiMeshIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1FreeSurferAsciiMeshIO.html) | |
| [OFF](https://en.wikipedia.org/wiki/OFF_%28file_format%29) | [`ìtk::OFFMeshIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1OFFMeshIO.html) | |
| [STL](https://en.wikipedia.org/wiki/STL_%28file_format%29) | | |
| [SWC Neuron Morphology](https://swc-specification.readthedocs.io/en/latest/) | | |
| [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) | [`ìtk::OBJMeshIO`](https://itk.org/Doxygen/html/classitk_1_1OBJMeshIO.html) | |
| [VTK legacy file format for vtkPolyData](https://www.vtk.org/wp-content/uploads/2015/04/file-formats.pdf) | [`itk::VTKPolyDataMeshIO`](https://itk.org/Doxygen/html/classitk_1_1VTKPolyDataMeshIO.html) | |
| [OBJ](https://en.wikipedia.org/wiki/Wavefront_.obj_file) | [`ìtk::OBJMeshIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1OBJMeshIO.html) | |
| [VTK legacy file format for vtkPolyData](https://www.vtk.org/wp-content/uploads/2015/04/file-formats.pdf) | [`itk::VTKPolyDataMeshIO`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1VTKPolyDataMeshIO.html) | |

More information on supported mesh and point set file formats is available on the
[ITK-Wasm Mesh and Point Set File Formats](https://wasm.itk.org/en/latest/introduction/file_formats/meshes.html)
Expand All @@ -111,9 +111,9 @@ ITK supports reading and writing the following transform file formats:

| File Format | Read/Write | Import |
| ----------- | ---------- | ------ |
| InsightLegacy | [`itk::TxtTransformIOTemplate`](https://itk.org/Doxygen/html/classitk_1_1TxtTransformIOTemplate.html) | |
| ITK HDF5 | [`itk::HDF5TransformIOTemplate`](https://itk.org/Doxygen/html/classitk_1_1HDF5TransformIOTemplate.html) | |
| MATLAB | [`itk::MatlabTransformIOTemplate`](https://itk.org/Doxygen/html/classitk_1_1MatlabTransformIOTemplate.html) | |
| InsightLegacy | [`itk::TxtTransformIOTemplate`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1TxtTransformIOTemplate.html) | |
| ITK HDF5 | [`itk::HDF5TransformIOTemplate`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1HDF5TransformIOTemplate.html) | |
| MATLAB | [`itk::MatlabTransformIOTemplate`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1MatlabTransformIOTemplate.html) | |
| MINC (Medical Image NetCDF) | `itk::MINCTransformIOTemplate` | |

#### DICOM data
Expand All @@ -127,7 +127,7 @@ in case of desperation.
1. Use the [itk-wasm dicom](https://itk-wasm-dicom-docs.on.fleek.co/#/),
package, which is available from [here](https://itk-wasm-dicom-python-docs.on.fleek.co/).
It has the broadest support and is the easiest to use.
1. Use the [`itk::ImageSeriesReader`](https://itk.org/Doxygen/html/classitk_1_1ImageSeriesReader.html) in combination with the
1. Use the [`itk::ImageSeriesReader`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1ImageSeriesReader.html) in combination with the
`DicomSeriesFileNames`. For a full example on how to do this,
please look at the [`DicomSeriesReadImageWrite2.cxx`](https://github.com/InsightSoftwareConsortium/ITK/blob/master/Examples/IO/DicomSeriesReadImageWrite2.cxx)
code.
Expand Down Expand Up @@ -520,8 +520,8 @@ overview](http://www.itk.org/CourseWare/Training/RegistrationMethodsOverview.pdf

### Why can't I read any image files? or Why am I getting the exception message: `There are no registered IO factories.`?

When trying to read or write a file using the [`itk::ImageFileReader`](https://itk.org/Doxygen/html/classitk_1_1ImageFileReader.html)
or the [`itk::ImageFileWriter`](https://itk.org/Doxygen/html/classitk_1_1ImageFileWriter.html) I got an exception with the following message:
When trying to read or write a file using the [`itk::ImageFileReader`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1ImageFileReader.html)
or the [`itk::ImageFileWriter`](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1ImageFileWriter.html) I got an exception with the following message:

```{bash}
itk::ImageFileReaderException (00F7F494)
Expand Down
6 changes: 3 additions & 3 deletions Documentation/docs/migration_guides/itk_5_migration_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ Availability of the C++11 standard allows use of many Standard Library
features. These were previously implemented as portable ITK classes.
The standard library classes are preferred over ITK's implementations.
The most notable examples of this are:
* [atomic integers](https://itk.org/Doxygen413/html/classitk_1_1AtomicInt.html) should be replaced by `std::atomic`.
* [mutex locks](https://itk.org/Doxygen413/html/classitk_1_1MutexLock.html)
* [atomic integers](https://docs.itk.org/projects/doxygen/en/v4.13.0/classitk_1_1AtomicInt.html) should be replaced by `std::atomic`.
* [mutex locks](https://docs.itk.org/projects/doxygen/en/v4.13.0/classitk_1_1MutexLock.html)
and related classes should be replaced by the similarly named classes from STL's
[`<mutex>`](https://en.cppreference.com/w/cpp/header/mutex) header.
* `itksys::hash_map` should be replaced by [std::unordered_map](https://en.cppreference.com/w/cpp/container/unordered_map).
Expand Down Expand Up @@ -368,7 +368,7 @@ It should be replaced by [itk::SimpleFilterWatcher](../../../Modules/Core/Common
`itksys::hash_map` has been removed. It should be replaced by `std::unordered_map`.

`WatershedImageFilter` produces slightly different results due to changes of `hash_map`.
Generally, [MorphologicalWatersheds](https://itk.org/Doxygen/html/classitk_1_1MorphologicalWatershedImageFilter.html)
Generally, [MorphologicalWatersheds](https://docs.itk.org/projects/doxygen/en/stable/classitk_1_1MorphologicalWatershedImageFilter.html)
produce more stable results and should be preferred to regular watersheds.

Since `itk::ProgressReporter` does not work well with the new threading model,
Expand Down
2 changes: 1 addition & 1 deletion Documentation/docs/releases/2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ formats are:
- ACR-NEMA version 1 and 2
- Dicom version 3.0 (including various encodings of jpeg, RLE)

Class Reference : [GDCMImageIO](https://www.itk.org/Doxygen/html/classitk_1_1GDCMImageIO.html), [GDCMSeriesFileNames](https://www.itk.org/Doxygen/html/classitk_1_1GDCMSeriesFileNames.html)\
Class Reference : [GDCMImageIO](https://docs.itk.org/projects/doxygen/en/v2.2.0/classitk_1_1GDCMImageIO.html), [GDCMSeriesFileNames](https://docs.itk.org/projects/doxygen/en/v2.2.0/classitk_1_1GDCMSeriesFileNames.html)\
Examples : (None)

## New itkVesselTubeSpatialObject with metaIO file format to support vessel representation
Expand Down
2 changes: 1 addition & 1 deletion Documentation/docs/releases/4.6.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ the Sphinx repository and the Wiki, which can now also be build as
Remote modules. The Software Guide was split into two books and
configure and build instructions were revised.

\[1\] <https://www.itk.org/Doxygen/html/modules.html>
\[1\] <https://docs.itk.org/projects/doxygen/en/v4.6.0/modules.html>

New Features

Expand Down
2 changes: 1 addition & 1 deletion Documentation/docs/releases/5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Additionally, a major upgrade of the ITK Spatial Object framework, which provide

**Ranges**

ITK 5.0 has a new [Experimental namespace](https://itk.org/Doxygen/html/namespaceitk_1_1Experimental.html). This namespace includes three _range_ class templates, `ShapedImageNeighborhoodRange`, `IndexRange`, and `ImageBufferRange`, to iterate efficiently over a neighborhood of pixels, the indices of an image region, and the pixels of an image buffer, respectively. These ranges can be used in a C++11 range-base for-loop. Their `begin()` and `end()` can be passed directly to an `std` algorithm.
ITK 5.0 has a new [Experimental namespace](https://docs.itk.org/projects/doxygen/en/stable/namespaceitk_1_1Experimental.html). This namespace includes three _range_ class templates, `ShapedImageNeighborhoodRange`, `IndexRange`, and `ImageBufferRange`, to iterate efficiently over a neighborhood of pixels, the indices of an image region, and the pixels of an image buffer, respectively. These ranges can be used in a C++11 range-base for-loop. Their `begin()` and `end()` can be passed directly to an `std` algorithm.

**New Features**

Expand Down
Loading

0 comments on commit 8ef0826

Please sign in to comment.