19 #ifndef rtkProjectionsReader_h 20 #define rtkProjectionsReader_h 124 template <
class TOutputImage>
162 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
169 if (m_FileNames != name)
175 const FileNamesContainer &
184 itkGetConstMacro(Origin, OutputImagePointType);
188 itkGetConstMacro(Spacing, OutputImageSpacingType);
191 itkGetConstMacro(Direction, OutputImageDirectionType);
194 itkSetMacro(UpperBoundaryCropSize, OutputImageSizeType);
195 itkGetConstMacro(UpperBoundaryCropSize, OutputImageSizeType);
196 itkSetMacro(LowerBoundaryCropSize, OutputImageSizeType);
197 itkGetConstMacro(LowerBoundaryCropSize, OutputImageSizeType);
202 itkGetConstReferenceMacro(ShrinkFactors, ShrinkFactorsType);
207 itkGetConstReferenceMacro(MedianRadius, MedianRadiusType);
208 itkGetMacro(ConditionalMedianThresholdMultiplier,
double);
209 itkSetMacro(ConditionalMedianThresholdMultiplier,
double);
213 itkGetMacro(AirThreshold,
double);
217 itkGetMacro(ScatterToPrimaryRatio,
double);
220 itkGetMacro(NonNegativityConstraintThreshold,
double);
221 itkSetMacro(NonNegativityConstraintThreshold,
double);
227 itkGetMacro(I0,
double);
234 itkGetMacro(IDark,
double);
239 itkGetMacro(WaterPrecorrectionCoefficients, WaterPrecorrectionVectorType);
243 if (this->m_WaterPrecorrectionCoefficients != _arg)
245 this->m_WaterPrecorrectionCoefficients = _arg;
254 itkGetConstMacro(ComputeLineIntegral,
bool);
255 itkBooleanMacro(ComputeLineIntegral);
260 itkGetMacro(VectorComponent,
unsigned int);
277 GenerateOutputInformation()
override;
283 PrintSelf(std::ostream & os,
itk::Indent indent)
const override;
287 GenerateData()
override;
296 template <
class TInputImage>
298 PropagateParametersToMiniPipeline();
345 double m_AirThreshold{ 32000 };
346 double m_ScatterToPrimaryRatio{ 0. };
349 double m_IDark{ 0. };
350 double m_ConditionalMedianThresholdMultiplier{ 1. };
352 bool m_ComputeLineIntegral{
true };
353 unsigned int m_VectorComponent{ 0 };
359 #ifndef ITK_MANUAL_INSTANTIATION 360 # include "rtkProjectionsReader.hxx" 363 #endif // rtkProjectionsReader_h typename OutputImageType::SpacingType OutputImageSpacingType
typename OutputImageType::RegionType OutputImageRegionType
OutputImageDirectionType m_Direction
const FileNamesContainer & GetFileNames() const
Performs the classical water precorrection for beam hardening (Kachelriess, Med. Phys. 2006)
OutputImagePointType m_Origin
typename OutputImageType::Pointer OutputImagePointer
itk::ProcessObject::Pointer m_VectorComponentSelectionFilter
itk::ProcessObject::Pointer m_ScatterFilter
static constexpr T NonpositiveMin()
OutputImageSpacingType m_Spacing
OutputImageSizeType m_UpperBoundaryCropSize
TOutputImage OutputImageType
WaterPrecorrectionVectorType m_WaterPrecorrectionCoefficients
typename OutputImageType::SizeType OutputImageSizeType
typename OutputImageType::PointType OutputImagePointType
itk::ImageSource< TOutputImage >::Pointer m_RawCastFilter
#define itkSetMacro(name, type)
FileNamesContainer m_FileNames
itk::ProcessObject::Pointer m_I0EstimationFilter
std::vector< double > WaterPrecorrectionVectorType
itk::ProcessObject::Pointer m_BinningFilter
StreamingType::Pointer m_StreamingFilter
MedianRadiusType m_MedianRadius
typename rtk::ConditionalMedianImageFilter< TOutputImage >::MedianRadiusType MedianRadiusType
itk::ProcessObject::Pointer m_ChangeInformationFilter
itk::ImageSource< TOutputImage >::Pointer m_RawToAttenuationFilter
typename OutputImageType::PixelType OutputImagePixelType
OutputImageSizeType m_LowerBoundaryCropSize
typename OutputImageType::DirectionType OutputImageDirectionType
itk::ProcessObject::Pointer m_CropFilter
std::vector< std::string > FileNamesContainer
void SetFileNames(const FileNamesContainer &name)
itk::ProcessObject::Pointer m_ElektaRawFilter
WaterPrecorrectionType::Pointer m_WaterPrecorrectionFilter
itk::ProcessObject::Pointer m_RawDataReader
itk::ProcessObject::Pointer m_ConditionalMedianFilter
virtual void SetWaterPrecorrectionCoefficients(const WaterPrecorrectionVectorType _arg)
ShrinkFactorsType m_ShrinkFactors