ITK  6.0.0
Insight Toolkit
itkLaplacianImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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 itkLaplacianImageFilter_h
19#define itkLaplacianImageFilter_h
20
22
23namespace itk
24{
62template <typename TInputImage, typename TOutputImage>
63class ITK_TEMPLATE_EXPORT LaplacianImageFilter : public ImageToImageFilter<TInputImage, TOutputImage>
64{
65public:
66 ITK_DISALLOW_COPY_AND_MOVE(LaplacianImageFilter);
67
71
74 using OutputPixelType = typename TOutputImage::PixelType;
75 using OutputInternalPixelType = typename TOutputImage::InternalPixelType;
76 using InputPixelType = typename TInputImage::PixelType;
77 using InputInternalPixelType = typename TInputImage::InternalPixelType;
78 static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension;
79 static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
80
82 using InputImageType = TInputImage;
83 using OutputImageType = TOutputImage;
85
89
91 itkOverrideGetNameOfClassMacro(LaplacianImageFilter);
92
94 itkNewMacro(Self);
95
103 void
105
109 itkBooleanMacro(UseImageSpacing);
110
113 itkSetMacro(UseImageSpacing, bool);
114 itkGetConstMacro(UseImageSpacing, bool);
117#ifdef ITK_USE_CONCEPT_CHECKING
118 // Begin concept checking
120 itkConceptMacro(InputPixelTypeIsFloatingPointCheck, (Concept::IsFloatingPoint<InputPixelType>));
121 itkConceptMacro(OutputPixelTypeIsFloatingPointCheck, (Concept::IsFloatingPoint<OutputPixelType>));
122 // End concept checking
123#endif
124
125protected:
126 LaplacianImageFilter() { m_UseImageSpacing = true; }
127
128 ~LaplacianImageFilter() override = default;
129
135 void
136 GenerateData() override;
137
138 void
139 PrintSelf(std::ostream &, Indent) const override;
140
141private:
142 bool m_UseImageSpacing{};
143};
144} // end namespace itk
145
146#ifndef ITK_MANUAL_INSTANTIATION
147# include "itkLaplacianImageFilter.hxx"
148#endif
149
150#endif
Base class for all process objects that output image data.
TOutputImage OutputImageType
Base class for filters that take an image as input and produce an image as output.
typename InputImageType::Pointer InputImagePointer
Control indentation during Print() invocation.
Definition: itkIndent.h:50
This filter computes the Laplacian of a scalar-valued image.
typename TInputImage::PixelType InputPixelType
~LaplacianImageFilter() override=default
void GenerateData() override
typename TInputImage::InternalPixelType InputInternalPixelType
void PrintSelf(std::ostream &, Indent) const override
void GenerateInputRequestedRegion() override
typename TOutputImage::PixelType OutputPixelType
typename TOutputImage::InternalPixelType OutputInternalPixelType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....