Orfeo Toolbox  3.16
itkSimpleFuzzyConnectednessImageFilterBase.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkSimpleFuzzyConnectednessImageFilterBase.h,v $
5  Language: C++
6  Date: $Date: 2009-02-01 13:08:41 $
7  Version: $Revision: 1.4 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkSimpleFuzzyConnectednessImageFilterBase_h
18 #define __itkSimpleFuzzyConnectednessImageFilterBase_h
19 
20 #include "itkImage.h"
21 #include "itkImageToImageFilter.h"
22 #include <vnl/vnl_matrix_fixed.h>
23 
24 #include <queue>
25 
26 namespace itk {
27 
56 template <class TInputImage, class TOutputImage>
58  public ImageToImageFilter<TInputImage,TOutputImage>
59 {
60 public:
66 
68  itkNewMacro(Self);
69 
72 
74  itkStaticConstMacro(ImageDimension, unsigned int,
75  TInputImage::ImageDimension);
76 
78  typedef TInputImage InputImageType;
79  typedef TOutputImage OutputImageType;
80 
82 
83  typedef typename TInputImage::IndexType IndexType;
84  typedef typename TInputImage::SizeType SizeType;
85  typedef typename TInputImage::PixelType PixelType;
88  typedef typename InputImageType::ConstPointer InputImageConstPointer;
89  typedef std::queue<IndexType> QueueType;
90  typedef typename OutputImageType::RegionType RegionType;
91  typedef typename OutputImageType::PixelType OutputPixelType;
92  typedef typename OutputImageType::Pointer OutputImagePointer;
93 
96  itkSetMacro(Weight, double);
97  itkGetMacro(Weight, double);
98 
103  itkSetMacro(Threshold, double);
104  itkGetMacro(Threshold, double);
105 
108  itkSetMacro(InsideValue, OutputPixelType);
109  itkGetMacro(InsideValue, OutputPixelType);
110 
113  itkSetMacro(OutsideValue, OutputPixelType);
114  itkGetMacro(OutsideValue, OutputPixelType);
115 
117  itkSetMacro( ObjectSeed, IndexType );
118  itkGetConstReferenceMacro( ObjectSeed, IndexType );
119 
121  void MakeSegmentObject();
122 
124  const FuzzySceneType * GetFuzzyScene(void) const
125  { return m_FuzzyScene; };
126 
128  void UpdateThreshold(const double x);
129 
130 protected:
133  void PrintSelf(std::ostream& os, Indent indent) const;
134 
136  void GenerateData();
137 
138  double m_Weight;
139  double m_Threshold;
142 
146 
148 
149  void PushNeighbors(const IndexType &center);
150 
152  virtual double FuzzyAffinity(const PixelType, const PixelType)
153  { return 0; }
154 
155  double FindStrongPath(const IndexType &center);
156 
157 private:
158  SimpleFuzzyConnectednessImageFilterBase(const Self&); //purposely not implemented
159  void operator=(const Self&); //purposely not implemented
160 
163 
164 };
165 
166 
167 } // end namespace itk.
168 
169 #ifndef ITK_MANUAL_INSTANTIATION
171 #endif
172 
173 #endif

Generated at Sun May 19 2013 00:07:54 for Orfeo Toolbox with doxygen 1.8.3.1