ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkBinaryMaskToNarrowBandPointSetFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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  * http://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:
55  public ImageToMeshFilter< TInputImage, TOutputMesh >
56 {
57 public:
58  ITK_DISALLOW_COPY_AND_ASSIGN(BinaryMaskToNarrowBandPointSetFilter);
59 
62 
64 
67 
69  itkNewMacro(Self);
70 
73 
75  using InputImageType = TInputImage;
76  using InputImageConstPointer = typename InputImageType::ConstPointer;
78  using InputImagePixelType = typename InputImageType::PixelType;
79 
81 
83  using OutputMeshType = TOutputMesh;
85  using OutputMeshPointer = typename OutputMeshType::Pointer;
86  using OutputMeshConstPointer = typename OutputMeshType::ConstPointer;
87  using PointsContainer = typename OutputMeshType::PointsContainer;
88  using PointIdentifier = typename OutputMeshType::PointIdentifier;
89  using PointsContainerPointer = typename PointsContainer::Pointer;
90  using PointsContainerIterator = typename PointsContainer::Iterator;
91  using PointDataContainer = typename OutputMeshType::PointDataContainer;
92  using PointDataContainerPointer = typename PointDataContainer::Pointer;
93  using PointDataContainerIterator = typename PointDataContainer::Iterator;
94 
96  static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
97 
99  using RealImageType = itk::Image< float,
100  Self::ImageDimension >;
101 
110  using NodeType = typename NodeContainer::Element;
111 
116 
118 
120  static constexpr unsigned int PointDimension = TOutputMesh::PointDimension;
121 
123  using Superclass::SetInput;
124  void SetInput(const InputImageType *inputImage);
125 
130  itkSetMacro(BandWidth, float);
131  itkGetConstMacro(BandWidth, float);
133 
134 protected:
136  ~BinaryMaskToNarrowBandPointSetFilter() override = default;
137  void PrintSelf(std::ostream & os, Indent indent) const override;
138 
140  void GenerateData() override;
141 
143  void GenerateOutputInformation() override;
144 
145 private:
148 
149  float m_BandWidth;
150 };
151 } // end namespace itk
152 
153 #ifndef ITK_MANUAL_INSTANTIATION
154 #include "itkBinaryMaskToNarrowBandPointSetFilter.hxx"
155 #endif
156 
157 #endif
typename OutputMeshType::PointsContainer PointsContainer
Light weight base class for most itk classes.
typename DistanceFilterType::NodeContainerPointer NodeContainerPointer
typename InputImageType::RegionType InputImageRegionType
typename OutputMeshType::PointDataContainer PointDataContainer
typename OutputMeshType::Pointer OutputMeshPointer
typename InputImageType::PixelType InputImagePixelType
A multi-dimensional iterator templated over image type that walks an image region and is specialized ...
ImageToMeshFilter is the base class for all process objects that output Mesh data and require image d...
Generate a PointSet containing the narrow band around the edges of a input binary image...
typename LevelSetType::NodeContainer NodeContainer
typename DistanceFilterType::NodeContainer NodeContainer
typename LevelSetType::NodeContainerPointer NodeContainerPointer
Reinitialize the level set to the signed distance function.
Applies a linear transformation to the intensity levels of the input Image.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
typename OutputMeshType::PointIdentifier PointIdentifier
typename InputImageType::ConstPointer InputImageConstPointer
typename PointDataContainer::Iterator PointDataContainerIterator
Templated n-dimensional image class.
Definition: itkImage.h:75