ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkRecursiveLineYvvGaussianImageFilter.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 
19 #ifndef itkRecursiveLineYvvGaussianImageFilter_h
20 #define itkRecursiveLineYvvGaussianImageFilter_h
21 
22 #include "itkInPlaceImageFilter.h"
23 #include "itkNumericTraits.h"
25 
26 namespace itk
27 {
44 template< typename TInputImage, typename TOutputImage = TInputImage >
46  public InPlaceImageFilter< TInputImage, TOutputImage >
47 {
48 public:
49  ITK_DISALLOW_COPY_AND_ASSIGN(RecursiveLineYvvGaussianImageFilter);
50 
56 
58  itkNewMacro(Self);
59 
62 
64  using InputImagePointer = typename TInputImage::Pointer;
65  using InputImageConstPointer = typename TInputImage::ConstPointer;
66 
72  using InputPixelType = typename TInputImage::PixelType;
73  #ifdef WITH_DOUBLE
76  #else
79  #endif
80 
82 
84  using InputImageType = TInputImage;
85 
87  using OutputImageType = TOutputImage;
88 
90  itkGetConstMacro(Direction, unsigned int);
91 
93  itkSetMacro(Direction, unsigned int);
94 
96  void SetInputImage(const TInputImage *);
97 
99  const TInputImage * GetInputImage(void);
100 
116  itkSetMacro(NormalizeAcrossScale, bool);
117  itkGetConstMacro(NormalizeAcrossScale, bool);
118 
121  itkGetConstMacro(Sigma, ScalarRealType);
122  itkSetMacro(Sigma, ScalarRealType);
123 protected:
126  void PrintSelf(std::ostream & os, Indent indent) const override;
128 
130  void BeforeThreadedGenerateData() override;
131 
132  void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;
133 
134  const ImageRegionSplitterBase * GetImageRegionSplitter(void) const override;
135 
144  void EnlargeOutputRequestedRegion(DataObject *output) override;
145 
150  virtual void SetUp(ScalarRealType spacing);
151 
158  void FilterDataArray(RealType *outs, const RealType *data, RealType *scratch,
159  unsigned int ln);
160 
161 protected:
168 
169  // Initialization matrix for anti-causal pass
170  vnl_matrix< ScalarRealType > m_MMatrix;
171 private:
174  unsigned int m_Direction;
175 
178 
182 };
183 } // end namespace itk
184 
185 #ifndef ITK_MANUAL_INSTANTIATION
186 #include "itkRecursiveLineYvvGaussianImageFilter.hxx"
187 #endif
188 
189 #endif // itkRecursiveLineYvvGaussianImageFilter_h
1D recursive Gaussian blur based on Young-Van Vliet&#39;s algorithm, implemented for CPU.
Define numeric traits for std::vector.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Base class for all process objects that output image data.
typename NumericTraits< InputPixelType >::FloatType ScalarRealType
typename InputImageType::Pointer InputImagePointer
typename OutputImageType::RegionType OutputImageRegionType
TOutputImage OutputImageType
Divide an image region into several pieces.
unsigned int ThreadIdType
Definition: itkIntTypes.h:99
typename NumericTraits< InputPixelType >::FloatType RealType
Control indentation during Print() invocation.
Definition: itkIndent.h:49
Base class for filters that take an image as input and overwrite that image as the output...
typename InputImageType::ConstPointer InputImageConstPointer
Base class for all data objects in ITK.