ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
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
27{
60template <typename TImage>
62{
64 using RegionType = typename TImage::RegionType;
65 using IndexType = typename TImage::IndexType;
66 using SizeType = typename TImage::SizeType;
67 using FaceListType = std::list<RegionType>;
68 static constexpr unsigned int ImageDimension = TImage::ImageDimension;
69
76 class Result
77 {
78 public:
80 [[nodiscard]] RegionType
82 {
84 }
85
87 [[nodiscard]] const FaceListType &
89 {
90 return m_BoundaryFaces;
91 }
92
94 friend bool
95 operator==(const Result & lhs, const Result & rhs)
96 {
98 }
99
101 friend bool
102 operator!=(const Result & lhs, const Result & rhs)
103 {
104 return !(lhs == rhs);
105 }
106
107 private:
109
112 };
113
116 static Result
117 Compute(const TImage &, RegionType, RadiusType);
118
121};
122
132template <typename TImage>
139} // namespace itk::NeighborhoodAlgorithm
140
141#ifndef ITK_MANUAL_INSTANTIATION
142# include "itkNeighborhoodAlgorithm.hxx"
143#endif
144
145#endif
friend bool operator!=(const Result &lhs, const Result &rhs)
friend bool operator==(const Result &lhs, const Result &rhs)
itk::Size< VDimension > RadiusType
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:67