PCL
pcl::FourierTransform Class Reference

Out-of-place discrete Fourier transform of two-dimensional images. More...

#include <FourierTransform.h>

+ Inheritance diagram for pcl::FourierTransform:

Public Member Functions

 FourierTransform ()=default
 
 FourierTransform (const FourierTransform &)=default
 
 FourierTransform (FourierTransform &&)=default
 
virtual ~FourierTransform ()
 
void Clear ()
 
const ImageVariantDFT () const
 
ImageVariantDFT ()
 
const ImageVariantoperator* () const
 
ImageVariantoperator* ()
 
FourierTransformoperator= (const FourierTransform &)=default
 
FourierTransformoperator= (FourierTransform &&)=default
 
ImageVariant ReleaseTransform ()
 
- Public Member Functions inherited from pcl::BidirectionalImageTransformation
 BidirectionalImageTransformation ()=default
 
 BidirectionalImageTransformation (const BidirectionalImageTransformation &)=default
 
virtual ~BidirectionalImageTransformation ()
 
template<class P >
const GenericImage< P > & operator<< (const GenericImage< P > &image)
 
const ImageVariantoperator<< (const ImageVariant &image)
 
- Public Member Functions inherited from pcl::ImageTransformation
 ImageTransformation ()=default
 
 ImageTransformation (const ImageTransformation &)=default
 
virtual ~ImageTransformation ()
 
template<class P >
GenericImage< P > & operator>> (GenericImage< P > &image) const
 
ImageVariantoperator>> (ImageVariant &image) const
 
- Public Member Functions inherited from pcl::ParallelProcess
 ParallelProcess ()=default
 
 ParallelProcess (const ParallelProcess &)=default
 
void DisableParallelProcessing (bool disable=true)
 
void EnableParallelProcessing (bool enable=true, int maxProcessors=0)
 
bool IsParallelProcessingEnabled () const
 
int MaxProcessors () const
 
ParallelProcessoperator= (const ParallelProcess &)=default
 
void SetMaxProcessors (int maxProcessors)
 
void Swap (ParallelProcess &process)
 

Protected Member Functions

void Apply (pcl::Image &) const override
 
void Apply (pcl::DImage &) const override
 
void Apply (pcl::ComplexImage &) const override
 
void Apply (pcl::DComplexImage &) const override
 
void Apply (pcl::UInt8Image &) const override
 
void Apply (pcl::UInt16Image &) const override
 
void Apply (pcl::UInt32Image &) const override
 
void Transform (const pcl::Image &) override
 
void Transform (const pcl::DImage &) override
 
void Transform (const pcl::ComplexImage &) override
 
void Transform (const pcl::DComplexImage &) override
 
void Transform (const pcl::UInt8Image &) override
 
void Transform (const pcl::UInt16Image &) override
 
void Transform (const pcl::UInt32Image &) override
 

Detailed Description

FourierTransform performs out-of-place, discrete Fourier transforms of complex and real two-dimensional images, using fast Fourier transform algorithms.

FourierTransform stores a Fourier transform as either a ComplexImage (32-bit floating point) or a DComplexImage (64-bit floating point). The transform image is transported by an ImageVariant object. 64-bit transforms are created for 64-bit floating point (both real and complex) and 32-bit integer (real) images. For the rest of images a 32-bit transform is used.

See also
InPlaceFourierTransform

Definition at line 226 of file FourierTransform.h.

Constructor & Destructor Documentation

◆ FourierTransform() [1/3]

pcl::FourierTransform::FourierTransform ( )
default

Default constructor.

Creates a FourierTransform object with an empty Fourier transform.

◆ FourierTransform() [2/3]

pcl::FourierTransform::FourierTransform ( const FourierTransform )
default

Copy constructor.

This constructor copies the Fourier transform in the specified source object. The Fourier transform is an ImageVariant object. This constructor creates an ImageVariant that references the same image as the source object.

◆ FourierTransform() [3/3]

pcl::FourierTransform::FourierTransform ( FourierTransform &&  )
default

Move constructor.

◆ ~FourierTransform()

virtual pcl::FourierTransform::~FourierTransform ( )
inlinevirtual

Destroys this FourierTransform object.

The current Fourier transform, if it exists, is automatically released. The Fourier transform is implemented as an ImageVariant object. If there are no external references to the image transported by the ImageVariant, then it is also destroyed and deallocated.

Definition at line 260 of file FourierTransform.h.

Member Function Documentation

◆ Apply() [1/7]

void pcl::FourierTransform::Apply ( pcl::Image image) const
overrideprotectedvirtual

Applies this transformation to a 32-bit floating point image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [2/7]

void pcl::FourierTransform::Apply ( pcl::DImage image) const
overrideprotectedvirtual

Applies this transformation to a 64-bit floating point image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [3/7]

void pcl::FourierTransform::Apply ( pcl::ComplexImage image) const
overrideprotectedvirtual

Applies this transformation to a 32-bit complex image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [4/7]

void pcl::FourierTransform::Apply ( pcl::DComplexImage image) const
overrideprotectedvirtual

Applies this transformation to a 64-bit complex image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [5/7]

void pcl::FourierTransform::Apply ( pcl::UInt8Image image) const
overrideprotectedvirtual

Applies this transformation to an 8-bit unsigned integer image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [6/7]

void pcl::FourierTransform::Apply ( pcl::UInt16Image image) const
overrideprotectedvirtual

Applies this transformation to a 16-bit unsigned integer image.

Reimplemented from pcl::ImageTransformation.

◆ Apply() [7/7]

void pcl::FourierTransform::Apply ( pcl::UInt32Image image) const
overrideprotectedvirtual

Applies this transformation to a 32-bit unsigned integer image.

Reimplemented from pcl::ImageTransformation.

◆ Clear()

void pcl::FourierTransform::Clear ( )
inline

Releases the current Fourier transform, if exists.

If there are no external references to the image transported by the internal ImageVariant object, then the transform matrix, which is either a ComplexImage or a DComplexImage object, is destroyed.

Definition at line 350 of file FourierTransform.h.

◆ DFT() [1/2]

const ImageVariant& pcl::FourierTransform::DFT ( ) const
inline

Returns a constant reference to the Fourier transform in this FourierTransform object.

The Fourier transform is an ImageVariant object. It can transport either a 32-bit (float) or 64-bit (double) complex image, that is, either a ComplexImage or a DComplexImage, depending on the sample type of the transformed image.

Definition at line 289 of file FourierTransform.h.

◆ DFT() [2/2]

ImageVariant& pcl::FourierTransform::DFT ( )
inline

Returns a reference to the Fourier transform in this FourierTransform object.

The Fourier transform is an ImageVariant object. It can transport either a 32-bit (float) or 64-bit (double) complex image, that is, either a ComplexImage or a DComplexImage, depending on the sample type of the transformed image.

Definition at line 303 of file FourierTransform.h.

◆ operator*() [1/2]

const ImageVariant& pcl::FourierTransform::operator* ( ) const
inline

A synonym for DFT() const.

Definition at line 311 of file FourierTransform.h.

◆ operator*() [2/2]

ImageVariant& pcl::FourierTransform::operator* ( )
inline

A synonym for DFT().

Definition at line 319 of file FourierTransform.h.

◆ operator=() [1/2]

FourierTransform& pcl::FourierTransform::operator= ( const FourierTransform )
default

Copy assignment operator. Returns a reference to this object.

This operator copies the Fourier transform in the source object. The Fourier transform is an ImageVariant object. This operator causes the ImageVariant in this object to reference the same image as the source object. If this object already stores a Fourier transform, it is released before assignment.

◆ operator=() [2/2]

FourierTransform& pcl::FourierTransform::operator= ( FourierTransform &&  )
default

Move assignment operator. Returns a reference to this object.

◆ ReleaseTransform()

ImageVariant pcl::FourierTransform::ReleaseTransform ( )
inline

Transfers ownership of the current Fourier transform to the caller.

Returns a copy of the ImageVariant object that transports the current Fourier transform in this object. Then the internal ImageVariant of this object is released. The transform itself, which is either a ComplexImage or a DComplexImage, will not be destroyed, as the newly created ImageVariant will transport and reference it.

If this object stores no Fourier transform, the returned ImageVariant will be empty (no image transported).

Definition at line 336 of file FourierTransform.h.

◆ Transform() [1/7]

void pcl::FourierTransform::Transform ( const pcl::Image image)
overrideprotectedvirtual

Transforms a 32-bit floating point image.

Reimplemented from pcl::BidirectionalImageTransformation.

◆ Transform() [2/7]

void pcl::FourierTransform::Transform ( const pcl::DImage image)
overrideprotectedvirtual

Transforms a 64-bit floating point image.

Reimplemented from pcl::BidirectionalImageTransformation.

◆ Transform() [3/7]

void pcl::FourierTransform::Transform ( const pcl::ComplexImage image)
overrideprotectedvirtual

Transforms a 32-bit complex image.

Reimplemented from pcl::BidirectionalImageTransformation.

◆ Transform() [4/7]

void pcl::FourierTransform::Transform ( const pcl::DComplexImage image)
overrideprotectedvirtual

Transforms a 64-bit complex image.

Reimplemented from pcl::BidirectionalImageTransformation.

◆ Transform() [5/7]

void pcl::FourierTransform::Transform ( const pcl::UInt8Image image)
overrideprotectedvirtual

Transforms an 8-bit unsigned integer image.

Reimplemented from pcl::BidirectionalImageTransformation.

◆ Transform() [6/7]

void pcl::FourierTransform::Transform ( const pcl::UInt16Image image)
overrideprotectedvirtual

Transforms a 16-bit unsigned integer image.

Reimplemented from pcl::BidirectionalImageTransformation.

◆ Transform() [7/7]

void pcl::FourierTransform::Transform ( const pcl::UInt32Image image)
overrideprotectedvirtual

Transforms a 32-bit unsigned integer image.

Reimplemented from pcl::BidirectionalImageTransformation.


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