ITK  4.13.0
Insight Segmentation and Registration Toolkit
itkLesionSegmentationImageFilter8.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkLesionSegmentationImageFilter8.h
5  Language: C++
6  Date: $Date$
7  Version: $Revision$
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 itkLesionSegmentationImageFilter8_h
18 #define itkLesionSegmentationImageFilter8_h
19 
20 #include "itkImageToImageFilter.h"
21 #include "itkImage.h"
22 #include "itkFixedArray.h"
23 #include "itkCommand.h"
24 #include "itkImageSpatialObject.h"
36 #include <string>
37 
38 namespace itk
39 {
40 
44 template<class TInputImage, class TOutputImage>
46  : public ImageToImageFilter<TInputImage, TOutputImage>
47 {
48 public:
52 
54  typedef TInputImage InputImageType;
55  typedef TOutputImage OutputImageType;
56 
60 
62  typedef typename TInputImage::PixelType InputImagePixelType;
63  typedef typename TOutputImage::PixelType OutputImagePixelType;
65  typedef typename InputImageType::SpacingType SpacingType;
66 
68  itkNewMacro(Self);
69 
71  typedef typename TOutputImage::RegionType OutputImageRegionType;
72  typedef typename TOutputImage::RegionType RegionType;
73 
76 
78  itkStaticConstMacro(ImageDimension, unsigned int,
79  TInputImage::ImageDimension);
80 
81  itkStaticConstMacro(OutputImageDimension, unsigned int,
82  TOutputImage::ImageDimension);
83 
86 
87  virtual void GenerateInputRequestedRegion()
89 
90 #ifdef ITK_USE_CONCEPT_CHECKING
91 
92  itkConceptMacro(InputHasNumericTraitsCheck,
94  itkConceptMacro(OutputHasNumericTraitsCheck,
96  itkConceptMacro(SameDimensionCheck,
98  itkConceptMacro(OutputIsFloatingPointCheck,
100 
102 #endif
103 
105  itkSetMacro( RegionOfInterest, RegionType );
106  itkGetMacro( RegionOfInterest, RegionType );
108 
110  itkSetMacro( SigmoidBeta, double );
111  itkGetMacro( SigmoidBeta, double );
113 
115  itkSetMacro( ResampleThickSliceData, bool );
116  itkGetMacro( ResampleThickSliceData, bool );
117  itkBooleanMacro( ResampleThickSliceData );
119 
127  itkSetMacro( AnisotropyThreshold, double );
128  itkGetMacro( AnisotropyThreshold, double );
130 
133  virtual void SetUseVesselEnhancingDiffusion( bool );
134  itkBooleanMacro( UseVesselEnhancingDiffusion );
136 
139 
140  void SetSeeds( PointListType p ) { this->m_Seeds = p; }
142 
144  void ProgressUpdate( Object * caller, const EventObject & event );
145 
146  // Return the status message
147  const char *GetStatusMessage() const
148  {
149  return m_StatusMessage.length() ? m_StatusMessage.c_str() : NULL;
150  }
151 
152  /* Manually specify sigma. This defaults to the max spacing in the dataset */
153  virtual void SetSigma( SigmaArrayType sigmas );
154 
157  virtual void SetAbortGenerateData( const bool );
158 
159 protected:
162  void PrintSelf(std::ostream& os, Indent indent) const;
163 
164  virtual void GenerateOutputInformation();
165  void GenerateData();
166 
167  // Filters used by this class
179  typedef typename RegionType::SizeType SizeType;
182 
183 
184 private:
186 
187  double m_SigmoidBeta;
190 
202  std::string m_StatusMessage;
208 };
209 
210 } //end of namespace itk
211 
212 #ifndef ITK_MANUAL_INSTANTIATION
213 #include "itkLesionSegmentationImageFilter8.hxx"
214 #endif
215 
216 #endif
RegionOfInterestImageFilter< InputImageType, InputImageType > CropFilterType
SigmoidFeatureGeneratorType::Pointer m_SigmoidFeatureGenerator
void PrintSelf(std::ostream &os, Indent indent) const
IsotropicResamplerImageFilter< InputImageType, InputImageType > IsotropicResamplerType
LesionSegmentationMethodType::Pointer m_LesionSegmentationMethod
CannyEdgesFeatureGeneratorType::SigmaArrayType SigmaArrayType
virtual void SetSigma(SigmaArrayType sigmas)
Class for coordinating components of a segmentation framework.
ImageSpatialObject< ImageDimension, InputImagePixelType > InputImageSpatialObjectType
Base class for all process objects that output image data.
unsigned long SizeValueType
Definition: itkIntTypes.h:143
SeedSpatialObjectType::PointListType PointListType
Generates a feature image by computing the inverse map to the canny edges in the image.
IsotropicResamplerType::Pointer m_IsotropicResampler
A Command subclass that calls a pointer to a member function.
Definition: itkCommand.h:84
SeedSpatialObjectType::PointListType m_Seeds
CannyEdgesFeatureGenerator< ImageDimension > CannyEdgesFeatureGeneratorType
Representation of a Landmark based on the spatial object classes.
LungWallGeneratorType::Pointer m_LungWallFeatureGenerator
SatoVesselnessSigmoidFeatureGenerator< ImageDimension > VesselnessGeneratorType
Generates a feature image by computing the Sato Vesselness measure of the input image and applying a ...
SigmoidFeatureGenerator< ImageDimension > SigmoidFeatureGeneratorType
VesselnessGeneratorType::Pointer m_VesselnessFeatureGenerator
virtual void SetUseVesselEnhancingDiffusion(bool)
LungWallFeatureGenerator< ImageDimension > LungWallGeneratorType
Abstraction of the Events used to communicating among filters and with GUIs.
Generates a feature image by computing the Sigmoid intensity transformation.
Class for combining multiple features into a single one by computing the pixel-wise minimum...
SegmentationModuleType::OutputSpatialObjectType OutputSpatialObjectType
CannyEdgesFeatureGeneratorType::Pointer m_CannyEdgesFeatureGenerator
Extract a region of interest from the input image.
itk::LandmarkSpatialObject< ImageDimension > SeedSpatialObjectType
Implementation of an image as spatial object.
Base class for filters that take an image as input and produce an image as output.
FastMarchingAndGeodesicActiveContourLevelSetSegmentationModule< ImageDimension > SegmentationModuleType
Control indentation during Print() invocation.
Definition: itkIndent.h:49
SegmentationModuleType::Pointer m_SegmentationModule
InputImageSpatialObjectType::Pointer m_InputSpatialObject
LesionSegmentationMethod< ImageDimension > LesionSegmentationMethodType
virtual void SetAbortGenerateData(const bool)
SegmentationModuleType::SpatialObjectType SpatialObjectType
std::vector< LandmarkPointType > PointListType
void ProgressUpdate(Object *caller, const EventObject &event)
Base class for most ITK classes.
Definition: itkObject.h:59
#define itkConceptMacro(name, concept)
Resamples the image to an isotropic resolution.
ImageToImageFilter< TInputImage, TOutputImage > Superclass
MinimumFeatureAggregator< ImageDimension > FeatureAggregatorType