RTK
2.6.0
Reconstruction Toolkit
|
#include <rtkFFTProjectionsConvolutionImageFilter.h>
Public Types | |
using | ConstPointer = itk::SmartPointer< const Self > |
using | FFTInputImagePointer = typename FFTInputImageType::Pointer |
using | FFTInputImageType = typename itk::Image< TFFTPrecision, TInputImage::ImageDimension > |
using | FFTOutputImagePointer = typename FFTOutputImageType::Pointer |
using | FFTOutputImageType = typename itk::Image< std::complex< TFFTPrecision >, TInputImage::ImageDimension > |
using | IndexType = typename InputImageType::IndexType |
using | InputImageType = TInputImage |
using | OutputImageType = TOutputImage |
using | Pointer = itk::SmartPointer< Self > |
using | RegionType = typename InputImageType::RegionType |
using | Self = FFTProjectionsConvolutionImageFilter |
using | SizeType = typename InputImageType::SizeType |
using | Superclass = itk::ImageToImageFilter< TInputImage, TOutputImage > |
using | ZeroPadFactorsType = itk::Vector< int, 2 > |
Public Member Functions | |
virtual const char * | GetNameOfClass () const |
virtual int | GetGreatestPrimeFactor () const |
virtual void | SetGreatestPrimeFactor (int _arg) |
virtual double | GetTruncationCorrection () const |
virtual void | SetTruncationCorrection (double _arg) |
virtual ZeroPadFactorsType | GetZeroPadFactors () const |
virtual void | SetZeroPadFactors (ZeroPadFactorsType _arg) |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = TOutputImage::ImageDimension |
Protected Member Functions | |
void | AfterThreadedGenerateData () override |
void | BeforeThreadedGenerateData () override |
FFTProjectionsConvolutionImageFilter () | |
void | GenerateInputRequestedRegion () override |
int | GreatestPrimeFactor (int n) const |
bool | IsPrime (int n) const |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
void | ThreadedGenerateData (const RegionType &outputRegionForThread, ThreadIdType threadId) override |
virtual void | UpdateFFTProjectionsConvolutionKernel (const SizeType size)=0 |
virtual void | UpdateTruncationMirrorWeights () |
~FFTProjectionsConvolutionImageFilter () override=default | |
virtual FFTInputImagePointer | PadInputImageRegion (const RegionType &inputRegion) |
RegionType | GetPaddedImageRegion (const RegionType &inputRegion) |
Protected Attributes | |
int | m_KernelDimension { 1 } |
FFTOutputImagePointer | m_KernelFFT |
std::vector< TFFTPrecision > | m_TruncationMirrorWeights |
Private Attributes | |
int | m_BackupNumberOfThreads { 1 } |
int | m_GreatestPrimeFactor { 2 } |
ZeroPadFactorsType | m_ZeroPadFactors |
double | m_TruncationCorrection { 0. } |
int | GetTruncationCorrectionExtent () |
Base class for 1D or 2D FFT based convolution of projections.
The filter code is based on FFTConvolutionImageFilter by Gaetan Lehmann (see https://hdl.handle.net/10380/3154).
Definition at line 45 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 55 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTInputImagePointer = typename FFTInputImageType::Pointer |
Definition at line 65 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTInputImageType = typename itk::Image<TFFTPrecision, TInputImage::ImageDimension> |
Definition at line 64 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTOutputImagePointer = typename FFTOutputImageType::Pointer |
Definition at line 67 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTOutputImageType = typename itk::Image<std::complex<TFFTPrecision>, TInputImage::ImageDimension> |
Definition at line 66 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::IndexType = typename InputImageType::IndexType |
Definition at line 61 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::InputImageType = TInputImage |
Some convenient type alias.
Definition at line 58 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::OutputImageType = TOutputImage |
Definition at line 59 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::Pointer = itk::SmartPointer<Self> |
Definition at line 54 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::RegionType = typename InputImageType::RegionType |
Definition at line 60 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::Self = FFTProjectionsConvolutionImageFilter |
Standard class type alias.
Definition at line 52 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::SizeType = typename InputImageType::SizeType |
Definition at line 62 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::Superclass = itk::ImageToImageFilter<TInputImage, TOutputImage> |
Definition at line 53 of file rtkFFTProjectionsConvolutionImageFilter.h.
using rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >::ZeroPadFactorsType = itk::Vector<int, 2> |
Definition at line 68 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
protected |
|
overrideprotecteddefault |
|
overrideprotectedvirtual |
Reimplemented from itk::ImageSource< TOutputImage >.
|
overrideprotectedvirtual |
Reimplemented from itk::ImageSource< TOutputImage >.
|
overrideprotectedvirtual |
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >.
|
virtual |
Set/Get the greatest prime factor allowed on the size of the padded image. The filter increase the size of the image to reach a size with the greatest prime factor smaller or equal to the specified value. The default value is 13, which is the greatest prime number for which the FFT are precomputed in FFTW, and thus gives very good performance. A greatest prime factor of 2 produce a size which is a power of 2, and thus is suitable for vnl base fft filters. A greatest prime factor of 1 or less - typically 0 - disable the extra padding.
Warning: this parameter is not used (and useful) only when ITK is built with FFTW support.
|
virtual |
Runtime information support.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >, rtk::FFTHilbertImageFilter< TInputImage, TOutputImage, TFFTPrecision >, and rtk::ScatterGlareCorrectionImageFilter< TInputImage, TOutputImage, TFFTPrecision >.
|
protected |
Pad the inputRegion region of the input image and returns a pointer to the new padded image. Padding includes a correction for truncation [Ohnesorge, Med Phys, 2000]. centralRegion is the region of the returned image which corresponds to inputRegion.
|
virtual |
Set/Get the percentage of the image widthfeathered with data to correct for truncation.
|
private |
Percentage of the image width which is feathered with data to correct for truncation. 0 (default) means no correction.
|
virtual |
Set/Get the zero padding factors in x and y directions. Accepted values are either 1 and 2. The y value is only used if the convolution kernel is 2D.
|
protected |
|
protected |
|
protectedvirtual |
Pad the inputRegion region of the input image and returns a pointer to the new padded image. Padding includes a correction for truncation [Ohnesorge, Med Phys, 2000]. centralRegion is the region of the returned image which corresponds to inputRegion.
|
overrideprotectedvirtual |
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
|
virtual |
Set/Get the greatest prime factor allowed on the size of the padded image. The filter increase the size of the image to reach a size with the greatest prime factor smaller or equal to the specified value. The default value is 13, which is the greatest prime number for which the FFT are precomputed in FFTW, and thus gives very good performance. A greatest prime factor of 2 produce a size which is a power of 2, and thus is suitable for vnl base fft filters. A greatest prime factor of 1 or less - typically 0 - disable the extra padding.
Warning: this parameter is not used (and useful) only when ITK is built with FFTW support.
|
virtual |
Set/Get the percentage of the image widthfeathered with data to correct for truncation.
|
inlinevirtual |
Set/Get the zero padding factors in x and y directions. Accepted values are either 1 and 2. The y value is only used if the convolution kernel is 2D.
Definition at line 110 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
overrideprotected |
|
protectedpure virtual |
Creates and return a pointer to the convolution kernel. Can be 1D or 2D. Used in generate data functions, must be implemented in daughter classes.
Implemented in rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >, rtk::FFTHilbertImageFilter< TInputImage, TOutputImage, TFFTPrecision >, and rtk::ScatterGlareCorrectionImageFilter< TInputImage, TOutputImage, TFFTPrecision >.
|
protectedvirtual |
Pre compute weights for truncation correction in a lookup table. The index is the distance to the original image border. Careful: the function is not thread safe but it does nothing if the weights have already been computed.
|
static |
ImageDimension constants
Definition at line 71 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
private |
Definition at line 204 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
private |
Greatest prime factor of the FFT input.
Definition at line 203 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
protected |
Must be set to fix whether the kernel is 1D or 2D. Will have an effect on the padded region and the input requested region.
Definition at line 179 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
protected |
FFT of the convolution kernel that each daughter class must update.
Definition at line 184 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
private |
Percentage of the image width which is feathered with data to correct for truncation. 0 (default) means no correction.
Definition at line 190 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
protected |
Definition at line 175 of file rtkFFTProjectionsConvolutionImageFilter.h.
|
private |
Zero padding factors in x and y directions. Accepted values are either 1 and 2. The y value is only used if the convolution kernel is 2D.
Definition at line 198 of file rtkFFTProjectionsConvolutionImageFilter.h.