28 template <
int num_dimensions,
typename elemT>
66 virtual std::string parameter_info()
const = 0;
75 const int length = filter.get_length();
82 Padded.
grow(1, length);
83 convlvC(Padded, filter, length);
120 filter(1, width_v * height_v)
127 void padd_scale_filter(
int height_proj,
int width_proj);
129 virtual std::string parameter_info()
const = 0;
144 assert(data.
get_length() == 2 * height * width);
161 fourn(data, nn, 2, 1);
162 for (j = 1, k = 1; j < width * height + 1; j++)
167 data[k++] *= filter[j] / (width * height);
168 data[k++] *= filter[j] / (width * height);
170 fourn(data, nn, 2, -1);
int get_length() const
return number of elements in this vector
Definition: VectorWithOffset.inl:534
Array< 1, float > filter
Stores the filter in frequency space (will be private sometime)
Definition: Filter.h:44
int get_min_index() const
get value of first valid index
Definition: VectorWithOffset.inl:116
void fourn(Array< 1, float > &data, Array< 1, int > &nn, int ndim, int isign)
n-dimensional FFT
virtual void grow(const IndexRange< num_dimensions > &range)
alias for resize()
Definition: Array.inl:83
2-dimensional filters (filtering done by FFTs)
Definition: Filter.h:114
void convlvC(Array< 1, float > &data, const Array< 1, float > &filter, int n)
Convolve data with a filter which is given in frequency space.
defines the Array class for multi-dimensional (numeric) arrays
base class for all objects which need timers. At the moment, there's only a CPU timer.
Definition: TimedObject.h:35
Array< 1, T > filter
Stores the filter in the 'funny' but efficient Numerical Recipes format.
Definition: Filter.h:136
declares the stir::TimedObject class
Preliminary class for 1D filtering using FFTs.
Definition: Filter.h:38
int get_max_index() const
get value of last valid index
Definition: VectorWithOffset.inl:123
void set_offset(const int min_index)
change value of starting index
Definition: VectorWithOffset.inl:332
Declaration of FFT routines.