go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkNDImageTemplate.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkNDImageTemplate_h
19 #define __itkNDImageTemplate_h
20 
21 #include "itkNDImageBase.h"
22 #include "itkImageFileReader.h"
23 
24 namespace itk
25 {
26 
44 template< class TPixel, unsigned int VDimension >
45 class NDImageTemplate : public NDImageBase< TPixel >
46 {
47 public:
48 
53  typedef SmartPointer< const Self > ConstPointer;
54 
56  itkNewMacro( Self );
57 
59  itkTypeMacro( NDImageTemplate, NDImageBase );
60 
65  itkStaticConstMacro( Dimension, unsigned int, VDimension );
66 
69 
71  typedef typename Superclass::PixelType PixelType;
72  typedef typename Superclass::ValueType ValueType;
78 
84 
86  typedef typename Superclass::IndexType IndexType;
87  typedef typename Superclass::SizeType SizeType;
89  typedef typename Superclass::PointType PointType;
91 
94  typedef typename ImageType::Pointer ImagePointer;
96  typedef typename WriterType::Pointer WriterPointer;
97  typedef ImageFileReader< ImageType > ReaderType;
98  typedef typename ReaderType::Pointer ReaderPointer;
99 
101  typedef typename ImageType::IndexType IndexTypeD;
102  typedef typename ImageType::SizeType SizeTypeD;
103  typedef typename ImageType::SpacingType SpacingTypeD;
104  typedef typename ImageType::PointType PointTypeD;
105  typedef typename ImageType::OffsetType OffsetTypeD;
106 
107  virtual void SetRegions( SizeType size );
108 
109  virtual void SetRequestedRegion( DataObject * data );
110 
111  virtual void Allocate( void );
112 
113  virtual void Initialize( void );
114 
115  virtual void FillBuffer( const TPixel & value );
116 
117  virtual void SetPixel( const IndexType & index, const TPixel & value );
118 
119  virtual const TPixel & GetPixel( const IndexType & index ) const;
120 
121  virtual TPixel & GetPixel( const IndexType & index );
122 
123  virtual TPixel * GetBufferPointer();
124 
125  virtual const TPixel * GetBufferPointer() const;
126 
128 
129  virtual const PixelContainer * GetPixelContainer() const;
130 
131  virtual void SetPixelContainer( PixelContainer * container );
132 
134 
135  virtual const AccessorType GetPixelAccessor( void ) const;
136 
137  virtual void SetSpacing( const SpacingType & spacing );
138 
139  virtual void SetOrigin( const PointType & origin );
140 
141  virtual SpacingType GetSpacing( void );
142 
143  virtual PointType GetOrigin( void );
144 
147  virtual void CopyInformation( const DataObject * data );
148 
149  virtual const OffsetValueType * GetOffsetTable() const;
150 
151  virtual OffsetValueType ComputeOffset( const IndexType & ind ) const;
152 
153  virtual IndexType ComputeIndex( OffsetValueType offset ) const;
154 
158  virtual unsigned int ImageDimension( void );
159 
160  virtual unsigned int GetImageDimension( void );
161 
163  itkGetObjectMacro( Image, DataObject );
164  itkGetObjectMacro( Writer, ProcessObject );
165  itkGetObjectMacro( Reader, ProcessObject );
166 
168  virtual void Write( void );
169 
171  virtual void Read( void );
172 
174  virtual void CreateNewImage( void );
175 
176  virtual void SetImageIOWriter( ImageIOBase * _arg );
177 
178  virtual ImageIOBase * GetImageIOWriter( void );
179 
180  virtual void SetImageIOReader( ImageIOBase * _arg );
181 
182  virtual ImageIOBase * GetImageIOReader( void );
183 
185  virtual void SetOutputFileName( const char * name );
186 
187  virtual void SetInputFileName( const char * name );
188 
189  virtual const char * GetOutputFileName( void );
190 
191  virtual const char * GetInputFileName( void );
192 
193 protected:
194 
196  virtual ~NDImageTemplate(){}
197 
198  //virtual void PrintSelf(std::ostream& os, Indent indent) const;
199 
203 
204  template< class TIn, class TOut >
205  class ConvertToDynamicArray
206  {
207 public:
208 
209  inline static TOut DO( const TIn & in )
210  {
211  TOut out( VDimension );
212 
213  for( unsigned int i = 0; i < VDimension; i++ )
214  {
215  out[ i ] = in[ i ];
216  }
217  return out;
218  }
219 
220 
221  };
222 
223  template< class TIn, class TOut >
224  class ConvertToStaticArray
225  {
226 public:
227 
228  inline static TOut DO( const TIn & in )
229  {
230  TOut out;
231 
232  for( unsigned int i = 0; i < VDimension; i++ )
233  {
234  out[ i ] = in[ i ];
235  }
236  return out;
237  }
238 
239 
240  };
241 
242 private:
243 
244  NDImageTemplate( const Self & ); // purposely not implemented
245  void operator=( const Self & ); // purposely not implemented
246 
247 };
248 
249 } // end namespace itk
250 
251 #ifndef ITK_MANUAL_INSTANTIATION
252 #include "itkNDImageTemplate.hxx"
253 #endif
254 
255 #endif // end #ifndef __itkNDImageTemplate_h
itk::NDImageTemplate::GetOrigin
virtual PointType GetOrigin(void)
itk::NDImageTemplate::SetSpacing
virtual void SetSpacing(const SpacingType &spacing)
itk::NDImageBase::DataObjectPointer
DataObjectType::Pointer DataObjectPointer
Definition: itkNDImageBase.h:77
itk::NDImageBase::IndexValueType
ImageBase< 2 >::IndexValueType IndexValueType
Definition: itkNDImageBase.h:93
ImageFileWriter
itk::NDImageTemplate::ImageType
Image< TPixel, VDimension > ImageType
Definition: itkNDImageTemplate.h:93
itk::NDImageBase::OffsetType
Array< OffsetValueType > OffsetType
Definition: itkNDImageBase.h:106
itk::NDImageBase::SizeType
Array< SizeValueType > SizeType
Definition: itkNDImageBase.h:103
itk::NDImageTemplate::Superclass
NDImageBase< TPixel > Superclass
Definition: itkNDImageTemplate.h:51
itk::NDImageBase::PixelType
Image< TPixel, 2 >::PixelType PixelType
Definition: itkNDImageBase.h:80
itk::NDImageTemplate::SetRequestedRegion
virtual void SetRequestedRegion(DataObject *data)
itk::NDImageTemplate::GetPixelContainer
virtual PixelContainer * GetPixelContainer()
itk::NDImageBase
An image whose dimension can be specified at runtime.
Definition: itkNDImageBase.h:59
itk::NDImageTemplate::GetPixelAccessor
virtual AccessorType GetPixelAccessor(void)
itk::NDImageTemplate::GetPixelContainer
virtual const PixelContainer * GetPixelContainer() const
itk::NDImageBase::SpacingValueType
Spacing2DType::ValueType SpacingValueType
Definition: itkNDImageBase.h:91
itk::NDImageTemplate::ReaderPointer
ReaderType::Pointer ReaderPointer
Definition: itkNDImageTemplate.h:98
SmartPointer< Self >
itk::NDImageTemplate::PointValueType
Superclass::PointValueType PointValueType
Definition: itkNDImageTemplate.h:80
itk::NDImageTemplate::PixelContainer
Superclass::PixelContainer PixelContainer
Definition: itkNDImageTemplate.h:75
itk::NDImageTemplate::WriterType
ImageFileWriter< ImageType > WriterType
Definition: itkNDImageTemplate.h:95
itk::NDImageTemplate::GetBufferPointer
virtual TPixel * GetBufferPointer()
itk::NDImageTemplate::SetImageIOWriter
virtual void SetImageIOWriter(ImageIOBase *_arg)
itk::NDImageTemplate::CopyInformation
virtual void CopyInformation(const DataObject *data)
itk::NDImageTemplate::ValueType
Superclass::ValueType ValueType
Definition: itkNDImageTemplate.h:72
itk::NDImageTemplate::GetBufferPointer
virtual const TPixel * GetBufferPointer() const
ImageIOBase
itk::NDImageTemplate::IndexTypeD
ImageType::IndexType IndexTypeD
Definition: itkNDImageTemplate.h:101
itk::NDImageBase::InternalPixelType
Image< TPixel, 2 >::InternalPixelType InternalPixelType
Definition: itkNDImageBase.h:82
itk::NDImageTemplate::ReaderType
ImageFileReader< ImageType > ReaderType
Definition: itkNDImageTemplate.h:97
itk::NDImageTemplate::PointType
Superclass::PointType PointType
Definition: itkNDImageTemplate.h:89
itk::NDImageTemplate
This class is a specialization of the NDImageBase, which acts as a wrap around an itk::Image.
Definition: itkNDImageTemplate.h:46
itk::NDImageTemplate::IndexValueType
Superclass::IndexValueType IndexValueType
Definition: itkNDImageTemplate.h:81
Image
itk::NDImageTemplate::GetPixel
virtual TPixel & GetPixel(const IndexType &index)
itk::NDImageTemplate::SetOrigin
virtual void SetOrigin(const PointType &origin)
itk::NDImageTemplate::m_Reader
ReaderPointer m_Reader
Definition: itkNDImageTemplate.h:202
itk::NDImageTemplate::DataObjectPointer
Superclass::DataObjectPointer DataObjectPointer
Definition: itkNDImageTemplate.h:68
itk::NDImageTemplate::OffsetType
Superclass::OffsetType OffsetType
Definition: itkNDImageTemplate.h:90
itkNDImageBase.h
itk::NDImageTemplate::FillBuffer
virtual void FillBuffer(const TPixel &value)
itk::NDImageTemplate::operator=
void operator=(const Self &)
itk::NDImageBase::PixelContainerPointer
Image< TPixel, 2 >::PixelContainerPointer PixelContainerPointer
Definition: itkNDImageBase.h:85
itk::NDImageTemplate::SizeType
Superclass::SizeType SizeType
Definition: itkNDImageTemplate.h:87
itk::NDImageTemplate::ComputeOffset
virtual OffsetValueType ComputeOffset(const IndexType &ind) const
itk::NDImageTemplate::SetImageIOReader
virtual void SetImageIOReader(ImageIOBase *_arg)
itk::NDImageTemplate::IndexType
Superclass::IndexType IndexType
Definition: itkNDImageTemplate.h:86
itk::NDImageBase::PointType
Array< PointValueType > PointType
Definition: itkNDImageBase.h:105
itk::NDImageTemplate::GetImageIOWriter
virtual ImageIOBase * GetImageIOWriter(void)
itk::NDImageTemplate::GetOffsetTable
virtual const OffsetValueType * GetOffsetTable() const
itk::NDImageTemplate::PixelContainerConstPointer
Superclass::PixelContainerConstPointer PixelContainerConstPointer
Definition: itkNDImageTemplate.h:77
itk::NDImageBase::OffsetValueType
ImageBase< 2 >::OffsetValueType OffsetValueType
Definition: itkNDImageBase.h:95
itk::NDImageTemplate::itkStaticConstMacro
itkStaticConstMacro(Dimension, unsigned int, VDimension)
itk::NDImageTemplate::DataObjectType
Superclass::DataObjectType DataObjectType
Definition: itkNDImageTemplate.h:67
itk::NDImageBase::AccessorType
Image< TPixel, 2 >::AccessorType AccessorType
Definition: itkNDImageBase.h:83
itk::NDImageTemplate::PixelContainerPointer
Superclass::PixelContainerPointer PixelContainerPointer
Definition: itkNDImageTemplate.h:76
itk::NDImageTemplate::NDImageTemplate
NDImageTemplate()
itk::NDImageTemplate::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkNDImageTemplate.h:53
itk::NDImageTemplate::Allocate
virtual void Allocate(void)
itk::NDImageTemplate::SizeTypeD
ImageType::SizeType SizeTypeD
Definition: itkNDImageTemplate.h:102
itk::NDImageTemplate::InternalPixelType
Superclass::InternalPixelType InternalPixelType
Definition: itkNDImageTemplate.h:73
itk::NDImageBase::PixelContainer
Image< TPixel, 2 >::PixelContainer PixelContainer
Definition: itkNDImageBase.h:84
itk::NDImageTemplate::m_Image
ImagePointer m_Image
Definition: itkNDImageTemplate.h:200
itk::NDImageTemplate::PixelType
Superclass::PixelType PixelType
Definition: itkNDImageTemplate.h:71
itk::NDImageTemplate::ImageDimension
virtual unsigned int ImageDimension(void)
itk::NDImageTemplate::m_Writer
WriterPointer m_Writer
Definition: itkNDImageTemplate.h:201
itk::NDImageTemplate::Pointer
SmartPointer< Self > Pointer
Definition: itkNDImageTemplate.h:52
itk::NDImageTemplate::GetSpacing
virtual SpacingType GetSpacing(void)
itk::NDImageTemplate::SetPixelContainer
virtual void SetPixelContainer(PixelContainer *container)
itk::NDImageTemplate::CreateNewImage
virtual void CreateNewImage(void)
itk::NDImageBase::PointValueType
Point2DType::ValueType PointValueType
Definition: itkNDImageBase.h:92
itk::NDImageTemplate::SetPixel
virtual void SetPixel(const IndexType &index, const TPixel &value)
itk::NDImageTemplate::AccessorType
Superclass::AccessorType AccessorType
Definition: itkNDImageTemplate.h:74
itk::NDImageBase::SizeValueType
ImageBase< 2 >::SizeValueType SizeValueType
Definition: itkNDImageBase.h:94
itk::NDImageTemplate::PointTypeD
ImageType::PointType PointTypeD
Definition: itkNDImageTemplate.h:104
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::NDImageTemplate::OffsetTypeD
ImageType::OffsetType OffsetTypeD
Definition: itkNDImageTemplate.h:105
itk::NDImageTemplate::SetRegions
virtual void SetRegions(SizeType size)
itk::NDImageTemplate::SetOutputFileName
virtual void SetOutputFileName(const char *name)
itk::NDImageTemplate::GetImageIOReader
virtual ImageIOBase * GetImageIOReader(void)
itk::NDImageTemplate::ImagePointer
ImageType::Pointer ImagePointer
Definition: itkNDImageTemplate.h:94
itk::NDImageBase::SpacingType
Array< SpacingValueType > SpacingType
Definition: itkNDImageBase.h:104
itk::NDImageTemplate::GetInputFileName
virtual const char * GetInputFileName(void)
itk::NDImageBase::IndexType
Array< IndexValueType > IndexType
Definition: itkNDImageBase.h:102
itk::NDImageTemplate::NDImageTemplate
NDImageTemplate(const Self &)
itk::NDImageTemplate::Read
virtual void Read(void)
itk::NDImageTemplate::SpacingType
Superclass::SpacingType SpacingType
Definition: itkNDImageTemplate.h:88
itk::NDImageTemplate::Write
virtual void Write(void)
itk::NDImageTemplate::SpacingValueType
Superclass::SpacingValueType SpacingValueType
Definition: itkNDImageTemplate.h:79
itk::NDImageTemplate::Self
NDImageTemplate Self
Definition: itkNDImageTemplate.h:50
itk::NDImageTemplate::SizeValueType
Superclass::SizeValueType SizeValueType
Definition: itkNDImageTemplate.h:82
itk::NDImageTemplate::GetImageDimension
virtual unsigned int GetImageDimension(void)
itk::NDImageBase::ValueType
Image< TPixel, 2 >::ValueType ValueType
Definition: itkNDImageBase.h:81
itk::NDImageBase::DataObjectType
DataObject DataObjectType
Definition: itkNDImageBase.h:74
itk::NDImageTemplate::GetPixel
virtual const TPixel & GetPixel(const IndexType &index) const
itk::NDImageBase::PixelContainerConstPointer
Image< TPixel, 2 >::PixelContainerConstPointer PixelContainerConstPointer
Definition: itkNDImageBase.h:86
itk::NDImageTemplate::GetPixelAccessor
virtual const AccessorType GetPixelAccessor(void) const
itk::NDImageTemplate::OffsetValueType
Superclass::OffsetValueType OffsetValueType
Definition: itkNDImageTemplate.h:83
itk::NDImageTemplate::SpacingTypeD
ImageType::SpacingType SpacingTypeD
Definition: itkNDImageTemplate.h:103
itk::NDImageTemplate::~NDImageTemplate
virtual ~NDImageTemplate()
Definition: itkNDImageTemplate.h:196
itk::NDImageTemplate::SetInputFileName
virtual void SetInputFileName(const char *name)
itk::NDImageTemplate::Initialize
virtual void Initialize(void)
itk::NDImageTemplate::WriterPointer
WriterType::Pointer WriterPointer
Definition: itkNDImageTemplate.h:96
itk::NDImageTemplate::GetOutputFileName
virtual const char * GetOutputFileName(void)
itk::NDImageTemplate::ComputeIndex
virtual IndexType ComputeIndex(OffsetValueType offset) const


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo