ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkLaplacianRecursiveGaussianImageFilter.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 itkLaplacianRecursiveGaussianImageFilter_h
19 #define itkLaplacianRecursiveGaussianImageFilter_h
20 
22 #include "itkImage.h"
23 #include "itkCommand.h"
24 
25 namespace itk
26 {
42 template< typename TInputImage,
43  typename TOutputImage = TInputImage >
44 class ITK_TEMPLATE_EXPORT LaplacianRecursiveGaussianImageFilter:
45  public ImageToImageFilter< TInputImage, TOutputImage >
46 {
47 public:
48  ITK_DISALLOW_COPY_AND_ASSIGN(LaplacianRecursiveGaussianImageFilter);
49 
55 
57  using InputImageType = TInputImage;
58  using PixelType = typename InputImageType::PixelType;
59 
61  static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
62 
63  static constexpr unsigned int NumberOfSmoothingFilters = ImageDimension - 1;
64 
66 
70  using InternalRealType = float;
72  Self::ImageDimension >;
73 
77 
81 
84 
87 
89  using OutputImagePointer = typename TOutputImage::Pointer;
90 
92  using OutputImageType = TOutputImage;
93  using OutputPixelType = typename OutputImageType::PixelType;
94 
95 
99 
101  itkNewMacro(Self);
102 
106 
108  void SetSigma(RealType sigma);
109  RealType GetSigma() const;
111 
115  void SetNormalizeAcrossScale(bool normalizeInScaleSpace);\
116  itkGetConstMacro(NormalizeAcrossScale, bool);
118 
119 protected:
121  ~LaplacianRecursiveGaussianImageFilter() override = default;
122  void PrintSelf(std::ostream & os, Indent indent) const override;
123 
125  void GenerateData() override;
126 
127  // Override since the filter produces the entire dataset
128  void EnlargeOutputRequestedRegion(DataObject *output) override;
129 
130 private:
131 
132  GaussianFilterPointer m_SmoothingFilters[NumberOfSmoothingFilters];
134 
137 };
138 } // end namespace itk
139 
140 #ifndef ITK_MANUAL_INSTANTIATION
141 #include "itkLaplacianRecursiveGaussianImageFilter.hxx"
142 #endif
143 
144 #endif
typename OutputImageType::Pointer OutputImagePointer
Define numeric traits for std::vector.
Base class for computing IIR convolution with an approximation of a Gaussian kernel.
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Computes the Laplacian of Gaussian (LoG) of an image.
Base class for all process objects that output image data.
A Command subclass that calls a pointer to a member function.
Definition: itkCommand.h:83
typename NumericTraits< PixelType >::RealType RealType
TOutputImage OutputImageType
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
Base class for all data objects in ITK.
Templated n-dimensional image class.
Definition: itkImage.h:75