#include <itkDirectFourierReconstructionImageToImageFilter.h>
Direct fourier reconstruction filter of a tomographic volume.
The algorithm is detailed in the Insight Journal publication on "Direct Fourier Tomographic Reconstruction Image-to-Image Filter" by D. Zosso, M. Bach Cuadra and J. Thiran, August 2007
This implementation was taken from the Insight Journal paper: https://doi.org/10.54294/z83ly1
Definition at line 51 of file itkDirectFourierReconstructionImageToImageFilter.h.
Public Member Functions | |
virtual::itk::LightObject::Pointer | CreateAnother () const |
virtual unsigned short | GetAlphaDirection () const |
virtual double | GetAlphaRange () const |
virtual double | GetCutoff () const |
const char * | GetNameOfClass () const override |
virtual unsigned short | GetOverSampling () const |
virtual unsigned short | GetRadialSplineOrder () const |
virtual unsigned short | GetRDirection () const |
virtual unsigned short | GetZDirection () const |
virtual unsigned short | GetZeroPadding () const |
virtual void | SetAlphaDirection (unsigned short _arg) |
virtual void | SetAlphaRange (double _arg) |
virtual void | SetCutoff (double _arg) |
virtual void | SetOverSampling (unsigned short _arg) |
virtual void | SetRadialSplineOrder (unsigned short _arg) |
virtual void | SetRDirection (unsigned short _arg) |
virtual void | SetZDirection (unsigned short _arg) |
virtual void | SetZeroPadding (unsigned short _arg) |
![]() | |
const InputImageType * | GetInput () const |
const InputImageType * | GetInput () const |
const InputImageType * | GetInput (unsigned int idx) const |
const InputImageType * | GetInput (unsigned int idx) const |
const char * | GetNameOfClass () const override |
const char * | GetNameOfClass () const override |
void | PopBackInput () override |
void | PopBackInput () override |
void | PopFrontInput () override |
void | PopFrontInput () override |
virtual void | PushBackInput (const InputImageType *input) |
virtual void | PushBackInput (const InputImageType *input) |
virtual void | PushFrontInput (const InputImageType *input) |
virtual void | PushFrontInput (const InputImageType *input) |
virtual void | SetInput (const InputImageType *input) |
virtual void | SetInput (const InputImageType *input) |
virtual void | SetInput (unsigned int, const TInputImage *image) |
virtual void | SetInput (unsigned int, const TInputImage *image) |
virtual void | SetCoordinateTolerance (double _arg) |
virtual double | GetCoordinateTolerance () const |
virtual void | SetCoordinateTolerance (double _arg) |
virtual double | GetCoordinateTolerance () const |
virtual void | SetDirectionTolerance (double _arg) |
virtual double | GetDirectionTolerance () const |
virtual void | SetDirectionTolerance (double _arg) |
virtual double | GetDirectionTolerance () const |
![]() | |
OutputImageType * | GetOutput (unsigned int idx) |
virtual void | GraftNthOutput (unsigned int idx, DataObject *graft) |
virtual void | GraftOutput (const DataObjectIdentifierType &key, DataObject *graft) |
virtual void | GraftOutput (DataObject *graft) |
OutputImageType * | GetOutput () |
const OutputImageType * | GetOutput () const |
ProcessObject::DataObjectPointer | MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override |
ProcessObject::DataObjectPointer | MakeOutput (const ProcessObject::DataObjectIdentifierType &) override |
![]() | |
virtual void | AbortGenerateDataOff () |
virtual void | AbortGenerateDataOn () |
virtual void | EnlargeOutputRequestedRegion (DataObject *output) |
virtual const bool & | GetAbortGenerateData () const |
DataObjectPointerArray | GetIndexedInputs () |
DataObjectPointerArray | GetIndexedOutputs () |
NameArray | GetInputNames () const |
DataObjectPointerArray | GetInputs () |
MultiThreaderType * | GetMultiThreader () const |
const char * | GetNameOfClass () const override |
DataObjectPointerArraySizeType | GetNumberOfIndexedInputs () const |
DataObjectPointerArraySizeType | GetNumberOfIndexedOutputs () const |
DataObjectPointerArraySizeType | GetNumberOfInputs () const |
DataObjectPointerArraySizeType | GetNumberOfOutputs () const |
virtual DataObjectPointerArraySizeType | GetNumberOfValidRequiredInputs () const |
NameArray | GetOutputNames () const |
DataObjectPointerArray | GetOutputs () |
virtual float | GetProgress () const |
NameArray | GetRequiredInputNames () const |
bool | HasInput (const DataObjectIdentifierType &key) const |
bool | HasOutput (const DataObjectIdentifierType &key) const |
void | IncrementProgress (float increment) |
virtual void | PrepareOutputs () |
virtual void | PropagateRequestedRegion (DataObject *output) |
virtual void | ResetPipeline () |
virtual void | SetAbortGenerateData (bool _arg) |
void | SetMultiThreader (MultiThreaderType *threader) |
virtual void | Update () |
virtual void | UpdateLargestPossibleRegion () |
virtual void | UpdateOutputData (DataObject *output) |
virtual void | UpdateOutputInformation () |
void | UpdateProgress (float progress) |
virtual void | SetReleaseDataFlag (bool val) |
virtual bool | GetReleaseDataFlag () const |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
virtual void | SetReleaseDataBeforeUpdateFlag (bool _arg) |
virtual const bool & | GetReleaseDataBeforeUpdateFlag () const |
virtual void | ReleaseDataBeforeUpdateFlagOn () |
virtual void | ReleaseDataBeforeUpdateFlagOff () |
virtual void | SetNumberOfWorkUnits (ThreadIdType _arg) |
virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
![]() | |
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
LightObject::Pointer | CreateAnother () const override |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) const |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexcept override |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
![]() | |
Pointer | Clone () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Private Types | |
using | FFTLineFilterType = VnlForwardFFTImageFilter<LineImageType> |
using | FFTLineInterpolatorType = ComplexBSplineInterpolateImageFunction<FFTLineType, double, double> |
using | FFTLineIteratorType = ImageRegionIteratorWithIndex<FFTLineType> |
using | FFTLineType = FFTLineFilterType::OutputImageType |
using | FFTSliceIteratorType = ImageRegionIteratorWithIndex<FFTSliceType> |
using | FFTSliceType = IFFTSliceFilterType::InputImageType |
using | IFFTImageType = Image<std::complex<double>, 2> |
using | IFFTSliceFilterType = VnlInverseFFTImageFilter<IFFTImageType> |
using | InputSliceIteratorType = ImageSliceConstIteratorWithIndex<InputImageType> |
using | LineImageType = Image<double, 1> |
using | OutputSliceIteratorType = ImageRegionIteratorWithIndex<OutputSliceType> |
using | OutputSliceType = IFFTSliceFilterType::OutputImageType |
using | ProjectionLineType = FFTLineFilterType::InputImageType |
Private Attributes | |
unsigned short | m_AlphaDirection {} |
double | m_AlphaRange {} |
double | m_Cutoff {} |
RegionType | m_InputRequestedRegion {} |
unsigned short | m_OverSampling {} |
double | m_PI {} |
unsigned short | m_RadialSplineOrder {} |
unsigned short | m_RDirection {} |
unsigned short | m_ZDirection {} |
unsigned short | m_ZeroPadding {} |
Additional Inherited Members | |
![]() | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
static constexpr unsigned int | OutputImageDimension |
![]() | |
static constexpr unsigned int | OutputImageDimension |
![]() | |
using | InputToOutputRegionCopierType |
using | OutputToInputRegionCopierType |
![]() | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
![]() | |
template<typename TSourceObject> | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
![]() | |
bool | m_DynamicMultiThreading |
![]() | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::ConstInputImagePointer = typename InputImageType::ConstPointer |
Standard (const) InputImagePointer
Definition at line 88 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::ConstPointer = SmartPointer<const Self> |
Standard ConstPointer type alias
Definition at line 71 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Definition at line 146 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
1D FFT line B-Spline interpolator
Definition at line 154 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
1D FFT line iterator
Definition at line 152 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Derived 1D FFT image type
Definition at line 148 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
2D FFT slice iterator
Definition at line 164 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Derived 2D FFT image type
Definition at line 160 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
2D inverse FFT filter type
Definition at line 157 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Definition at line 158 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::IndexType = typename InputImageType::IndexType |
Class IndexType
Definition at line 79 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::InputImagePointer = typename InputImageType::Pointer |
Special (non-const) InputImagePointer
Definition at line 90 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::InputImageType = TInputImage |
Definition at line 60 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::InputPixelType = typename InputImageType::PixelType |
Definition at line 61 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Const slice iterator type of the input image
Definition at line 142 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
1D FFT filter type
Definition at line 145 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::OutputImagePointer = typename OutputImageType::Pointer |
Definition at line 92 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::OutputImageType = TOutputImage |
Definition at line 62 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::OutputPixelType = typename OutputImageType::PixelType |
Definition at line 63 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
2D output slice iterator
Definition at line 166 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Derived 2D output slice type
Definition at line 162 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::Pointer = SmartPointer<Self> |
Standard Pointer type alias
Definition at line 69 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::PointType = typename InputImageType::PointType |
Class PointType
Definition at line 83 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Derived 1D input image type
Definition at line 150 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::RegionType = typename InputImageType::RegionType |
Class RegionType
Definition at line 77 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::Self = DirectFourierReconstructionImageToImageFilter |
Standard Self type alias
Definition at line 58 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::SizeType = typename InputImageType::SizeType |
Class SizeType
Definition at line 81 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::SpacingType = typename InputImageType::SpacingType |
Class SpacingType
Definition at line 85 of file itkDirectFourierReconstructionImageToImageFilter.h.
using itk::DirectFourierReconstructionImageToImageFilter< TInputImage, TOutputImage >::Superclass = ImageToImageFilter<InputImageType, OutputImageType> |
Standard Superclass type alias
Definition at line 66 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
protected |
Constructor
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
Destructor
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::LightObject.
|
overrideprotectedvirtual |
Actual filter computation
Reimplemented from itk::ProcessObject.
|
overrideprotectedvirtual |
Calculate the required input region
Reimplemented from itk::ProcessObject.
|
overrideprotectedvirtual |
Generate metadata for output image
Reimplemented from itk::ProcessObject.
|
virtual |
|
virtual |
|
virtual |
|
overridevirtual |
Return the name of this class as a string. Used by the object factory (implemented in New()) to instantiate objects of a named type. Also used for debugging and other output information.
Reimplemented from itk::LightObject.
References DirectFourierReconstructionImageToImageFilter().
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
static |
|
overrideprotectedvirtual |
Output class information
Reimplemented from itk::LightObject.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
private |
Angular index in the input image
Definition at line 176 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Covered angular range
Definition at line 173 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Radial lowpass cut-off frequency
Definition at line 171 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
The region requested from* the input image
Definition at line 185 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
n-fold oversampling
Definition at line 169 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
The constant pi....
Definition at line 183 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Spline order for the radial BSpline interpolation
Definition at line 180 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Radial index in the input image
Definition at line 178 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
Axial index in the input image
Definition at line 175 of file itkDirectFourierReconstructionImageToImageFilter.h.
|
private |
n-fold zero-padding
Definition at line 168 of file itkDirectFourierReconstructionImageToImageFilter.h.