PCL
pcl::AbstractFFT2D< T > Class Template Reference

Abstract base class of all two-dimensional fast Fourier transform classes. More...

#include <FFT2D.h>

+ Inheritance diagram for pcl::AbstractFFT2D< T >:

Public Types

using complex = Complex< T >
 
using complex_matrix = GenericMatrix< complex >
 
using complex_vector = GenericVector< complex >
 
using matrix = GenericMatrix< scalar >
 
using scalar = T
 
using transform = complex_matrix
 
using vector = GenericVector< scalar >
 

Public Member Functions

 AbstractFFT2D (int rows, int cols)
 
 AbstractFFT2D (int rows, int cols, StatusMonitor &monitor)
 
 ~AbstractFFT2D () override
 
int Cols () const
 
transformDFT ()
 
transform DFT () const
 
int NumberOfElements () const
 
virtual void Release ()
 
int Rows () const
 
- Public Member Functions inherited from pcl::ParallelProcess
 ParallelProcess ()=default
 
 ParallelProcess (const ParallelProcess &)=default
 
virtual ~ParallelProcess ()
 
void DisableParallelProcessing (bool disable=true) noexcept
 
void EnableParallelProcessing (bool enable=true, int maxProcessors=0) noexcept
 
bool IsParallelProcessingEnabled () const noexcept
 
int MaxProcessors () const noexcept
 
ParallelProcessoperator= (const ParallelProcess &)=default
 
void SetMaxProcessors (int maxProcessors) noexcept
 
void Swap (ParallelProcess &process) noexcept
 

Detailed Description

template<typename T>
class pcl::AbstractFFT2D< T >

The AbstractFFT2D template class implements basic properties and functions shared by all 2-D FFT PCL classes.

See also
GenericFFT2D, GenericRealFFT2D

Definition at line 129 of file FFT2D.h.

Member Typedef Documentation

◆ complex

template<typename T >
using pcl::AbstractFFT2D< T >::complex = Complex<T>

Represents a complex number in the context of this FFT class.

Definition at line 141 of file FFT2D.h.

◆ complex_matrix

template<typename T >
using pcl::AbstractFFT2D< T >::complex_matrix = GenericMatrix<complex>

Represents a complex matrix.

Definition at line 161 of file FFT2D.h.

◆ complex_vector

template<typename T >
using pcl::AbstractFFT2D< T >::complex_vector = GenericVector<complex>

Represents a vector of complex numbers.

Definition at line 151 of file FFT2D.h.

◆ matrix

template<typename T >
using pcl::AbstractFFT2D< T >::matrix = GenericMatrix<scalar>

Represents a real matrix.

Definition at line 156 of file FFT2D.h.

◆ scalar

template<typename T >
using pcl::AbstractFFT2D< T >::scalar = T

Represents a scalar in the context of this FFT class.

Definition at line 136 of file FFT2D.h.

◆ transform

template<typename T >
using pcl::AbstractFFT2D< T >::transform = complex_matrix

Represents a discrete Fourier transform matrix.

Definition at line 166 of file FFT2D.h.

◆ vector

template<typename T >
using pcl::AbstractFFT2D< T >::vector = GenericVector<scalar>

Represents a vector of real numbers.

Definition at line 146 of file FFT2D.h.

Constructor & Destructor Documentation

◆ AbstractFFT2D() [1/2]

template<typename T >
pcl::AbstractFFT2D< T >::AbstractFFT2D ( int  rows,
int  cols 
)
inline

Constructs an AbstractFFT2D object of the specified dimensions rows and cols.

Definition at line 172 of file FFT2D.h.

◆ AbstractFFT2D() [2/2]

template<typename T >
pcl::AbstractFFT2D< T >::AbstractFFT2D ( int  rows,
int  cols,
StatusMonitor monitor 
)
inline

Constructs an AbstractFFT2D object of the specified dimensions rows and cols, using the specified status monitor object.

On each transform performed with this object, the status monitor will be incremented by the sum of transform dimensions: rows + cols.

Definition at line 185 of file FFT2D.h.

◆ ~AbstractFFT2D()

template<typename T >
pcl::AbstractFFT2D< T >::~AbstractFFT2D ( )
inlineoverride

Destroys all internal control structures in this AbstractFFT2D object, including the current discrete Fourier transform, if exists.

Definition at line 196 of file FFT2D.h.

Member Function Documentation

◆ Cols()

template<typename T >
int pcl::AbstractFFT2D< T >::Cols ( ) const
inline

Returns the number of columns in the 2-D transform of this AbstractFFT2D object. Transform dimensions are specified in the constructors of all 2-D FFT classes.

Definition at line 216 of file FFT2D.h.

◆ DFT() [1/2]

template<typename T >
transform& pcl::AbstractFFT2D< T >::DFT ( )
inline

Returns a non-const reference to the current discrete Fourier transform in this object. The transform is a matrix of complex values.

For complex data transforms, the returned matrix has Rows()*Cols() elements. For real data, the returned matrix has Rows()*(Cols()/2 + 1) elements.

If no FFT has been performed on this object, this function returns a reference to an empty matrix.

Definition at line 258 of file FFT2D.h.

◆ DFT() [2/2]

template<typename T >
transform pcl::AbstractFFT2D< T >::DFT ( ) const
inline

Returns a duplicate of the current discrete Fourier transform as a matrix of complex values.

For complex data transforms, the returned matrix has Rows()*Cols() elements. For real data, the returned matrix has Rows()*(Cols()/2 + 1) elements.

If no FFT has been performed on this object, this function returns an empty matrix.

Definition at line 242 of file FFT2D.h.

◆ NumberOfElements()

template<typename T >
int pcl::AbstractFFT2D< T >::NumberOfElements ( ) const
inline

Returns the total number of matrix elements in the 2-D data set of this AbstractFFT2D object, or Rows() multiplied by Cols(). The dimensions are specified in the constructors of all 2-D FFT classes.

Definition at line 226 of file FFT2D.h.

◆ Release()

template<typename T >
virtual void pcl::AbstractFFT2D< T >::Release ( )
inlinevirtual

Destroys all internal control structures in this FFT object, including the current Fourier transform, if exists.

Definition at line 267 of file FFT2D.h.

◆ Rows()

template<typename T >
int pcl::AbstractFFT2D< T >::Rows ( ) const
inline

Returns the number of rows in the 2-D transform of this AbstractFFT2D object. Transform dimensions are specified in the constructors of all 2-D FFT classes.

Definition at line 206 of file FFT2D.h.


The documentation for this class was generated from the following file: