18 #ifndef itkImageIORegion_h 19 #define itkImageIORegion_h 78 unsigned int GetImageDimension()
const;
83 unsigned int GetRegionDimension()
const;
86 virtual RegionType GetRegionType() const ITK_OVERRIDE;
102 ImageIORegion(const Self & region);
106 void operator=(const Self & region);
109 void SetIndex(const IndexType & index);
112 const IndexType & GetIndex() const;
113 IndexType & GetModifiableIndex();
118 void SetSize(const SizeType & size);
121 const SizeType & GetSize() const;
122 SizeType & GetModifiableSize();
128 SizeValueType GetSize(
unsigned long i) const;
130 IndexValueType GetIndex(
unsigned long i) const;
132 void SetSize(const
unsigned long i, SizeValueType size);
134 void SetIndex(const
unsigned long i, IndexValueType idx);
137 bool operator==(const Self & region) const;
140 bool operator!=(const Self & region) const;
143 bool IsInside(const IndexType & index) const;
146 bool IsInside(const Self & region) const;
150 SizeValueType GetNumberOfPixels() const;
157 virtual
void PrintSelf(
std::ostream & os,
Indent indent) const ITK_OVERRIDE;
160 unsigned int m_ImageDimension;
167 extern ITKCommon_EXPORT
std::ostream & operator<<(
std::ostream & os, const ImageIORegion & region);
175 template<
unsigned int VDimension >
185 static void Convert(
const ImageRegionType & inImageRegion,
186 ImageIORegionType & outIORegion,
187 const ImageIndexType & largestRegionIndex)
201 const unsigned int imageDimension = VDimension;
203 const unsigned int minDimension = std::min( ioDimension, imageDimension );
205 const ImageSizeType & size = inImageRegion.
GetSize();
206 const ImageIndexType & index = inImageRegion.
GetIndex();
208 for(
unsigned int i = 0; i < minDimension; ++i )
210 outIORegion.
SetSize(i, size[i]);
211 outIORegion.
SetIndex(i, index[i] - largestRegionIndex[i]);
217 for(
unsigned int k = minDimension; k < ioDimension; ++k )
224 static void Convert(
const ImageIORegionType & inIORegion,
225 ImageRegionType & outImageRegion,
226 const ImageIndexType & largestRegionIndex)
229 ImageIndexType index;
246 const unsigned int imageDimension = VDimension;
248 const unsigned int minDimension = std::min( ioDimension, imageDimension );
250 for(
unsigned int i = 0; i < minDimension; ++i )
252 size[i] = inIORegion.
GetSize(i);
253 index[i] = inIORegion.
GetIndex(i) + largestRegionIndex[i];
void SetSize(const SizeType &size)
static void Convert(const ImageIORegionType &inIORegion, ImageRegionType &outImageRegion, const ImageIndexType &largestRegionIndex)
::itk::IndexValueType IndexValueType
const IndexType & GetIndex() const
::itk::SizeValueType SizeValueType
An ImageIORegion represents a structured region of data.
const IndexType & GetIndex() const
signed long OffsetValueType
signed long IndexValueType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
unsigned long SizeValueType
static void Convert(const ImageRegionType &inImageRegion, ImageIORegionType &outIORegion, const ImageIndexType &largestRegionIndex)
Helper class for converting ImageRegions into ImageIORegions and back.
ImageRegion< VDimension > ImageRegionType
unsigned int GetImageDimension() const
void SetIndex(const IndexType &index)
void Fill(IndexValueType value)
const SizeType & GetSize() const
ImageRegionType::IndexType ImageIndexType
Superclass::RegionType RegionType
A region represents some portion or piece of data.
ImageIORegion ImageIORegionType
void SetSize(const SizeType &size)
const SizeType & GetSize() const
::itk::OffsetValueType OffsetValueType
Control indentation during Print() invocation.
std::vector< SizeValueType > SizeType
std::vector< IndexValueType > IndexType
ImageRegionType::SizeType ImageSizeType
void SetIndex(const IndexType &index)
void Fill(SizeValueType value)