ITK  5.4.0
Insight Toolkit
itkBinaryMaskToNarrowBandPointSetFilter.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 itkBinaryMaskToNarrowBandPointSetFilter_h
19 #define itkBinaryMaskToNarrowBandPointSetFilter_h
20 
21 #include "itkImageToMeshFilter.h"
25 
26 namespace itk
27 {
53 template <typename TInputImage, typename TOutputMesh>
54 class ITK_TEMPLATE_EXPORT BinaryMaskToNarrowBandPointSetFilter : public ImageToMeshFilter<TInputImage, TOutputMesh>
55 {
56 public:
57  ITK_DISALLOW_COPY_AND_MOVE(BinaryMaskToNarrowBandPointSetFilter);
58 
61 
63 
66 
68  itkNewMacro(Self);
69 
71  itkOverrideGetNameOfClassMacro(BinaryMaskToNarrowBandPointSetFilter);
72 
74  using InputImageType = TInputImage;
77  using InputImagePixelType = typename InputImageType::PixelType;
78 
80 
82  using OutputMeshType = TOutputMesh;
86  using PointsContainer = typename OutputMeshType::PointsContainer;
87  using PointIdentifier = typename OutputMeshType::PointIdentifier;
89  using PointsContainerIterator = typename PointsContainer::Iterator;
90  using PointDataContainer = typename OutputMeshType::PointDataContainer;
92  using PointDataContainerIterator = typename PointDataContainer::Iterator;
93 
95  static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
96 
99 
108  using NodeType = typename NodeContainer::Element;
109 
114 
116 
118  static constexpr unsigned int PointDimension = TOutputMesh::PointDimension;
119 
121  using Superclass::SetInput;
122  void
123  SetInput(const InputImageType * inputImage);
124 
129  itkSetMacro(BandWidth, float);
130  itkGetConstMacro(BandWidth, float);
133 protected:
135  ~BinaryMaskToNarrowBandPointSetFilter() override = default;
136  void
137  PrintSelf(std::ostream & os, Indent indent) const override;
138 
140  void
141  GenerateData() override;
142 
144  void
145  GenerateOutputInformation() override;
146 
147 private:
148  DistanceFilterPointer m_DistanceFilter{};
149  RescaleFilterPointer m_RescaleFilter{};
150 
151  float m_BandWidth{};
152 };
153 } // end namespace itk
154 
155 #ifndef ITK_MANUAL_INSTANTIATION
156 # include "itkBinaryMaskToNarrowBandPointSetFilter.hxx"
157 #endif
158 
159 #endif
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkAddImageFilter.h:94
itk::ReinitializeLevelSetImageFilter::NodeContainerPointer
typename LevelSetType::NodeContainerPointer NodeContainerPointer
Definition: itkReinitializeLevelSetImageFilter.h:80
itk::ImageRegionConstIteratorWithIndex
A multi-dimensional iterator templated over image type that walks an image region and is specialized ...
Definition: itkImageRegionConstIteratorWithIndex.h:130
itk::BinaryMaskToNarrowBandPointSetFilter::NodeContainerPointer
typename DistanceFilterType::NodeContainerPointer NodeContainerPointer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:106
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::BinaryMaskToNarrowBandPointSetFilter
Generate a PointSet containing the narrow band around the edges of a input binary image.
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:54
itk::ImageToMeshFilter::InputImageType
TInputImage InputImageType
Definition: itkImageToMeshFilter.h:57
itk::BinaryMaskToNarrowBandPointSetFilter::NodeType
typename NodeContainer::Element NodeType
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:108
itk::BinaryMaskToNarrowBandPointSetFilter::PointsContainer
typename OutputMeshType::PointsContainer PointsContainer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:86
itk::BinaryMaskToNarrowBandPointSetFilter::PointsContainerIterator
typename PointsContainer::Iterator PointsContainerIterator
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:89
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itkImageRegionIteratorWithIndex.h
itk::BinaryMaskToNarrowBandPointSetFilter::PointDataContainerIterator
typename PointDataContainer::Iterator PointDataContainerIterator
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:92
itk::BinaryMaskToNarrowBandPointSetFilter::DistanceFilterPointer
typename DistanceFilterType::Pointer DistanceFilterPointer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:105
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itkReinitializeLevelSetImageFilter.h
itk::BinaryMaskToNarrowBandPointSetFilter::PointDataContainerPointer
typename PointDataContainer::Pointer PointDataContainerPointer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:91
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::BinaryMaskToNarrowBandPointSetFilter::NodeContainer
typename DistanceFilterType::NodeContainer NodeContainer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:107
itk::BinaryMaskToNarrowBandPointSetFilter::PointType
typename OutputMeshType::PointType PointType
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:83
itkRescaleIntensityImageFilter.h
itk::BinaryMaskToNarrowBandPointSetFilter::PointDataContainer
typename OutputMeshType::PointDataContainer PointDataContainer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:90
itk::ImageToMeshFilter
ImageToMeshFilter is the base class for all process objects that output Mesh data and require image d...
Definition: itkImageToMeshFilter.h:36
itk::ReinitializeLevelSetImageFilter::NodeContainer
typename LevelSetType::NodeContainer NodeContainer
Definition: itkReinitializeLevelSetImageFilter.h:79
itkImageToMeshFilter.h
itk::BinaryMaskToNarrowBandPointSetFilter::PointsContainerPointer
typename PointsContainer::Pointer PointsContainerPointer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:88
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::BinaryMaskToNarrowBandPointSetFilter::PointIdentifier
typename OutputMeshType::PointIdentifier PointIdentifier
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:87
itk::ImageToMeshFilter::OutputMeshPointer
typename OutputMeshType::Pointer OutputMeshPointer
Definition: itkImageToMeshFilter.h:65
itk::RescaleIntensityImageFilter
Applies a linear transformation to the intensity levels of the input Image.
Definition: itkRescaleIntensityImageFilter.h:133
itk::ImageToMeshFilter::OutputMeshType
TOutputMesh OutputMeshType
Definition: itkImageToMeshFilter.h:64
itk::BinaryMaskToNarrowBandPointSetFilter::RescaleFilterPointer
typename RescaleFilterType::Pointer RescaleFilterPointer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:115
itk::BinaryMaskToNarrowBandPointSetFilter::OutputMeshConstPointer
typename OutputMeshType::ConstPointer OutputMeshConstPointer
Definition: itkBinaryMaskToNarrowBandPointSetFilter.h:85
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:88
itk::ImageToMeshFilter::InputImageConstPointer
typename InputImageType::ConstPointer InputImageConstPointer
Definition: itkImageToMeshFilter.h:59
itk::ImageToMeshFilter::InputImageRegionType
typename InputImageType::RegionType InputImageRegionType
Definition: itkImageToMeshFilter.h:60
itk::ImageToMeshFilter::InputImagePixelType
typename InputImageType::PixelType InputImagePixelType
Definition: itkImageToMeshFilter.h:61
itk::ReinitializeLevelSetImageFilter
Reinitialize the level set to the signed distance function.
Definition: itkReinitializeLevelSetImageFilter.h:55