1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://www.centreleonberard.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18 #ifndef __clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter_h
19 #define __clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter_h
20 #include "clitkSpatioTemporalMultiResolutionPyramidImageFilter.h"
21 #include "vnl/vnl_matrix.h"
30 class ITK_EXPORT RecursiveSpatioTemporalMultiResolutionPyramidImageFilter :
31 public SpatioTemporalMultiResolutionPyramidImageFilter< TInputImage, TOutputImage >
34 /** Standard class typedefs. */
35 typedef RecursiveSpatioTemporalMultiResolutionPyramidImageFilter Self;
36 typedef SpatioTemporalMultiResolutionPyramidImageFilter<TInputImage,TOutputImage> Superclass;
37 typedef itk::SmartPointer<Self> Pointer;
38 typedef itk::SmartPointer<const Self> ConstPointer;
40 /** Method for creation through the object factory. */
43 /** Run-time type information (and related methods). */
44 itkTypeMacro(RecursiveSpatioTemporalMultiResolutionPyramidImageFilter,
45 SpatioTemporalMultiResolutionPyramidImageFilter);
47 /** ImageDimension enumeration. */
48 itkStaticConstMacro(ImageDimension, unsigned int,
49 Superclass::ImageDimension);
51 /** Inherit types from the superclass.. */
52 typedef typename Superclass::InputImageType InputImageType;
53 typedef typename Superclass::OutputImageType OutputImageType;
54 typedef typename Superclass::InputImagePointer InputImagePointer;
55 typedef typename Superclass::OutputImagePointer OutputImagePointer;
56 typedef typename Superclass::InputImageConstPointer InputImageConstPointer;
58 /** Given one output whose requested region has been set,
59 * this method sets the requtested region for the remaining
61 * The original documentation of this method is below.
62 * \sa ProcessObject::GenerateOutputRequestedRegion(); */
63 virtual void GenerateOutputRequestedRegion(itk::DataObject *output);
65 /** RecursiveSpatioTemporalMultiResolutionPyramidImageFilter requires a larger input
66 * requested region than the output requested regions to accomdate the
67 * shrinkage and smoothing operations. As such,
68 * SpatioTemporalMultiResolutionPyramidImageFilter needs to provide an implementation for
69 * GenerateInputRequestedRegion(). The original documentation of this
70 * method is below. \sa ProcessObject::GenerateInputRequestedRegion() */
71 virtual void GenerateInputRequestedRegion();
74 RecursiveSpatioTemporalMultiResolutionPyramidImageFilter();
75 ~RecursiveSpatioTemporalMultiResolutionPyramidImageFilter() {};
76 void PrintSelf(std::ostream&os, itk::Indent indent) const;
78 /** Generate the output data. */
82 RecursiveSpatioTemporalMultiResolutionPyramidImageFilter(const Self&); //purposely not implemented
83 void operator=(const Self&); //purposely not implemented
90 #ifndef ITK_MANUAL_INSTANTIATION
91 #include "clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter.txx"