ITK  4.9.0
Insight Segmentation and Registration Toolkit
itkHigherOrderAccurateDerivativeImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 itkHigherOrderAccurateDerivativeImageFilter_h
19 #define itkHigherOrderAccurateDerivativeImageFilter_h
20 
21 #include "itkImageToImageFilter.h"
22 
23 namespace itk
24 {
25 
48 template< class TInputImage, class TOutputImage >
50  public ImageToImageFilter< TInputImage, TOutputImage >
51 {
52 public:
58 
61  typedef typename TOutputImage::PixelType OutputPixelType;
62  typedef typename TOutputImage::InternalPixelType OutputInternalPixelType;
63  typedef typename TInputImage::PixelType InputPixelType;
64  typedef typename TInputImage::InternalPixelType InputInternalPixelType;
65 
68  itkStaticConstMacro(ImageDimension, unsigned int,
69  TOutputImage::ImageDimension);
70 
72  typedef TInputImage InputImageType;
73  typedef TOutputImage OutputImageType;
74 
76  itkNewMacro(Self);
77 
80 
82 #ifdef ITK_USE_CONCEPT_CHECKING
83 
85  itkConceptMacro( SignedOutputPixelType,
87 
89 #endif
90 
92  itkSetMacro(Order, unsigned int);
93  itkGetConstMacro(Order, unsigned int);
94  itkSetMacro(OrderOfAccuracy, unsigned int);
95  itkGetConstMacro(OrderOfAccuracy, unsigned int);
96  itkSetMacro(Direction, unsigned int);
97  itkGetConstMacro(Direction, unsigned int);
99 
103  { this->SetUseImageSpacing(true); }
104 
108  { this->SetUseImageSpacing(false); }
109 
112  itkSetMacro(UseImageSpacing, bool);
113  itkGetConstMacro(UseImageSpacing, bool);
115 
116 protected:
118  m_Order(1),
120  m_Direction(0),
121  m_UseImageSpacing(true)
122  {}
123 
125  virtual void PrintSelf(std::ostream & os, Indent indent) const;
126 
134  virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
135 
141  virtual void GenerateData() ITK_OVERRIDE;
142 
143 private:
144  HigherOrderAccurateDerivativeImageFilter(const Self &); //purposely not implemented
145  void operator=(const Self &); //purposely not implemented
146 
148  unsigned int m_Order;
149 
151  unsigned int m_OrderOfAccuracy;
152 
154  unsigned int m_Direction;
155 
157 };
158 
159 } // end namespace itk
160 
161 #ifndef ITK_MANUAL_INSTANTIATION
162 #include "itkHigherOrderAccurateDerivativeImageFilter.hxx"
163 #endif
164 
165 #endif
virtual void GenerateInputRequestedRegion() override
Base class for all process objects that output image data.
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Computes the higher order accurate directional derivative of an image. The directional derivative at ...
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
virtual void PrintSelf(std::ostream &os, Indent indent) const
#define itkConceptMacro(name, concept)