ITK  6.0.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 InputCoordinateType = typename InputPointType::CoordinateType;
184 #ifndef ITK_FUTURE_LEGACY_REMOVE
185  using InputCoordRepType ITK_FUTURE_DEPRECATED(
186  "ITK 6 discourages using `InputCoordRepType`. Please use `InputCoordinateType` instead!") = InputCoordinateType;
187 #endif
193  using InputPixelType = typename InputImageType::PixelType;
194  using InputSpacingType = typename InputImageType::SpacingType;
196 
197  using FeatureImageType = TFeatureImage;
201  using FeatureSpacingType = typename FeatureImageType::SpacingType;
203  using FeaturePixelType = typename FeatureImageType::PixelType;
204 
205  using OutputImageType = TOutputImage;
207  using OutputPixelType = typename OutputImageType::PixelType;
213 
214  using IdCellType = TIdCell;
215  using VectorIdCellType = std::vector<IdCellType>;
216 
220  using FiniteDifferenceFunctionType = TFiniteDifferenceFunction;
222  using TimeStepType = typename FiniteDifferenceFunctionType::TimeStepType;
223  using TimeStepVectorType = typename std::vector<TimeStepType>;
224  using RadiusType = typename FiniteDifferenceFunctionType::RadiusType;
225 
232 
237  virtual const FiniteDifferenceFunctionPointer
238  GetDifferenceFunction(const IdCellType & functionIndex) const
239  {
240  if (functionIndex < m_FunctionCount)
241  {
242  return (this->m_DifferenceFunctions[functionIndex]);
243  }
244  else
245  {
246  return nullptr;
247  }
248  }
255  virtual void
257  {
258  if (functionIndex < m_FunctionCount)
259  {
260  this->m_DifferenceFunctions[functionIndex] = function;
261  }
262  }
266  itkSetMacro(NumberOfIterations, unsigned int);
267  itkGetConstReferenceMacro(NumberOfIterations, unsigned int);
272  itkSetMacro(UseImageSpacing, bool);
273  itkBooleanMacro(UseImageSpacing);
274  itkGetConstReferenceMacro(UseImageSpacing, bool);
279  itkSetMacro(MaximumRMSError, double);
280  itkGetConstReferenceMacro(MaximumRMSError, double);
285  itkSetMacro(RMSChange, double);
286  itkGetConstReferenceMacro(RMSChange, double);
290  itkSetMacro(InitializedState, bool);
291  itkGetConstReferenceMacro(InitializedState, bool);
292  itkBooleanMacro(InitializedState);
297  itkSetMacro(ManualReinitialization, bool);
298  itkGetConstReferenceMacro(ManualReinitialization, bool);
299  itkBooleanMacro(ManualReinitialization);
303  itkSetMacro(ElapsedIterations, unsigned int);
304 
306  itkGetConstReferenceMacro(ElapsedIterations, unsigned int);
307 
308  void
309  SetLevelSet(const IdCellType & i, const InputImageType * levelSet)
310  {
311  m_LevelSet[i] = InputImageType::New();
312  m_LevelSet[i]->SetRequestedRegion(levelSet->GetRequestedRegion());
313  m_LevelSet[i]->SetBufferedRegion(levelSet->GetBufferedRegion());
314  m_LevelSet[i]->SetLargestPossibleRegion(levelSet->GetLargestPossibleRegion());
315  m_LevelSet[i]->Allocate();
316  m_LevelSet[i]->CopyInformation(levelSet);
317 
318  ImageRegionConstIterator<InputImageType> in(levelSet, levelSet->GetBufferedRegion());
319  ImageRegionIterator<InputImageType> cp(m_LevelSet[i], levelSet->GetBufferedRegion());
320 
321  in.GoToBegin();
322  cp.GoToBegin();
323 
324  while (!in.IsAtEnd())
325  {
326  cp.Set(in.Get());
327  ++in;
328  ++cp;
329  }
330  }
331 
332  InputImagePointer
334  {
335  if (i >= m_FunctionCount)
336  {
337  itkExceptionMacro("Request for level set #" << i << " but there are only " << m_FunctionCount);
338  }
339  else
340  {
341  return m_LevelSet[i];
342  }
343  }
344 
345  void
347  {
348  this->m_Lookup = lookup;
349  }
350 
351  void
353  {
354  this->m_KdTree = kdtree;
355  }
356 
357  void
359  {
360  m_FunctionCount = n;
361 
362  m_DifferenceFunctions.resize(m_FunctionCount, nullptr);
363 
364  constexpr auto radius = MakeFilled<RadiusType>(1);
365 
366  for (unsigned int i = 0; i < this->m_FunctionCount; ++i)
367  {
368  this->m_DifferenceFunctions[i] = FiniteDifferenceFunctionType::New();
369  this->m_DifferenceFunctions[i]->Initialize(radius);
370  }
371 
372  // Initialize the images
373  m_LevelSet.resize(m_FunctionCount, nullptr);
374 
375  // Initialize the lookup table
376  this->m_Lookup.resize(m_FunctionCount);
377 
378  IdCellType k = 1;
379 
380  {
381  auto it = this->m_Lookup.begin();
382  auto _end = this->m_Lookup.end();
383  while (it != _end)
384  {
385  *it = k;
386  ++it;
387  ++k;
388  }
389  }
390  }
391 
392 protected:
394  {
395  this->m_KdTree = nullptr;
396  this->m_ElapsedIterations = 0;
397  this->m_MaximumRMSError = itk::Math::eps;
398  this->m_RMSChange = NumericTraits<double>::max();
399  this->m_UseImageSpacing = true;
400  this->m_ManualReinitialization = false;
401  this->m_InitializedState = false;
402  this->m_NumberOfIterations = NumericTraits<unsigned int>::max();
403  this->m_FunctionCount = 0;
404  this->InPlaceOff();
405  }
406 
407  ~MultiphaseFiniteDifferenceImageFilter() override = default;
408 
409  IdCellType m_FunctionCount{};
410  std::vector<InputImagePointer> m_LevelSet{};
411  VectorIdCellType m_Lookup{};
412  KdTreePointer m_KdTree{};
413 
414  unsigned int m_ElapsedIterations{};
415  double m_MaximumRMSError{};
416  double m_RMSChange{};
417  unsigned int m_NumberOfIterations{};
418 
420  std::vector<FiniteDifferenceFunctionPointer> m_DifferenceFunctions{};
421 
424  bool m_UseImageSpacing{};
425 
426  void
427  PrintSelf(std::ostream & os, Indent indent) const override;
428 
430  virtual void
431  AllocateUpdateBuffer() = 0;
432 
436  virtual void
437  ApplyUpdate(TimeStepType dt) = 0;
438 
444  virtual TimeStepType
445  CalculateChange() = 0;
446 
450  virtual void
451  CopyInputToOutput() = 0;
452 
456  void
457  GenerateData() override;
458 
470  void
471  GenerateInputRequestedRegion() override;
472 
475  virtual bool
476  Halt();
477 
487  virtual bool
488  ThreadedHalt(void * itkNotUsed(threadInfo))
489  {
490  return this->Halt();
491  }
492 
498  virtual void
500  {}
501 
508  virtual void
510  {
511  for (IdCellType i = 0; i < this->m_FunctionCount; ++i)
512  {
513  this->m_DifferenceFunctions[i]->InitializeIteration();
514  }
515  }
531  inline TimeStepType
532  ResolveTimeStep(const TimeStepVectorType & timeStepList, const std::vector<uint8_t> & valid);
533 
536  virtual void
538  {}
539 
540 private:
543  bool m_ManualReinitialization{};
544 
546  bool m_InitializedState{};
547 };
548 } // end namespace itk
549 
550 #ifndef ITK_MANUAL_INSTANTIATION
551 # include "itkMultiphaseFiniteDifferenceImageFilter.hxx"
552 #endif
553 
554 #endif
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputIndexType
typename OutputImageType::IndexType OutputIndexType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:211
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::MultiphaseFiniteDifferenceImageFilter::Initialize
virtual void Initialize()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:499
itk::MultiphaseFiniteDifferenceImageFilter::SetFunctionCount
void SetFunctionCount(const IdCellType &n)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:358
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::KdTreePointer
typename KdTreeType::Pointer KdTreePointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:231
itk::Statistics::KdTree
This class provides methods for k-nearest neighbor search and related data structures for a k-d tree.
Definition: itkKdTree.h:535
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:212
itk::MultiphaseFiniteDifferenceImageFilter::SetLookup
void SetLookup(VectorIdCellType lookup)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:346
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:192
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:221
itk::MultiphaseFiniteDifferenceImageFilter::MultiphaseFiniteDifferenceImageFilter
MultiphaseFiniteDifferenceImageFilter()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:393
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:201
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputIndexValueType
typename InputIndexType::IndexValueType InputIndexValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:189
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureSizeType
typename FeatureImageType::SizeType FeatureSizeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:200
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputPixelType
typename InputImageType::PixelType InputPixelType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:193
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureImagePointer
typename FeatureImageType::Pointer FeatureImagePointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:198
itk::MultiphaseFiniteDifferenceImageFilter::SetDifferenceFunction
virtual void SetDifferenceFunction(const IdCellType &functionIndex, FiniteDifferenceFunctionPointer function)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:256
itk::IndexValueType
long IndexValueType
Definition: itkIntTypes.h:93
itk::MultiphaseFiniteDifferenceImageFilter::PostProcessOutput
virtual void PostProcessOutput()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:537
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:207
itk::MultiphaseFiniteDifferenceImageFilter::SetLevelSet
void SetLevelSet(const IdCellType &i, const InputImageType *levelSet)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:309
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeaturePixelType
typename FeatureImageType::PixelType FeaturePixelType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:203
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeaturePointType
typename FeatureImageType::PointType FeaturePointType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:202
itk::ImageToImageFilter< TFeatureImage, TOutputImage >::InputImagePointer
typename InputImageType::Pointer InputImagePointer
Definition: itkImageToImageFilter.h:130
itk::MultiphaseFiniteDifferenceImageFilter::InitializeIteration
virtual void InitializeIteration()
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:509
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputIndexType
typename InputImageType::IndexType InputIndexType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:188
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:220
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::TimeStepType
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:222
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::KdTreeType
typename KdTreeGeneratorType::KdTreeType KdTreeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:230
itk::ImageToImageFilter< TFeatureImage, TOutputImage >::InputImageType
TFeatureImage InputImageType
Definition: itkImageToImageFilter.h:129
itk::OffsetValueType
long OffsetValueType
Definition: itkIntTypes.h:97
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::KdTreeGeneratorPointer
typename KdTreeGeneratorType::Pointer KdTreeGeneratorPointer
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:229
itkListSample.h
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputCoordinateType
typename InputPointType::CoordinateType InputCoordinateType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:183
itk::MultiphaseFiniteDifferenceImageFilter
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:162
itk::NumericTraits::max
static constexpr T max(const T &)
Definition: itkNumericTraits.h:169
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputSizeValueType
typename InputSizeType::SizeValueType InputSizeValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:191
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::TimeStepVectorType
typename std::vector< TimeStepType > TimeStepVectorType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:223
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputSizeType
typename OutputImageType::SizeType OutputSizeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:209
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::InputSizeType
typename InputImageType::SizeType InputSizeType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:190
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureImageType
TFeatureImage FeatureImageType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:197
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:194
itkKdTreeGenerator.h
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputSizeValueType
typename OutputImageType::SizeValueType OutputSizeValueType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:210
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:224
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:488
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::VectorIdCellType
std::vector< IdCellType > VectorIdCellType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:215
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::IdCellType
unsigned int IdCellType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:214
itk::MultiphaseFiniteDifferenceImageFilter::GetLevelSet
InputImagePointer GetLevelSet(const IdCellType &i)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:333
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::OutputRegionType
typename OutputImageType::RegionType OutputRegionType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:208
itk::MultiphaseFiniteDifferenceImageFilter::GetDifferenceFunction
virtual const FiniteDifferenceFunctionPointer GetDifferenceFunction(const IdCellType &functionIndex) const
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:238
itk::MultiphaseFiniteDifferenceImageFilter::SetKdTree
void SetKdTree(KdTreeType *kdtree)
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:352
itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >::FeatureRegionType
typename FeatureImageType::RegionType FeatureRegionType
Definition: itkMultiphaseFiniteDifferenceImageFilter.h:199
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:86
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:195