ITK  5.0.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<typename TInputImage, typename TOutputImage>
46  : public ImageToImageFilter<TInputImage, TOutputImage>
47 {
48 public:
52 
54  using InputImageType = TInputImage;
55  using OutputImageType = TOutputImage;
56 
60 
62  using InputImagePixelType = typename TInputImage::PixelType;
63  using OutputImagePixelType = typename TOutputImage::PixelType;
65  using SpacingType = typename InputImageType::SpacingType;
66 
68  itkNewMacro(Self);
69 
73 
76 
78  static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
79 
80  static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension;
81 
84 
86  throw(InvalidRequestedRegionError) override;
87 
88 #ifdef ITK_USE_CONCEPT_CHECKING
89 
90  itkConceptMacro(InputHasNumericTraitsCheck,
92  itkConceptMacro(OutputHasNumericTraitsCheck,
94  itkConceptMacro(SameDimensionCheck,
96  itkConceptMacro(OutputIsFloatingPointCheck,
98 
100 #endif
101 
103  itkSetMacro( RegionOfInterest, RegionType );
104  itkGetMacro( RegionOfInterest, RegionType );
106 
108  itkSetMacro( SigmoidBeta, double );
109  itkGetMacro( SigmoidBeta, double );
111 
113  itkSetMacro( ResampleThickSliceData, bool );
114  itkGetMacro( ResampleThickSliceData, bool );
115  itkBooleanMacro( ResampleThickSliceData );
117 
125  itkSetMacro( AnisotropyThreshold, double );
126  itkGetMacro( AnisotropyThreshold, double );
128 
131  virtual void SetUseVesselEnhancingDiffusion( bool );
132  itkBooleanMacro( UseVesselEnhancingDiffusion );
134 
136  using PointListType = typename SeedSpatialObjectType::PointListType;
137 
138  void SetSeeds( PointListType p ) { this->m_Seeds = p; }
140 
142  void ProgressUpdate( Object * caller, const EventObject & event );
143 
144  // Return the status message
145  const char *GetStatusMessage() const
146  {
147  return m_StatusMessage.length() ? m_StatusMessage.c_str() : NULL;
148  }
149 
150  /* Manually specify sigma. This defaults to the max spacing in the dataset */
151  virtual void SetSigma( SigmaArrayType sigmas );
152 
155  void SetAbortGenerateData( const bool ) override;
156 
157 protected:
160  void PrintSelf(std::ostream& os, Indent indent) const override;
161 
162  void GenerateOutputInformation() override;
163  void GenerateData() override;
164 
165  // Filters used by this class
177  using SizeType = typename RegionType::SizeType;
180 
181 
182 private:
184 
185  double m_SigmoidBeta;
188 
200  std::string m_StatusMessage;
201  typename SeedSpatialObjectType::PointListType m_Seeds;
206 };
207 
208 } //end of namespace itk
209 
210 #ifndef ITK_MANUAL_INSTANTIATION
211 #include "itkLesionSegmentationImageFilter8.hxx"
212 #endif
213 
214 #endif
SigmoidFeatureGeneratorType::Pointer m_SigmoidFeatureGenerator
void SetAbortGenerateData(const bool) override
LesionSegmentationMethodType::Pointer m_LesionSegmentationMethod
typename SeedSpatialObjectType::PointListType PointListType
unsigned long SizeValueType
Definition: itkIntTypes.h:83
typename InputImageType::SpacingType SpacingType
virtual void SetSigma(SigmaArrayType sigmas)
Class for coordinating components of a segmentation framework.
void GenerateInputRequestedRegion() override
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Base class for all process objects that output image data.
typename CannyEdgesFeatureGeneratorType::SigmaArrayType SigmaArrayType
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:83
SeedSpatialObjectType::PointListType m_Seeds
Representation of a Landmark based on the spatial object classes.
typename OutputImageType::PixelType OutputImagePixelType
typename InputImageType::PixelType InputImagePixelType
LungWallGeneratorType::Pointer m_LungWallFeatureGenerator
typename OutputImageType::RegionType OutputImageRegionType
Generates a feature image by computing the Sato Vesselness measure of the input image and applying a ...
TOutputImage OutputImageType
FixedArray< ScalarRealType, itkGetStaticConstMacro(Dimension) > SigmaArrayType
VesselnessGeneratorType::Pointer m_VesselnessFeatureGenerator
virtual void SetUseVesselEnhancingDiffusion(bool)
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...
typename SegmentationModuleType::SpatialObjectType SpatialObjectType
CannyEdgesFeatureGeneratorType::Pointer m_CannyEdgesFeatureGenerator
Extract a region of interest from the input image.
Implementation of an image as spatial object.
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
SegmentationModuleType::Pointer m_SegmentationModule
InputImageSpatialObjectType::Pointer m_InputSpatialObject
void ProgressUpdate(Object *caller, const EventObject &event)
typename SegmentationModuleType::OutputSpatialObjectType OutputSpatialObjectType
Base class for most ITK classes.
Definition: itkObject.h:60
#define itkConceptMacro(name, concept)
Resamples the image to an isotropic resolution.
void PrintSelf(std::ostream &os, Indent indent) const override