ITK  4.12.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 #pragma once
20 #ifndef _ITK_RECURSIVE_LINE_YVV_GAUSSIAN_IMAGE_FILTER_H_
21 #define _ITK_RECURSIVE_LINE_YVV_GAUSSIAN_IMAGE_FILTER_H_
22 
23 #include <itkInPlaceImageFilter.h>
24 #include <itkNumericTraits.h>
26 
27 namespace itk
28 {
45 template< typename TInputImage, typename TOutputImage = TInputImage >
47  public InPlaceImageFilter< TInputImage, TOutputImage >
48 {
49 public:
55 
57  itkNewMacro(Self);
58 
61 
63  typedef typename TInputImage::Pointer InputImagePointer;
65 
71  typedef typename TInputImage::PixelType InputPixelType;
72  #ifdef WITH_DOUBLE
75  #else
78  #endif
79 
80  typedef typename TOutputImage::RegionType OutputImageRegionType;
81 
83  typedef TInputImage InputImageType;
84 
86  typedef TOutputImage OutputImageType;
87 
89  itkGetConstMacro(Direction, unsigned int);
90 
92  itkSetMacro(Direction, unsigned int);
93 
95  void SetInputImage(const TInputImage *);
96 
98  const TInputImage * GetInputImage(void);
99 
115  itkSetMacro(NormalizeAcrossScale, bool);
116  itkGetConstMacro(NormalizeAcrossScale, bool);
117 
120  itkGetConstMacro(Sigma, ScalarRealType);
121  itkSetMacro(Sigma, ScalarRealType);
122 protected:
125  void PrintSelf(std::ostream & os, Indent indent) const;
127 
129  void BeforeThreadedGenerateData();
130 
131  void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId);
132 
133  virtual const ImageRegionSplitterBase * GetImageRegionSplitter(void) const;
134 
143  void EnlargeOutputRequestedRegion(DataObject *output);
144 
149  virtual void SetUp(ScalarRealType spacing);
150 
157  void FilterDataArray(RealType *outs, const RealType *data, RealType *scratch,
158  unsigned int ln);
159 
160 protected:
167 
168  // Initialization matrix for anti-causal pass
169  vnl_matrix< ScalarRealType > m_MMatrix;
170 private:
171  ITK_DISALLOW_COPY_AND_ASSIGN(RecursiveLineYvvGaussianImageFilter);
172 
175  unsigned int m_Direction;
176 
179 
183 };
184 } // end namespace itk
185 
186 #ifndef ITK_MANUAL_INSTANTIATION
187 #include "itkRecursiveLineYvvGaussianImageFilter.hxx"
188 #endif
189 
190 #endif
1D recursive Gaussian blur based on Young-Van Vliet&#39;s algorithm, implemented for CPU.
virtual void PrintSelf(std::ostream &os, Indent indent) const override
NumericTraits< InputPixelType >::FloatType ScalarRealType
Base class for all process objects that output image data.
SmartPointer< Self > Pointer
InPlaceImageFilter< TInputImage, TOutputImage > Superclass
Divide an image region into several pieces.
SmartPointer< const Self > ConstPointer
unsigned int ThreadIdType
Definition: itkIntTypes.h:159
Base class for all data objects in ITK.
NumericTraits< InputPixelType >::FloatType RealType
Control indentation during Print() invocation.
Definition: itkIndent.h:49
Define additional traits for native types such as int or float.
Base class for filters that take an image as input and overwrite that image as the output...