19 #ifndef rtkAmsterdamShroudImageFilter_h 20 #define rtkAmsterdamShroudImageFilter_h 22 #include <itkImageToImageFilter.h> 23 #include <itkRecursiveGaussianImageFilter.h> 24 #include <itkMultiplyImageFilter.h> 25 #include <itkThresholdImageFilter.h> 26 #include <itkSumProjectionImageFilter.h> 27 #include <itkConvolutionImageFilter.h> 28 #include <itkSubtractImageFilter.h> 29 #include <itkPermuteAxesImageFilter.h> 30 #include <itkCropImageFilter.h> 80 template <
class TInputImage>
82 :
public itk::ImageToImageFilter<TInputImage, itk::Image<double, TInputImage::ImageDimension - 1>>
89 using Superclass = itk::ImageToImageFilter<TInputImage, itk::Image<double, TInputImage::ImageDimension - 1>>;
94 using TOutputImage = itk::Image<double, TInputImage::ImageDimension - 1>;
100 static constexpr
unsigned int InputImageDimension = TInputImage::ImageDimension;
101 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
102 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
112 itkGetMacro(UnsharpMaskSize,
unsigned int);
138 GenerateOutputInformation()
override;
140 GenerateInputRequestedRegion()
override;
142 UpdateUnsharpMaskKernel();
147 GenerateData()
override;
152 CropOutsideProjectedBox();
155 using DerivativeType = itk::RecursiveGaussianImageFilter<TInputImage, TInputImage>;
156 using NegativeType = itk::MultiplyImageFilter<TInputImage, TInputImage, TInputImage>;
158 using SumType = itk::SumProjectionImageFilter<TInputImage, TOutputImage>;
160 using SubtractType = itk::SubtractImageFilter<TOutputImage, TOutputImage>;
170 unsigned int m_UnsharpMaskSize{ 17 };
178 #ifndef ITK_MANUAL_INSTANTIATION 179 # include "rtkAmsterdamShroudImageFilter.hxx" itk::RecursiveGaussianImageFilter< TInputImage, TInputImage > DerivativeType
itk::SmartPointer< Self > Pointer
itk::MultiplyImageFilter< TInputImage, TInputImage, TInputImage > NegativeType
itk::SmartPointer< Self > Pointer
NegativeType::Pointer m_NegativeFilter
PermuteType::Pointer m_PermuteFilter
itk::SumProjectionImageFilter< TInputImage, TOutputImage > SumType
ThresholdType::Pointer m_ThresholdFilter
itk::SubtractImageFilter< TOutputImage, TOutputImage > SubtractType
itk::ConvolutionImageFilter< TOutputImage, TOutputImage > ConvolutionType
itk::PermuteAxesImageFilter< TOutputImage > PermuteType
Projection geometry for a source and a 2-D flat panel.
#define itkSetMacro(name, type)
Compute the Amsterdam shroud image for respiratory signal extraction.
SumType::Pointer m_SumFilter
itk::SmartPointer< const Self > ConstPointer
itk::Point< double, 3 > PointType
itk::ThresholdImageFilter< TInputImage > ThresholdType
ConvolutionType::Pointer m_ConvolutionFilter
itk::Image< double, TInputImage::ImageDimension - 1 > TOutputImage
itk::ImageToImageFilter< TInputImage, itk::Image< double, TInputImage::ImageDimension - 1 > > Superclass
SubtractType::Pointer m_SubtractFilter
typename GeometryType::Pointer GeometryPointer
DerivativeType::Pointer m_DerivativeFilter