SourceXtractorPlusPlus
0.16
Please provide a description of the project.
|
#include <DFT.h>
Classes | |
struct | ConvolutionContext |
Public Types | |
typedef T | real_t |
typedef FFT< T >::complex_t | complex_t |
Public Member Functions | |
DFTConvolution (std::shared_ptr< const Image< T >> img) | |
virtual | ~DFTConvolution ()=default |
std::size_t | getWidth () const |
std::size_t | getHeight () const |
std::unique_ptr< ConvolutionContext > | prepare (const std::shared_ptr< const Image< T >> &model_ptr) const |
template<typename ... Args> | |
void | convolve (std::shared_ptr< WriteableImage< T >> image_ptr, std::unique_ptr< ConvolutionContext > &context, Args... padding_args) const |
template<typename ... Args> | |
void | convolve (std::shared_ptr< WriteableImage< T >> image_ptr, Args... padding_args) const |
std::shared_ptr< const Image< T > > | getKernel () const |
Protected Member Functions | |
void | padKernel (ConvolutionContext &context) const |
void | dumpImage (const std::shared_ptr< const Image< T >> &img, std::vector< T > &work_area) const |
Private Attributes | |
std::shared_ptr< const Image< T > > | m_kernel |
Convolution strategy based on the Discrete Fourier Transform
T | The pixel type |
TPadding | The padding strategy |
typedef FFT<T>::complex_t SourceXtractor::DFTConvolution< T, TPadding >::complex_t |
typedef T SourceXtractor::DFTConvolution< T, TPadding >::real_t |
|
inlineexplicit |
Constructor
img | Convolution kernel |
Definition at line 73 of file DFT.h.
References std::move().
|
virtualdefault |
Destructor
|
inline |
Convolve the image with the stored kernel
Args | Types of the parameters to be forwarded to the padding strategy |
image_ptr | The image to convolve |
padding_args | Forwarded to the padding strategy |
Definition at line 209 of file DFT.h.
References SourceXtractor::DFTConvolution< T, TPadding >::convolve(), std::forward(), and SourceXtractor::DFTConvolution< T, TPadding >::prepare().
|
inline |
Convolve the image with the stored kernel, using the given context storing the pre-computed kernel transform, and pre-allocated buffers
Args | Types of the parameters to be forwarded to the padding strategy |
image_ptr | The image to convolve |
context | The prepared context |
padding_args | Forwarded to the padding strategy |
Definition at line 152 of file DFT.h.
References SourceXtractor::copyFFTWorkAreaToImage(), SourceXtractor::DFTConvolution< T, TPadding >::dumpImage(), SourceXtractor::FFT< T >::executeForward(), and SourceXtractor::FFT< T >::executeInverse().
Referenced by SourceXtractor::DFTConvolution< T, TPadding >::convolve(), and SourceXtractor::BgDFTConvolutionImageSource::generateTile().
|
inlineprotected |
Definition at line 233 of file DFT.h.
References SourceXtractor::copyImageToFFTWorkArea().
Referenced by SourceXtractor::DFTConvolution< T, TPadding >::convolve(), and SourceXtractor::DFTConvolution< T, TPadding >::padKernel().
|
inline |
Definition at line 94 of file DFT.h.
References SourceXtractor::DFTConvolution< T, TPadding >::m_kernel.
Referenced by SourceXtractor::BgDFTConvolutionImageSource::generateTile().
|
inline |
Definition at line 218 of file DFT.h.
References SourceXtractor::DFTConvolution< T, TPadding >::m_kernel.
|
inline |
Definition at line 86 of file DFT.h.
References SourceXtractor::DFTConvolution< T, TPadding >::m_kernel.
Referenced by SourceXtractor::BgDFTConvolutionImageSource::generateTile().
|
inlineprotected |
Definition at line 223 of file DFT.h.
References SourceXtractor::PaddedImage< T, CoordinateInterpolation >::create(), SourceXtractor::RecenterImage< T >::create(), SourceXtractor::DFTConvolution< T, TPadding >::dumpImage(), SourceXtractor::DFTConvolution< T, TPadding >::m_kernel, SourceXtractor::DFTConvolution< T, TPadding >::ConvolutionContext::m_kernel_transform, SourceXtractor::DFTConvolution< T, TPadding >::ConvolutionContext::m_padded_height, and SourceXtractor::DFTConvolution< T, TPadding >::ConvolutionContext::m_padded_width.
Referenced by SourceXtractor::DFTConvolution< T, TPadding >::prepare().
|
inline |
Pre-computes the transform of the kernel, adapted to the image passed by model_ptr
model_ptr | Reference image. Only its size is used to compute the necessary padding, and kernel size before transformation |
convolve
to avoid re-computing the kernel multiple times Definition at line 106 of file DFT.h.
References SourceXtractor::FFT< T >::createForwardPlan(), SourceXtractor::FFT< T >::createInversePlan(), SourceXtractor::FFT< T >::executeForward(), SourceXtractor::fftRoundDimension(), SourceXtractor::DFTConvolution< T, TPadding >::m_kernel, and SourceXtractor::DFTConvolution< T, TPadding >::padKernel().
Referenced by SourceXtractor::DFTConvolution< T, TPadding >::convolve().
|
private |
Definition at line 239 of file DFT.h.
Referenced by SourceXtractor::DFTConvolution< T, TPadding >::getHeight(), SourceXtractor::DFTConvolution< T, TPadding >::getKernel(), SourceXtractor::DFTConvolution< T, TPadding >::getWidth(), SourceXtractor::DFTConvolution< T, TPadding >::padKernel(), and SourceXtractor::DFTConvolution< T, TPadding >::prepare().