ITK  6.0.0
Insight Toolkit
itkSaltAndPepperNoiseImageFilter.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
19#ifndef itkSaltAndPepperNoiseImageFilter_h
20#define itkSaltAndPepperNoiseImageFilter_h
21
23
24namespace itk
25{
26
66template <class TInputImage, class TOutputImage = TInputImage>
67class ITK_TEMPLATE_EXPORT SaltAndPepperNoiseImageFilter : public NoiseBaseImageFilter<TInputImage, TOutputImage>
68{
69public:
70 ITK_DISALLOW_COPY_AND_MOVE(SaltAndPepperNoiseImageFilter);
78
80 itkNewMacro(Self);
81
83 itkOverrideGetNameOfClassMacro(SaltAndPepperNoiseImageFilter);
84
86 using typename Superclass::OutputImageType;
87 using typename Superclass::OutputImagePointer;
88 using typename Superclass::OutputImageRegionType;
89 using typename Superclass::OutputImagePixelType;
90
92 using InputImageType = TInputImage;
96 using InputImagePixelType = typename InputImageType::PixelType;
97
100 itkGetConstMacro(Probability, double);
101 itkSetMacro(Probability, double);
106 itkSetMacro(SaltValue, OutputImagePixelType);
107 itkGetConstMacro(SaltValue, OutputImagePixelType);
113 itkSetMacro(PepperValue, OutputImagePixelType);
114 itkGetConstMacro(PepperValue, OutputImagePixelType);
118#ifdef ITK_USE_CONCEPT_CHECKING
120 itkConceptMacro(InputConvertibleToOutputCheck,
122
124#endif
125
126protected:
128 ~SaltAndPepperNoiseImageFilter() override = default;
129
130 void
131 PrintSelf(std::ostream & os, Indent indent) const override;
132
133 void
134 ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;
135
136private:
137 double m_Probability{ 0.01 };
138 OutputImagePixelType m_SaltValue{};
139 OutputImagePixelType m_PepperValue{};
140};
141} // end namespace itk
142
143#ifndef ITK_MANUAL_INSTANTIATION
144# include "itkSaltAndPepperNoiseImageFilter.hxx"
145#endif
146
147#endif
typename OutputImageType::PixelType OutputImagePixelType
typename OutputImageType::RegionType OutputImageRegionType
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
An Abstract Base class for Noise image filters.
Alter an image with fixed value impulse noise, often called salt and pepper noise.
typename InputImageType::ConstPointer InputImageConstPointer
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
~SaltAndPepperNoiseImageFilter() override=default
typename InputImageType::PixelType InputImagePixelType
typename InputImageType::RegionType InputImageRegionType
void PrintSelf(std::ostream &os, Indent indent) const override
typename InputImageType::Pointer InputImagePointer
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
Definition: itkIntTypes.h:102