OTB  9.0.0
Orfeo Toolbox
otbPersistentVectorizationImageFilter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1999-2011 Insight Software Consortium
3  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
4  *
5  * This file is part of Orfeo Toolbox
6  *
7  * https://www.orfeo-toolbox.org/
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21 
22 #ifndef otbPersistentVectorizationImageFilter_h
23 #define otbPersistentVectorizationImageFilter_h
24 
26 
27 #include "otbObjectList.h"
29 #include "itkMinimumMaximumImageFilter.h"
30 
31 namespace otb
32 {
33 
48 template <class TInputImage, class TOutputPath>
49 class ITK_EXPORT PersistentVectorizationImageFilter : public PersistentImageFilter<TInputImage, TInputImage>
50 {
51 public:
55  typedef itk::SmartPointer<Self> Pointer;
56  typedef itk::SmartPointer<const Self> ConstPointer;
57 
59  itkNewMacro(Self);
60 
63 
65  // First Input
66  typedef TInputImage ImageType;
67  typedef typename TInputImage::Pointer InputImagePointer;
68  typedef typename TInputImage::RegionType RegionType;
69  typedef typename TInputImage::SizeType SizeType;
70  typedef typename TInputImage::IndexType IndexType;
71  typedef typename TInputImage::PixelType PixelType;
72  typedef typename TInputImage::InternalPixelType InternalPixelType;
73 
74  // Output path type
75  typedef TOutputPath PathType;
78  typedef typename PathType::Pointer PathPointerType;
79  typedef itk::MinimumMaximumImageFilter<ImageType> MinMaxFilterType;
80  typedef typename MinMaxFilterType::Pointer MinMaxFilterPointerType;
83 
84  void Reset(void) override;
85  void Synthetize(void) override;
86 
87  itkGetObjectMacro(PathList, PathListType);
88 
89 protected:
92  {
93  }
94  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
95  void GenerateData() override;
96 
97 private:
98  PersistentVectorizationImageFilter(const Self&) = delete;
99  void operator=(const Self&) = delete;
100 
101  // Min max filter (the mini-pipeline)
103 
104  // Where to store the vectorized objects
106 
107 }; // end of class
108 } // end namespace otb
109 
110 #ifndef OTB_MANUAL_INSTANTIATION
112 #endif
113 
114 #endif
otb::PersistentVectorizationImageFilter::RegionType
TInputImage::RegionType RegionType
Definition: otbPersistentVectorizationImageFilter.h:68
otb::PersistentVectorizationImageFilter::PixelType
TInputImage::PixelType PixelType
Definition: otbPersistentVectorizationImageFilter.h:71
otb::PersistentVectorizationImageFilter::PathPointerType
PathType::Pointer PathPointerType
Definition: otbPersistentVectorizationImageFilter.h:78
otbImageToEdgePathFilter.h
otbPersistentImageFilter.h
otb::PersistentVectorizationImageFilter::MinMaxFilterType
itk::MinimumMaximumImageFilter< ImageType > MinMaxFilterType
Definition: otbPersistentVectorizationImageFilter.h:79
otb::PersistentImageFilter
This filter is the base class for all filter persisting data through multiple update....
Definition: otbPersistentImageFilter.h:47
otb::PersistentVectorizationImageFilter::PathType
TOutputPath PathType
Definition: otbPersistentVectorizationImageFilter.h:75
otb::PersistentVectorizationImageFilter::Self
PersistentVectorizationImageFilter Self
Definition: otbPersistentVectorizationImageFilter.h:53
otb::PersistentVectorizationImageFilter::m_PathList
PathListPointerType m_PathList
Definition: otbPersistentVectorizationImageFilter.h:105
otb::PersistentVectorizationImageFilter::InternalPixelType
TInputImage::InternalPixelType InternalPixelType
Definition: otbPersistentVectorizationImageFilter.h:72
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::PersistentVectorizationImageFilter::InputImagePointer
TInputImage::Pointer InputImagePointer
Definition: otbPersistentVectorizationImageFilter.h:67
otb::PersistentVectorizationImageFilter::ImageToEdgePathFilterPointerType
ImageToEdgePathFilterType::Pointer ImageToEdgePathFilterPointerType
Definition: otbPersistentVectorizationImageFilter.h:82
otb::ObjectList::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbObjectList.h:46
otb::PersistentVectorizationImageFilter::MinMaxFilterPointerType
MinMaxFilterType::Pointer MinMaxFilterPointerType
Definition: otbPersistentVectorizationImageFilter.h:80
otb::PersistentVectorizationImageFilter::ImageType
TInputImage ImageType
Definition: otbPersistentVectorizationImageFilter.h:62
otbPersistentVectorizationImageFilter.hxx
otb::PersistentVectorizationImageFilter::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbPersistentVectorizationImageFilter.h:56
otbObjectList.h
otb::ImageToEdgePathFilter::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbImageToEdgePathFilter.h:64
otb::ImageToEdgePathFilter
This filter compute the closed edge path of a labelled object in an image (for example coming from a ...
Definition: otbImageToEdgePathFilter.h:58
otb::PersistentVectorizationImageFilter::SizeType
TInputImage::SizeType SizeType
Definition: otbPersistentVectorizationImageFilter.h:69
otb::PersistentVectorizationImageFilter
Perform vectorization in a persistent way.
Definition: otbPersistentVectorizationImageFilter.h:49
otb::PersistentVectorizationImageFilter::~PersistentVectorizationImageFilter
~PersistentVectorizationImageFilter() override
Definition: otbPersistentVectorizationImageFilter.h:91
otb::PersistentVectorizationImageFilter::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbPersistentVectorizationImageFilter.h:55
otb::PersistentVectorizationImageFilter::PathListType
otb::ObjectList< PathType > PathListType
Definition: otbPersistentVectorizationImageFilter.h:76
otb::ObjectList
This class is a generic all-purpose wrapping around an std::vector<itk::SmartPointer<ObjectType> >.
Definition: otbObjectList.h:40
otb::PersistentVectorizationImageFilter::IndexType
TInputImage::IndexType IndexType
Definition: otbPersistentVectorizationImageFilter.h:70
otb::PersistentVectorizationImageFilter::PathListPointerType
PathListType::Pointer PathListPointerType
Definition: otbPersistentVectorizationImageFilter.h:77
otb::PersistentVectorizationImageFilter::ImageToEdgePathFilterType
otb::ImageToEdgePathFilter< ImageType, PathType > ImageToEdgePathFilterType
Definition: otbPersistentVectorizationImageFilter.h:81
otb::PersistentVectorizationImageFilter::m_MinMaxFilter
MinMaxFilterPointerType m_MinMaxFilter
Definition: otbPersistentVectorizationImageFilter.h:102
otb::PersistentVectorizationImageFilter::Superclass
PersistentImageFilter< TInputImage, TInputImage > Superclass
Definition: otbPersistentVectorizationImageFilter.h:54