52 #ifndef __PCL_FFTConvolution_h
53 #define __PCL_FFTConvolution_h
58 #include <pcl/Diagnostics.h>
110 : m_filter( filter.Clone() )
112 PCL_CHECK(
bool( m_filter ) )
131 PCL_CHECK(
bool( m_image ) )
140 , m_image( x.m_image )
141 , m_outputRealCmp( x.m_outputRealCmp )
144 m_filter = x.m_filter->Clone();
166 (void)ImageTransformation::operator =( x );
167 (void)ParallelProcess::operator =( x );
170 m_filter = x.m_filter->Clone();
173 m_outputRealCmp = x.m_outputRealCmp;
201 PCL_PRECONDITION(
bool( m_filter ) )
231 m_filter = filter.
Clone();
232 PCL_CHECK(
bool( m_filter ) )
249 PCL_CHECK(
bool( m_image ) )
290 return m_outputRealCmp;
305 return !m_outputRealCmp;
316 m_outputRealCmp = enable;
327 m_outputRealCmp = !enable;
344 #ifdef __PCL_COMPATIBILITY
348 if ( numThreads >= 32 )
350 if ( numThreads >= 24 )
352 if ( numThreads >= 12 )
354 if ( numThreads >= 8 )
362 if ( numThreads >= 32 )
364 if ( numThreads >= 24 )
366 if ( numThreads >= 16 )
368 if ( numThreads >= 12 )
370 if ( numThreads >= 8 )
372 if ( numThreads >= 4 )
374 if ( numThreads >= 2 )
395 #ifdef __PCL_COMPATIBILITY
399 if ( numThreads >= 24 )
401 if ( numThreads >= 16 )
403 if ( numThreads >= 12 )
405 if ( numThreads >= 8 )
407 if ( numThreads >= 4 )
415 if ( numThreads >= 16 )
417 if ( numThreads >= 12 )
419 if ( numThreads >= 8 )
435 bool m_outputRealCmp =
false;
455 friend class PCL_FFTConvolutionEngine;
466 void Validate()
const;
467 void ValidateFilter()
const;
A smart pointer with exclusive object ownership and optional automatic object destruction.
Fourier-based two-dimensional convolution in the spatial domain.
const KernelFilter & Filter() const
void EnableMagnitudeOutput(bool enable=true)
void Apply(pcl::UInt16Image &) const override
void SetFilter(const KernelFilter &filter)
bool IsRealComponentOutputEnabled() const
FFTConvolution(const FFTConvolution &x)
bool IsMagnitudeOutputEnabled() const
void Apply(pcl::DComplexImage &) const override
void Apply(pcl::DImage &) const override
void Apply(pcl::UInt32Image &) const override
~FFTConvolution() override
void Apply(pcl::UInt8Image &) const override
const ImageVariant & FilterImage() const
void EnableRealComponentOutput(bool enable=true)
FFTConvolution(const ImageVariant &f)
FFTConvolution(const KernelFilter &filter)
const ComplexImage * ResponseFunctionDFT() const
void SetFilter(const ImageVariant &filter)
void Apply(pcl::ComplexImage &) const override
FFTConvolution(FFTConvolution &&)=default
void Apply(pcl::Image &) const override
Implements a generic, two-dimensional, shared or local image.
Acts like a union for all types of images in PCL, with optional class-wide ownership of transported i...
Kernel filter in two dimensions.
virtual KernelFilter * Clone() const
A process using multiple concurrent execution threads.
static constexpr int FasterThanSeparableFilterSize(int numThreads)
static constexpr int FasterThanNonseparableFilterSize(int numThreads)