ITK  5.4.0
Insight Toolkit
Public Types | Public Member Functions | List of all members
itk::ImageRegionIterator< TImage > Class Template Reference

#include <itkImageRegionIterator.h>

Detailed Description

template<typename TImage>
class itk::ImageRegionIterator< TImage >

A multi-dimensional iterator templated over image type that walks a region of pixels.

The itk::ImageRegionIterator is optimized for iteration speed and is the first choice for iterative, pixel-wise operations on an image. ImageRegionIterator is the least specialized of the ITK image iterator classes. ImageRegionIterator is templated over the image type, and is constrained to walk only within the specified region and along a line parallel to one of the coordinate axes, "wrapping" to the next line as it reaches the boundary of the image. To walk the entire image, specify the region to be image->GetRequestedRegion().

Most of the functionality is inherited from the ImageRegionConstIterator. The current class only adds write access to image pixels.

MORE INFORMATION
For a complete description of the ITK Image Iterators and their API, please see the Iterators chapter in the ITK Software Guide. The ITK Software Guide is available in print and as a free .pdf download from https://www.itk.org.

example ImageRegionIterator.cxx

See also
ImageConstIterator
ConditionalConstIterator
ConstNeighborhoodIterator
ConstShapedNeighborhoodIterator
ConstSliceIterator
CorrespondenceDataStructureIterator
FloodFilledFunctionConditionalConstIterator
FloodFilledImageFunctionConditionalConstIterator
FloodFilledImageFunctionConditionalIterator
FloodFilledSpatialFunctionConditionalConstIterator
FloodFilledSpatialFunctionConditionalIterator
ImageConstIterator
ImageConstIteratorWithIndex
ImageIterator
ImageIteratorWithIndex
ImageLinearConstIteratorWithIndex
ImageLinearIteratorWithIndex
ImageRandomConstIteratorWithIndex
ImageRandomIteratorWithIndex
ImageRegionConstIterator
ImageRegionConstIteratorWithIndex
ImageRegionExclusionConstIteratorWithIndex
ImageRegionExclusionIteratorWithIndex
ImageRegionIterator
ImageRegionIteratorWithIndex
ImageRegionReverseConstIterator
ImageRegionReverseIterator
ImageReverseConstIterator
ImageReverseIterator
ImageSliceConstIteratorWithIndex
ImageSliceIteratorWithIndex
NeighborhoodIterator
PathConstIterator
PathIterator
ShapedNeighborhoodIterator
SliceIterator
ImageConstIteratorWithIndex
ImageRegionRange
ImageRegionIndexRange
ITK Sphinx Examples:
Examples
Examples/Filtering/DiffusionTensor3DReconstructionImageFilter.cxx, Examples/Filtering/GaussianBlurImageFunction.cxx, Examples/Iterators/ImageRegionIterator.cxx, Examples/Iterators/NeighborhoodIterators1.cxx, Examples/Iterators/NeighborhoodIterators2.cxx, Examples/Iterators/NeighborhoodIterators3.cxx, Examples/Iterators/NeighborhoodIterators4.cxx, Examples/Iterators/NeighborhoodIterators5.cxx, Examples/Iterators/ShapedNeighborhoodIterators1.cxx, Examples/Iterators/ShapedNeighborhoodIterators2.cxx, Examples/RegistrationITKv4/BSplineWarping1.cxx, Examples/RegistrationITKv4/BSplineWarping2.cxx, Examples/RegistrationITKv4/DeformableRegistration12.cxx, Examples/RegistrationITKv4/DeformableRegistration13.cxx, Examples/RegistrationITKv4/DeformableRegistration14.cxx, Examples/RegistrationITKv4/DeformableRegistration15.cxx, Examples/RegistrationITKv4/DeformableRegistration2.cxx, Examples/RegistrationITKv4/DeformableRegistration5.cxx, Examples/RegistrationITKv4/ThinPlateSplineWarp.cxx, Examples/Segmentation/GibbsPriorImageFilter1.cxx, Examples/SpatialObjects/ImageMaskSpatialObject.cxx, Examples/SpatialObjects/ImageSpatialObject.cxx, Examples/Statistics/BayesianClassifierInitializer.cxx, SphinxExamples/src/Core/Common/DeepCopyImage/Code.cxx, SphinxExamples/src/Core/Common/FilterAndParallelizeImageRegion/Code.cxx, SphinxExamples/src/Core/Common/ImageRegionOverlap/Code.cxx, SphinxExamples/src/Core/Common/IterateLineThroughImageWithoutWriteAccess/Code.cxx, SphinxExamples/src/Core/Common/IterateRegionWithWriteAccess/Code.cxx, SphinxExamples/src/Core/Common/MakeOutOfBoundsPixelsReturnConstValue/Code.cxx, SphinxExamples/src/Core/Common/MakePartOfImageTransparent/Code.cxx, SphinxExamples/src/Core/Common/StoreNonPixelDataInImage/Code.cxx, SphinxExamples/src/Core/Common/UseParallelizeImageRegion/Code.cxx, SphinxExamples/src/Core/Common/WatchAFilter/Code.cxx, SphinxExamples/src/Core/ImageAdaptors/AddConstantToPixelsWithoutDuplicatingImage/Code.cxx, SphinxExamples/src/Core/ImageAdaptors/ExtractChannelOfImageWithMultipleComponents/Code.cxx, SphinxExamples/src/Core/ImageAdaptors/PresentImageAfterOperation/Code.cxx, SphinxExamples/src/Core/ImageAdaptors/ProcessNthComponentOfVectorImage/Code.cxx, SphinxExamples/src/Core/ImageAdaptors/ViewComponentVectorImageAsScaleImage/Code.cxx, SphinxExamples/src/Core/ImageFunction/ComputeMedianOfImageAtPixel/Code.cxx, SphinxExamples/src/Filtering/Convolution/ConvolveImageWithKernel/Code.cxx, SphinxExamples/src/Filtering/Convolution/NormalizedCorrelationOfMaskedImage/Code.cxx, SphinxExamples/src/Filtering/Convolution/NormalizedCorrelationUsingFFT/Code.cxx, SphinxExamples/src/Filtering/Convolution/NormalizedCorrelationUsingFFTWithMaskImages/Code.cxx, SphinxExamples/src/Filtering/ImageCompare/AbsValueOfTwoImages/Code.cxx, SphinxExamples/src/Filtering/ImageCompare/SquaredDifferenceOfTwoImages/Code.cxx, SphinxExamples/src/Filtering/ImageCompose/ComposeVectorFromThreeScalarImages/Code.cxx, SphinxExamples/src/Filtering/ImageFilterBase/ApplyKernelToEveryPixelInNonZeroImage/Code.cxx, SphinxExamples/src/Filtering/ImageFilterBase/ComputeLocalNoise/Code.cxx, SphinxExamples/src/Filtering/ImageFusion/ColorBoundariesOfRegions/Code.cxx, SphinxExamples/src/Filtering/ImageFusion/ColorLabeledRegions/Code.cxx, SphinxExamples/src/Filtering/ImageFusion/OverlayLabelMapOnImage/Code.cxx, SphinxExamples/src/Filtering/ImageGradient/GradientOfVectorImage/Code.cxx, SphinxExamples/src/Filtering/ImageGrid/PadImageByWrapping/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/AbsValueOfImage/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/AddConstantToEveryPixel/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/BinaryANDTwoImages/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/BinaryORTwoImages/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/BinaryXORTwoImages/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/CompareTwoImagesAndSetOutputPixelToMax/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/CompareTwoImagesAndSetOutputPixelToMin/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/IntensityWindowing/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/InverseOfMaskToImage/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/MaskImage/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/SquareEveryPixel/Code.cxx, SphinxExamples/src/Filtering/ImageIntensity/SubtractConstantFromEveryPixel/Code.cxx, SphinxExamples/src/Filtering/ImageStatistics/StatisticalPropertiesOfRegions/Code.cxx, SphinxExamples/src/Filtering/LabelMap/ConvertLabelMapToImage/Code.cxx, SphinxExamples/src/Filtering/LabelMap/InvertImageUsingBinaryNot/Code.cxx, SphinxExamples/src/Filtering/LabelMap/KeepRegionsAboveLevel/Code.cxx, SphinxExamples/src/Filtering/LabelMap/KeepRegionsThatMeetSpecific/Code.cxx, SphinxExamples/src/Filtering/LabelMap/LabelBinaryRegionsAndGetProperties/Code.cxx, SphinxExamples/src/Filtering/LabelMap/LabelBinaryRegionsInImage/Code.cxx, SphinxExamples/src/Filtering/Thresholding/SeparateGroundUsingOtsu/Code.cxx, SphinxExamples/src/IO/TIFF/WriteATIFFImage/Code.cxx, SphinxExamples/src/Nonunit/Review/GeometricPropertiesOfRegion/Code.cxx, SphinxExamples/src/Numerics/Statistics/ComputeHistogramOfMaskedRegion/Code.cxx, SphinxExamples/src/Numerics/Statistics/DistributionOfPixelsUsingGMM/Code.cxx, SphinxExamples/src/Registration/Common/RegisterImageToAnotherUsingLandmarks/Code.cxx, SphinxExamples/src/Segmentation/Classifiers/ClusterPixelsInGrayscaleImage/Code.cxx, SphinxExamples/src/Segmentation/Classifiers/KMeansClusterOfPixelsInImage/Code.cxx, SphinxExamples/src/Segmentation/ConnectedComponents/AssignContiguousLabelsToConnectedRegions/Code.cxx, and SphinxExamples/src/Segmentation/Watersheds/MorphologicalWatershedSegmentation/Code.cxx.

Definition at line 80 of file itkImageRegionIterator.h.

+ Inheritance diagram for itk::ImageRegionIterator< TImage >:
+ Collaboration diagram for itk::ImageRegionIterator< TImage >:

Public Types

using AccessorType = typename TImage::AccessorType
 
using ImageType = TImage
 
using IndexType = typename TImage::IndexType
 
using InternalPixelType = typename TImage::InternalPixelType
 
using OffsetType = typename TImage::OffsetType
 
using PixelContainer = typename TImage::PixelContainer
 
using PixelContainerPointer = typename PixelContainer::Pointer
 
using PixelType = typename TImage::PixelType
 
using RegionType = typename TImage::RegionType
 
using Self = ImageRegionIterator
 
using SizeType = typename TImage::SizeType
 
using Superclass = ImageRegionConstIterator< TImage >
 
- Public Types inherited from itk::ImageRegionConstIterator< TImage >
using AccessorType = typename TImage::AccessorType
 
using ImageType = TImage
 
using IndexType = typename TImage::IndexType
 
using InternalPixelType = typename TImage::InternalPixelType
 
using OffsetType = typename TImage::OffsetType
 
using PixelContainer = typename TImage::PixelContainer
 
using PixelContainerPointer = typename PixelContainer::Pointer
 
using PixelType = typename TImage::PixelType
 
using RegionType = typename TImage::RegionType
 
using Self = ImageRegionConstIterator
 
using SizeType = typename TImage::SizeType
 
using Superclass = ImageConstIterator< TImage >
 
- Public Types inherited from itk::ImageConstIterator< TImage >
using AccessorFunctorType = typename TImage::AccessorFunctorType
 
using AccessorType = typename TImage::AccessorType
 
using ImageType = TImage
 
using IndexType = typename TImage::IndexType
 
using InternalPixelType = typename TImage::InternalPixelType
 
using OffsetType = typename TImage::OffsetType
 
using PixelContainer = typename TImage::PixelContainer
 
using PixelContainerPointer = typename PixelContainer::Pointer
 
using PixelType = typename TImage::PixelType
 
using RegionType = typename TImage::RegionType
 
using Self = ImageConstIterator
 
using SizeType = typename TImage::SizeType
 

Public Member Functions

 ImageRegionIterator ()=default
 
 ImageRegionIterator (const ImageIterator< TImage > &it)
 
 ImageRegionIterator (ImageType *ptr, const RegionType &region)
 
void Set (const PixelType &value) const
 
PixelTypeValue ()
 
- Public Member Functions inherited from itk::ImageRegionConstIterator< TImage >
const char * GetNameOfClass () const override
 
void GoToBegin ()
 
void GoToEnd ()
 
 ImageRegionConstIterator (const ImageConstIterator< TImage > &it)
 
 ImageRegionConstIterator (const ImageIterator< TImage > &it)
 
 ImageRegionConstIterator ()
 
 ImageRegionConstIterator (const ImageType *ptr, const RegionType &region)
 
void SetIndex (const IndexType &ind) override
 
Selfoperator++ ()
 
Selfoperator-- ()
 
- Public Member Functions inherited from itk::ImageConstIterator< TImage >
PixelType Get () const
 
const ImageTypeGetImage () const
 
const IndexType GetIndex () const
 
const RegionTypeGetRegion () const
 
void GoToBegin ()
 
void GoToEnd ()
 
 ImageConstIterator (const Self &it)
 
bool IsAtBegin () const
 
bool IsAtEnd () const
 
 ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION (Self)
 
bool operator< (const Self &it) const
 
bool operator<= (const Self &it) const
 
bool operator== (const Self &it) const
 
bool operator> (const Self &it) const
 
bool operator>= (const Self &it) const
 
virtual void SetRegion (const RegionType &region)
 
const PixelTypeValue () const
 
virtual ~ImageConstIterator ()=default
 
 ImageConstIterator ()
 
 ImageConstIterator (const ImageType *ptr, const RegionType &region)
 
Selfoperator= (const Self &it)
 

Protected Member Functions

 ImageRegionIterator (const ImageRegionConstIterator< TImage > &it)
 
Selfoperator= (const ImageRegionConstIterator< TImage > &it)
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::ImageConstIterator< TImage >
static unsigned int GetImageIteratorDimension ()
 
- Static Public Attributes inherited from itk::ImageRegionConstIterator< TImage >
static constexpr unsigned int ImageIteratorDimension = Superclass::ImageIteratorDimension
 
- Static Public Attributes inherited from itk::ImageConstIterator< TImage >
static constexpr unsigned int ImageIteratorDimension = TImage::ImageDimension
 
- Protected Attributes inherited from itk::ImageRegionConstIterator< TImage >
OffsetValueType m_SpanBeginOffset {}
 
OffsetValueType m_SpanEndOffset {}
 
- Protected Attributes inherited from itk::ImageConstIterator< TImage >
OffsetValueType m_BeginOffset {}
 
const InternalPixelTypem_Buffer {}
 
OffsetValueType m_EndOffset {}
 
TImage::ConstWeakPointer m_Image {}
 
OffsetValueType m_Offset {}
 
AccessorType m_PixelAccessor {}
 
AccessorFunctorType m_PixelAccessorFunctor {}
 
RegionType m_Region {}
 

Member Typedef Documentation

◆ AccessorType

template<typename TImage>
using itk::ImageConstIterator< TImage >::AccessorType = typename TImage::AccessorType

Accessor type that convert data between internal and external representations.

Definition at line 128 of file itkImageConstIterator.h.

◆ ImageType

template<typename TImage>
using itk::ImageConstIterator< TImage >::ImageType = TImage

Image type alias support

Definition at line 112 of file itkImageConstIterator.h.

◆ IndexType

template<typename TImage>
using itk::ImageConstIterator< TImage >::IndexType = typename TImage::IndexType

Index type alias support

Definition at line 100 of file itkImageConstIterator.h.

◆ InternalPixelType

template<typename TImage>
using itk::ImageConstIterator< TImage >::InternalPixelType = typename TImage::InternalPixelType

Internal Pixel Type

Definition at line 121 of file itkImageConstIterator.h.

◆ OffsetType

template<typename TImage>
using itk::ImageConstIterator< TImage >::OffsetType = typename TImage::OffsetType

Offset type alias support

Definition at line 106 of file itkImageConstIterator.h.

◆ PixelContainer

template<typename TImage>
using itk::ImageConstIterator< TImage >::PixelContainer = typename TImage::PixelContainer

PixelContainer type alias support. Used to refer to the container for the pixel data. While this was already typedef'ed in the superclass it needs to be redone here for this subclass to compile properly with gcc.

Definition at line 117 of file itkImageConstIterator.h.

◆ PixelContainerPointer

template<typename TImage>
using itk::ImageConstIterator< TImage >::PixelContainerPointer = typename PixelContainer::Pointer

Definition at line 118 of file itkImageConstIterator.h.

◆ PixelType

template<typename TImage>
using itk::ImageConstIterator< TImage >::PixelType = typename TImage::PixelType

External Pixel Type

Definition at line 124 of file itkImageConstIterator.h.

◆ RegionType

template<typename TImage>
using itk::ImageConstIterator< TImage >::RegionType = typename TImage::RegionType

Region type alias support

Definition at line 109 of file itkImageConstIterator.h.

◆ Self

template<typename TImage>
using itk::ImageRegionIterator< TImage >::Self = ImageRegionIterator

Standard class type aliases.

Definition at line 84 of file itkImageRegionIterator.h.

◆ SizeType

template<typename TImage>
using itk::ImageConstIterator< TImage >::SizeType = typename TImage::SizeType

Size type alias support

Definition at line 103 of file itkImageConstIterator.h.

◆ Superclass

template<typename TImage>
using itk::ImageRegionIterator< TImage >::Superclass = ImageRegionConstIterator<TImage>

Definition at line 85 of file itkImageRegionIterator.h.

Constructor & Destructor Documentation

◆ ImageRegionIterator() [1/4]

template<typename TImage>
itk::ImageRegionIterator< TImage >::ImageRegionIterator ( )
default

Default constructor. Needed since we provide a cast constructor.

◆ ImageRegionIterator() [2/4]

template<typename TImage>
itk::ImageRegionIterator< TImage >::ImageRegionIterator ( ImageType ptr,
const RegionType region 
)

Constructor establishes an iterator to walk a particular image and a particular region of that image.

◆ ImageRegionIterator() [3/4]

template<typename TImage>
itk::ImageRegionIterator< TImage >::ImageRegionIterator ( const ImageIterator< TImage > &  it)

Constructor that can be used to cast from an ImageIterator to an ImageRegionIterator. Many routines return an ImageIterator but for a particular task, you may want an ImageRegionIterator. Rather than provide overloaded APIs that return different types of Iterators, itk returns ImageIterators and uses constructors to cast from an ImageIterator to a ImageRegionIterator.

◆ ImageRegionIterator() [4/4]

template<typename TImage>
itk::ImageRegionIterator< TImage >::ImageRegionIterator ( const ImageRegionConstIterator< TImage > &  it)
protected

the construction from a const iterator is declared protected in order to enforce const correctness.

Member Function Documentation

◆ operator=()

template<typename TImage>
Self& itk::ImageRegionIterator< TImage >::operator= ( const ImageRegionConstIterator< TImage > &  it)
protected

the construction from a const iterator is declared protected in order to enforce const correctness.

◆ Set()

template<typename TImage>
void itk::ImageRegionIterator< TImage >::Set ( const PixelType value) const
inline

◆ Value()

template<typename TImage>
PixelType& itk::ImageRegionIterator< TImage >::Value ( )
inline

Return a reference to the pixel This method will provide the fastest access to pixel data, but it will NOT support ImageAdaptors.

Definition at line 125 of file itkImageRegionIterator.h.

Referenced by itk::GradientImageFilter< TInputImage, TOperatorValueType, TOutputValueType, TOutputImageType >::SetOutputPixel().


The documentation for this class was generated from the following file: