|
STIR
6.3.0
|
The ramp filter used for (2D) FBP. More...
#include "stir/analytic/FBP2D/RampFilter.h"

Public Member Functions | |
| RampFilter (float sampledist_v, int length_v, float alpha_v=1, float fc_v=.5) | |
| virtual std::string | parameter_info () const |
Public Member Functions inherited from stir::ArrayFilterUsingRealDFTWithPadding< 1, float > | |
| ArrayFilterUsingRealDFTWithPadding () | |
| Default constructor (trivial kernel) | |
| ArrayFilterUsingRealDFTWithPadding (const Array< num_dimensions, float > &real_filter_kernel) | |
| Construct the filter given the real kernel coefficients. More... | |
| ArrayFilterUsingRealDFTWithPadding (const Array< num_dimensions, std::complex< float >> &kernel_in_frequency_space) | |
| Construct the filter given the complex kernel coefficients. More... | |
| Succeeded | set_kernel (const Array< num_dimensions, float > &real_filter_kernel) |
| set the real kernel coefficients | |
| Succeeded | set_kernel_in_frequency_space (const Array< num_dimensions, std::complex< float >> &kernel_in_frequency_space) |
| set the complex kernel coefficients | |
| bool | is_trivial () const override |
| checks if the kernel corresponds to a trivial filter operation More... | |
Public Member Functions inherited from stir::ArrayFunctionObject_2ArgumentImplementation< num_dimensions, float > | |
| void | operator() (Array< num_dimensions, float > &array) const override |
| in-place modification of array, implemented inline | |
| void | operator() (Array< num_dimensions, float > &out_array, const Array< num_dimensions, float > &in_array) const override |
| result stored in another array More... | |
Public Member Functions inherited from stir::ArrayFunctionObject< num_dimensions, float > | |
| virtual Succeeded | get_influencing_indices (IndexRange< num_dimensions > &influencing_indices, const IndexRange< num_dimensions > &output_indices) const |
| sets the range of indices that influences the result in a set of coordinates output_indices More... | |
| virtual Succeeded | get_influenced_indices (IndexRange< num_dimensions > &influenced_indices, const IndexRange< num_dimensions > &input_indices) const |
| sets the range of indices that gets influenced by a set of coordinate input_indices More... | |
Public Member Functions inherited from stir::TimedObject | |
| void | reset_timers () |
| reset all timers kept by this object | |
| void | stop_timers () const |
| stop all timers kept by this object More... | |
| void | start_timers (bool do_reset=false) const |
| start all timers kept by this object More... | |
| double | get_CPU_timer_value () const |
| get current value of the CPU timer (since first use or last reset) | |
| double | get_wall_clock_timer_value () const |
| get current value of the wall-clock timer (since first use or last reset) | |
Additional Inherited Members | |
Protected Member Functions inherited from stir::ArrayFilterUsingRealDFTWithPadding< 1, float > | |
| void | do_it (Array< num_dimensions, float > &out_array, const Array< num_dimensions, float > &in_array) const override |
| Performs the convolution. More... | |
Protected Attributes inherited from stir::ArrayFilterUsingRealDFTWithPadding< 1, float > | |
| Array< num_dimensions, std::complex< float > > | kernel_in_frequency_space |
The ramp filter used for (2D) FBP.
The filter has 2 parameters: a cut-off frequency fc and alpha which specifies the usual Hamming window (although I'm not so sure about the terminology here). So, for the "ramp filter" alpha =1. In frequency space, something like (from RampFilter.cxx)
The actual implementation works differently to overcome problems with defining the ramp in frequency space (with a well-known DC offset as consequence). We therefore compute the ramp*Hanning in "ordinary" space in continuous form, do the sampling there, and then DFT it.
1.8.13