ITK  6.0.0
Insight Toolkit
itkSobelOperator.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 itkSobelOperator_h
19#define itkSobelOperator_h
20
22
23namespace itk
24{
96template <typename TPixel, unsigned int VDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
97class ITK_TEMPLATE_EXPORT SobelOperator : public NeighborhoodOperator<TPixel, VDimension, TAllocator>
98{
99public:
100
104
105 itkOverrideGetNameOfClassMacro(SobelOperator);
106
111 void
113 {
114 this->CreateToRadius(1);
115 }
116
121 // virtual void CreateToRadius(const unsigned long);
122
123protected:
124#ifdef ITK_USE_CONCEPT_CHECKING
125 // Begin concept checking
126 itkConceptMacro(SignedOutputPixelType, (Concept::Signed<typename NumericTraits<TPixel>::ValueType>));
127 // End concept checking
128#endif
129
131 using typename Superclass::CoefficientVector;
132
134 CoefficientVector
136
138 void
139 Fill(const CoefficientVector & coeff) override;
140};
141} // namespace itk
142
143#ifndef ITK_MANUAL_INSTANTIATION
144# include "itkSobelOperator.hxx"
145#endif
146
147#endif
Virtual class that defines a common interface to all neighborhood operator subtypes.
A NeighborhoodOperator for performing a directional Sobel edge-detection operation at a pixel locatio...
void CreateDirectional() override
CoefficientVector GenerateCoefficients() override
typename std::vector< PixelRealType > CoefficientVector
void Fill(const CoefficientVector &coeff) override
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....