ITK  5.4.0
Insight Toolkit
itkNeighborhoodAlgorithm.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 itkNeighborhoodAlgorithm_h
19#define itkNeighborhoodAlgorithm_h
20
21#include <list>
22#include "itkImage.h"
25
26namespace itk
27{
28namespace NeighborhoodAlgorithm
29{
62template <typename TImage>
64{
67 using IndexType = typename TImage::IndexType;
68 using SizeType = typename TImage::SizeType;
69 using FaceListType = std::list<RegionType>;
70 static constexpr unsigned int ImageDimension = TImage::ImageDimension;
71
78 class Result
79 {
80 public:
84 {
86 }
87
89 const FaceListType &
91 {
92 return m_BoundaryFaces;
93 }
94
96 friend bool
97 operator==(const Result & lhs, const Result & rhs)
98 {
100 }
101
103 friend bool
104 operator!=(const Result & lhs, const Result & rhs)
105 {
106 return !(lhs == rhs);
107 }
108
109 private:
111
114 };
115
118 static Result
119 Compute(const TImage &, RegionType, RadiusType);
120
123};
124
134template <typename TImage>
136{
139 operator()(TImage *, TImage *) const;
140};
141} // end namespace NeighborhoodAlgorithm
142} // end namespace itk
143
144#ifndef ITK_MANUAL_INSTANTIATION
145# include "itkNeighborhoodAlgorithm.hxx"
146#endif
147
148#endif
friend bool operator!=(const Result &lhs, const Result &rhs)
friend bool operator==(const Result &lhs, const Result &rhs)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Splits an image into a main region and several "face" regions which are used to handle computations o...
FaceListType operator()(const TImage *, RegionType, RadiusType)
typename NeighborhoodIterator< TImage >::RadiusType RadiusType
static Result Compute(const TImage &, RegionType, RadiusType)
Represent a n-dimensional offset between two n-dimensional indexes of n-dimensional image.
Definition: itkOffset.h:70