![]() |
RTK
2.0.0
Reconstruction Toolkit
|
#include <rtkSplatWithKnownWeightsImageFilter.h>
Public Types | |
typedef VolumeSeriesType::RegionType | OutputImageRegionType |
typedef itk::SmartPointer< Self > | Pointer |
typedef SplatWithKnownWeightsImageFilter | Self |
typedef itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType > | Superclass |
Public Member Functions | |
virtual ::itk::LightObject::Pointer | CreateAnother () const |
virtual const char * | GetNameOfClass () const |
virtual int | GetProjectionNumber () |
virtual itk::Array2D< float > | GetWeights () |
void | SetInputVolume (const VolumeType *Volume) |
void | SetInputVolumeSeries (const VolumeSeriesType *VolumeSeries) |
void | SetProjectionNumber (int n) |
virtual void | SetWeights (itk::Array2D< float > _arg) |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
const itk::ImageRegionSplitterBase * | GetImageRegionSplitter (void) const override |
VolumeType::Pointer | GetInputVolume () |
VolumeSeriesType::ConstPointer | GetInputVolumeSeries () |
SplatWithKnownWeightsImageFilter () | |
void | ThreadedGenerateData (const typename VolumeSeriesType::RegionType &outputRegionForThread, itk::ThreadIdType) override |
virtual | ~SplatWithKnownWeightsImageFilter () override |
Protected Attributes | |
int | m_ProjectionNumber |
itk::ImageRegionSplitterDirection::Pointer | m_Splitter |
itk::Array2D< float > | m_Weights |
Private Member Functions | |
void | operator= (const Self &) |
SplatWithKnownWeightsImageFilter (const Self &) | |
Splats (linearly) a 3D volume into a 3D+t sequence of volumes.
See the reference paper: "Cardiac C-arm computed tomography using a 3D + time ROI reconstruction method with spatial and temporal regularization" by Mory et al.
4D conjugate gradient reconstruction consists in iteratively minimizing the following cost function:
Sum_over_theta || R_theta S_theta f - p_theta ||_2^2
with
Computing the gradient of this cost function yields:
S_theta^T R_theta^T R_theta S_theta f - S_theta^T R_theta^T p_theta
where A^T means the adjoint of operator A.
SplatWithKnownWeightsImageFilter implements S_theta^T.
Definition at line 67 of file rtkSplatWithKnownWeightsImageFilter.h.
typedef VolumeSeriesType::RegionType rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::OutputImageRegionType |
Definition at line 74 of file rtkSplatWithKnownWeightsImageFilter.h.
typedef itk::SmartPointer< Self > rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::Pointer |
Definition at line 73 of file rtkSplatWithKnownWeightsImageFilter.h.
typedef SplatWithKnownWeightsImageFilter rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::Self |
Standard class typedefs.
Definition at line 71 of file rtkSplatWithKnownWeightsImageFilter.h.
typedef itk::ImageToImageFilter< VolumeSeriesType, VolumeSeriesType > rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::Superclass |
Definition at line 72 of file rtkSplatWithKnownWeightsImageFilter.h.
|
protected |
|
inlineoverrideprotectedvirtual |
Definition at line 97 of file rtkSplatWithKnownWeightsImageFilter.h.
References rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetImageRegionSplitter(), rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetInputVolume(), rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::GetInputVolumeSeries(), and rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::ThreadedGenerateData().
|
private |
virtual::itk::LightObject::Pointer rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::CreateAnother | ( | ) | const |
|
overrideprotected |
Splits the OutputRequestedRegion along the first direction, not the last
Referenced by rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::~SplatWithKnownWeightsImageFilter().
|
protected |
|
protected |
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ImageSource< TOutputImage >.
|
virtual |
|
virtual |
Macros that take care of implementing the Get and Set methods for Weights and projectionNumber.
|
static |
Method for creation through the object factory.
|
private |
void rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::SetInputVolume | ( | const VolumeType * | Volume | ) |
The 3D image that will be added, with coefficients, to each 3D volume of the 4D image.
void rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::SetInputVolumeSeries | ( | const VolumeSeriesType * | VolumeSeries | ) |
The 4D image to be updated.
void rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::SetProjectionNumber | ( | int | n | ) |
|
virtual |
|
overrideprotected |
Does the real work.
Referenced by rtk::SplatWithKnownWeightsImageFilter< VolumeSeriesType, VolumeType >::~SplatWithKnownWeightsImageFilter().
|
protected |
Definition at line 110 of file rtkSplatWithKnownWeightsImageFilter.h.
|
protected |
Definition at line 107 of file rtkSplatWithKnownWeightsImageFilter.h.
|
protected |
Definition at line 109 of file rtkSplatWithKnownWeightsImageFilter.h.