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{
97template <typename TPixel, unsigned int VDimension = 2, typename TAllocator = NeighborhoodAllocator<TPixel>>
98class ITK_TEMPLATE_EXPORT SobelOperator : public NeighborhoodOperator<TPixel, VDimension, TAllocator>
99{
100public:
101
105
106 itkOverrideGetNameOfClassMacro(SobelOperator);
107
112 void
114 {
115 this->CreateToRadius(1);
116 }
117
122 // virtual void CreateToRadius(const unsigned long);
123
124protected:
125#ifdef ITK_USE_CONCEPT_CHECKING
126 // Begin concept checking
127 itkConceptMacro(SignedOutputPixelType, (Concept::Signed<typename NumericTraits<TPixel>::ValueType>));
128 // End concept checking
129#endif
130
132 using typename Superclass::CoefficientVector;
133
135 CoefficientVector
137
139 void
140 Fill(const CoefficientVector & coeff) override;
141};
142} // namespace itk
143
144#ifndef ITK_MANUAL_INSTANTIATION
145# include "itkSobelOperator.hxx"
146#endif
147
148#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....