ITK  5.4.0
Insight Toolkit
itkMultiphaseFiniteDifferenceImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
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  * https://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 itkMultiphaseFiniteDifferenceImageFilter_h
19 #define itkMultiphaseFiniteDifferenceImageFilter_h
20 
21 #include "itkInPlaceImageFilter.h"
23 #include "vnl/vnl_vector.h"
24 #include "itkImageRegionIterator.h"
25 
26 #include "itkListSample.h"
27 #include "itkKdTreeGenerator.h"
28 
29 namespace itk
30 {
157 template <typename TInputImage,
158  typename TFeatureImage,
159  typename TOutputImage,
160  typename TFiniteDifferenceFunction = FiniteDifferenceFunction<TOutputImage>,
161  typename TIdCell = unsigned int>
162 class ITK_TEMPLATE_EXPORT MultiphaseFiniteDifferenceImageFilter : public InPlaceImageFilter<TFeatureImage, TOutputImage>
163 {
164 public:
165  ITK_DISALLOW_COPY_AND_MOVE(MultiphaseFiniteDifferenceImageFilter);
166 
172 
174  itkOverrideGetNameOfClassMacro(MultiphaseFiniteDifferenceImageFilter);
175 
177  static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
178 
180  using InputImageType = TInputImage;
183  using InputCoordRepType = typename InputPointType::CoordRepType;
189  using InputPixelType = typename InputImageType::PixelType;
190  using InputSpacingType = typename InputImageType::SpacingType;
192 
193  using FeatureImageType = TFeatureImage;
197  using FeatureSpacingType = typename FeatureImageType::SpacingType;
199  using FeaturePixelType = typename FeatureImageType::PixelType;
200 
201  using OutputImageType = TOutputImage;
203  using OutputPixelType = typename OutputImageType::PixelType;
209 
210  using IdCellType = TIdCell;
211  using VectorIdCellType = std::vector<IdCellType>;
212 
216  using FiniteDifferenceFunctionType = TFiniteDifferenceFunction;
218  using TimeStepType = typename FiniteDifferenceFunctionType::TimeStepType;
219  using TimeStepVectorType = typename std::vector<TimeStepType>;
220  using RadiusType = typename FiniteDifferenceFunctionType::RadiusType;
221 
228 
233  virtual const FiniteDifferenceFunctionPointer
234  GetDifferenceFunction(const IdCellType & functionIndex) const
235  {
236  if (functionIndex < m_FunctionCount)
237  {
238  return (this->m_DifferenceFunctions[functionIndex]);
239  }
240  else
241  {
242  return nullptr;
243  }
244  }
251  virtual void
253  {
254  if (functionIndex < m_FunctionCount)
255  {
256  this->m_DifferenceFunctions[functionIndex] = function;
257  }
258  }
262  itkSetMacro(NumberOfIterations, unsigned int);
263  itkGetConstReferenceMacro(NumberOfIterations, unsigned int);
268  itkSetMacro(UseImageSpacing, bool);
269  itkBooleanMacro(UseImageSpacing);
270  itkGetConstReferenceMacro(UseImageSpacing, bool);
275  itkSetMacro(MaximumRMSError, double);
276  itkGetConstReferenceMacro(MaximumRMSError, double);
281  itkSetMacro(RMSChange, double);
282  itkGetConstReferenceMacro(RMSChange, double);
286  itkSetMacro(InitializedState, bool);
287  itkGetConstReferenceMacro(InitializedState, bool);
288  itkBooleanMacro(InitializedState);
293  itkSetMacro(ManualReinitialization, bool);
294  itkGetConstReferenceMacro(ManualReinitialization, bool);
295  itkBooleanMacro(ManualReinitialization);
299  itkSetMacro(ElapsedIterations, unsigned int);
300 
302  itkGetConstReferenceMacro(ElapsedIterations, unsigned int);
303 
304  void
305  SetLevelSet(const IdCellType & i, const InputImageType * levelSet)
306  {
307  m_LevelSet[i] = InputImageType::New();
308  m_LevelSet[i]->SetRequestedRegion(levelSet->GetRequestedRegion());
309  m_LevelSet[i]->SetBufferedRegion(levelSet->GetBufferedRegion());
310  m_LevelSet[i]->SetLargestPossibleRegion(levelSet->GetLargestPossibleRegion());
311  m_LevelSet[i]->Allocate();
312  m_LevelSet[i]->CopyInformation(levelSet);
313 
314  ImageRegionConstIterator<InputImageType> in(levelSet, levelSet->GetBufferedRegion());
315  ImageRegionIterator<InputImageType> cp(m_LevelSet[i], levelSet->GetBufferedRegion());
316 
317  in.GoToBegin();
318  cp.GoToBegin();
319 
320  while (!in.IsAtEnd())
321  {
322  cp.Set(in.Get());
323  ++in;
324  ++cp;
325  }
326  }
327 
328  InputImagePointer
330  {
331  if (i >= m_FunctionCount)
332  {
333  itkExceptionMacro("Request for level set #" << i << " but there are only " << m_FunctionCount);
334  }
335  else
336  {
337  return m_LevelSet[i];
338  }
339  }
340 
341  void
343  {
344  this->m_Lookup = lookup;
345  }
346 
347  void
349  {
350  this->m_KdTree = kdtree;
351  }
352 
353  void
355  {
356  m_FunctionCount = n;
357 
358  m_DifferenceFunctions.resize(m_FunctionCount, nullptr);
359 
360  RadiusType radius;
361  radius.Fill(1);
362 
363  for (unsigned int i = 0; i < this->m_FunctionCount; ++i)
364  {
365  this->m_DifferenceFunctions[i] = FiniteDifferenceFunctionType::New();
366  this->m_DifferenceFunctions[i]->Initialize(radius);
367  }
368 
369  // Initialize the images
370  m_LevelSet.resize(m_FunctionCount, nullptr);
371 
372  // Initialize the lookup table
373  this->m_Lookup.resize(m_FunctionCount);
374 
375  IdCellType k = 1;
376 
377  {
378  auto it = this->m_Lookup.begin();
379  auto _end = this->m_Lookup.end();
380  while (it != _end)
381  {
382  *it = k;
383  ++it;
384  ++k;
385  }
386  }
387  }
388 
389 protected:
391  {
392  this->m_KdTree = nullptr;
393  this->m_ElapsedIterations = 0;
394  this->m_MaximumRMSError = itk::Math::eps;
395  this->m_RMSChange = NumericTraits<double>::max();
396  this->m_UseImageSpacing = true;
397  this->m_ManualReinitialization = false;
398  this->m_InitializedState = false;
399  this->m_NumberOfIterations = NumericTraits<unsigned int>::max();
400  this->m_FunctionCount = 0;
401  this->InPlaceOff();
402  }
403 
404  ~MultiphaseFiniteDifferenceImageFilter() override = default;
405 
406  IdCellType m_FunctionCount{};
407  std::vector<InputImagePointer> m_LevelSet{};
408  VectorIdCellType m_Lookup{};
409  KdTreePointer m_KdTree{};
410 
411  unsigned int m_ElapsedIterations{};
412  double m_MaximumRMSError{};
413  double m_RMSChange{};
414  unsigned int m_NumberOfIterations{};
415 
417  std::vector<FiniteDifferenceFunctionPointer> m_DifferenceFunctions{};
418 
421  bool m_UseImageSpacing{};
422 
423  void
424  PrintSelf(std::ostream & os, Indent indent) const override;
425 
427  virtual void
428  AllocateUpdateBuffer() = 0;
429 
433  virtual void
434  ApplyUpdate(TimeStepType dt) = 0;
435 
441  virtual TimeStepType
442  CalculateChange() = 0;
443 
447  virtual void
448  CopyInputToOutput() = 0;
449 
453  void
454  GenerateData() override;
455 
467  void
468  GenerateInputRequestedRegion() override;
469 
472  virtual bool
473  Halt();
474 
484  virtual bool
485  ThreadedHalt(void * itkNotUsed(threadInfo))
486  {
487  return this->Halt();
488  }
489 
495  virtual void
497  {}
498 
505  virtual void
507  {
508  for (IdCellType i = 0; i < this->m_FunctionCount; ++i)
509  {
510  this->m_DifferenceFunctions[i]->InitializeIteration();
511  }
512  }
528  inline TimeStepType
529  ResolveTimeStep(const TimeStepVectorType & timeStepList, const std::vector<uint8_t> & valid);
530 
533  virtual void
535  {}
536 
537 private:
540  bool m_ManualReinitialization{};
541 
543  bool m_InitializedState{};
544 };
545 } // end namespace itk
546 
547 #ifndef ITK_MANUAL_INSTANTIATION
548 # include "itkMultiphaseFiniteDifferenceImageFilter.hxx"
549 #endif
550 
551 #endif
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputIndexType
typename OutputImageType::IndexType OutputIndexType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:207
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::MultiphaseFiniteDifferenceImageFilter::Initialize
virtual void Initialize()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:496
itk::MultiphaseFiniteDifferenceImageFilter::SetFunctionCount
void SetFunctionCount(const IdCellType &n)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:354
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::KdTreePointer
typename KdTreeType::Pointer KdTreePointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:227
itk::Statistics::KdTree
This class provides methods for k-nearest neighbor search and related data structures for a k-d tree.
Definition: itkKdTree.h:527
itk::ImageSource::OutputImagePointer
typename OutputImageType::Pointer OutputImagePointer
Definition: itkImageSource.h:91
itk::ImageRegionConstIterator::GoToBegin
void GoToBegin()
Definition: itkImageRegionConstIterator.h:196
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputIndexValueType
typename OutputImageType::IndexValueType OutputIndexValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:208
itk::MultiphaseFiniteDifferenceImageFilter::SetLookup
void SetLookup(VectorIdCellType lookup)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:342
itk::InPlaceImageFilter
Base class for filters that take an image as input and overwrite that image as the output.
Definition: itkInPlaceImageFilter.h:77
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputRegionType
typename InputImageType::RegionType InputRegionType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:188
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::Vector
A templated class holding a n-Dimensional vector.
Definition: itkVector.h:62
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::Statistics::ListSample
This class is the native implementation of the a Sample with an STL container.
Definition: itkListSample.h:51
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputPointType
typename InputImageType::PointType InputPointType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:182
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FiniteDifferenceFunctionPointer
typename FiniteDifferenceFunctionType::Pointer FiniteDifferenceFunctionPointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:217
itk::MultiphaseFiniteDifferenceImageFilter::MultiphaseFiniteDifferenceImageFilter
MultiphaseFiniteDifferenceImageFilter()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:390
itk::SmartPointer< Self >
itkImageRegionIterator.h
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureSpacingType
typename FeatureImageType::SpacingType FeatureSpacingType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:197
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputIndexValueType
typename InputIndexType::IndexValueType InputIndexValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:185
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureSizeType
typename FeatureImageType::SizeType FeatureSizeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:196
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputPixelType
typename InputImageType::PixelType InputPixelType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:189
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureImagePointer
typename FeatureImageType::Pointer FeatureImagePointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:194
itk::MultiphaseFiniteDifferenceImageFilter::SetDifferenceFunction
virtual void SetDifferenceFunction(const IdCellType &functionIndex, FiniteDifferenceFunctionPointer function)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:252
itk::IndexValueType
long IndexValueType
Definition: itkIntTypes.h:90
itk::MultiphaseFiniteDifferenceImageFilter::PostProcessOutput
virtual void PostProcessOutput()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:534
itk::ImageRegionIterator
A multi-dimensional iterator templated over image type that walks a region of pixels.
Definition: itkImageRegionIterator.h:80
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::Math::eps
static constexpr double eps
Definition: itkMath.h:97
itkFiniteDifferenceFunction.h
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputPixelType
typename OutputImageType::PixelType OutputPixelType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:203
itk::MultiphaseFiniteDifferenceImageFilter::SetLevelSet
void SetLevelSet(const IdCellType &i, const InputImageType *levelSet)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:305
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputCoordRepType
typename InputPointType::CoordRepType InputCoordRepType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:183
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeaturePixelType
typename FeatureImageType::PixelType FeaturePixelType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:199
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeaturePointType
typename FeatureImageType::PointType FeaturePointType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:198
itk::ImageToImageFilter< TFeatureImage, TOutputImage >::InputImagePointer
typename InputImageType::Pointer InputImagePointer
Definition: itkImageToImageFilter.h:130
itk::MultiphaseFiniteDifferenceImageFilter::InitializeIteration
virtual void InitializeIteration()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:506
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputIndexType
typename InputImageType::IndexType InputIndexType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:184
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FiniteDifferenceFunctionType
TFunction FiniteDifferenceFunctionType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:216
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::TimeStepType
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:218
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::KdTreeType
typename KdTreeGeneratorType::KdTreeType KdTreeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:226
itk::ImageToImageFilter< TFeatureImage, TOutputImage >::InputImageType
TFeatureImage InputImageType
Definition: itkImageToImageFilter.h:129
itk::OffsetValueType
long OffsetValueType
Definition: itkIntTypes.h:94
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::KdTreeGeneratorPointer
typename KdTreeGeneratorType::Pointer KdTreeGeneratorPointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:225
itkListSample.h
itk::MultiphaseFiniteDifferenceImageFilter
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:162
itk::NumericTraits::max
static constexpr T max(const T &)
Definition: itkNumericTraits.h:168
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputSizeValueType
typename InputSizeType::SizeValueType InputSizeValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:187
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::TimeStepVectorType
typename std::vector< TimeStepType > TimeStepVectorType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:219
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputSizeType
typename OutputImageType::SizeType OutputSizeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:205
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputSizeType
typename InputImageType::SizeType InputSizeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:186
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureImageType
TFeatureImage FeatureImageType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:193
itkInPlaceImageFilter.h
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:139
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputSpacingType
typename InputImageType::SpacingType InputSpacingType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:190
itkKdTreeGenerator.h
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputSizeValueType
typename OutputImageType::SizeValueType OutputSizeValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:206
itk::ImageRegionConstIterator
A multi-dimensional iterator templated over image type that walks a region of pixels.
Definition: itkImageRegionConstIterator.h:109
New
static Pointer New()
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::RadiusType
typename FiniteDifferenceFunctionType::RadiusType RadiusType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:220
itk::Statistics::KdTreeGenerator
This class generates a KdTree object without centroid information.
Definition: itkKdTreeGenerator.h:71
itk::MultiphaseFiniteDifferenceImageFilter::ThreadedHalt
virtual bool ThreadedHalt(void *)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:485
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::VectorIdCellType
std::vector< IdCellType > VectorIdCellType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:211
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::IdCellType
unsigned int IdCellType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:210
itk::MultiphaseFiniteDifferenceImageFilter::GetLevelSet
InputImagePointer GetLevelSet(const IdCellType &i)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:329
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputRegionType
typename OutputImageType::RegionType OutputRegionType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:204
itk::MultiphaseFiniteDifferenceImageFilter::GetDifferenceFunction
virtual const FiniteDifferenceFunctionPointer GetDifferenceFunction(const IdCellType &functionIndex) const
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:234
itk::MultiphaseFiniteDifferenceImageFilter::SetKdTree
void SetKdTree(KdTreeType *kdtree)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:348
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureRegionType
typename FeatureImageType::RegionType FeatureRegionType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:195
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:83
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputOffsetValueType
typename InputImageType::OffsetValueType InputOffsetValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:191