#include "Image/Convolutions.H"
#include "Image/Image.H"
#include "Image/Pixels.H"
#include "rutz/trace.h"
#include "inst/Image/Convolutions.I"
Go to the source code of this file.
Functions | |
template<class T > | |
static Image< typename promote_trait< T, float >::TP > | convolveZeroHelper (const Image< T > &src, const float *filter, const int Nx, const int Ny) |
template<class T > | |
static Image< typename promote_trait< T, float >::TP > | convolveCleanHelper (const Image< T > &src, const float *filter, const int Nx, const int Ny) |
template<class T > | |
static Image< typename promote_trait< T, float >::TP > | convolve (const Image< T > &src, const float *filter, const int Nx, const int Ny, ConvolutionBoundaryStrategy boundary) |
template<class T > | |
Image< typename promote_trait < T, float >::TP > | optConvolve (const Image< T > &src, const Image< float > &f) |
This is a somewhat-optimized 2-D convolution. | |
template<class T > | |
Image< typename promote_trait < T, float >::TP > | convolveHmax (const Image< T > &src, const Image< float > &filter) |
Brute force, super inefficient 2D convolution (truncated filter boundary). | |
template<class T > | |
static Image< typename promote_trait< T, float >::TP > | xFilter (const Image< T > &src, const float *hFilt, const int hfs, ConvolutionBoundaryStrategy boundary) |
template<class T > | |
static Image< typename promote_trait< T, float >::TP > | yFilter (const Image< T > &src, const float *vFilt, const int vfs, ConvolutionBoundaryStrategy boundary) |
template<class T > | |
Image< typename promote_trait < T, float >::TP > | sepFilter (const Image< T > &src, const Image< float > &hFilter, const Image< float > &vFilter, ConvolutionBoundaryStrategy boundary) |
template<class T > | |
Image< typename promote_trait < T, float >::TP > | sepFilter (const Image< T > &src, const float *hFilt, const float *vFilt, const int hfs, const int vfs, ConvolutionBoundaryStrategy boundary) |
basic 1-D and 2-D filtering operations
Definition in file Convolutions.C.
Image<typename promote_trait<T, float>::TP> convolveHmax | ( | const Image< T > & | src, | |
const Image< float > & | filter | |||
) | [inline] |
Brute force, super inefficient 2D convolution (truncated filter boundary).
With normalization by the local image energy, a la HMAX
Definition at line 305 of file Convolutions.C.
References ASSERT, Image< T >::begin(), Image< T >::beginw(), Image< T >::getHeight(), Image< T >::getWidth(), Image< T >::initialized(), NO_INIT, sqrt(), and sum().
Image<typename promote_trait<T, float>::TP> optConvolve | ( | const Image< T > & | src, | |
const Image< float > & | filter | |||
) | [inline] |
This is a somewhat-optimized 2-D convolution.
It is optimized in the sense that there are special-case inner loops for (1) cases where the filter doesn't completely overlap with the local image patch because we're at the image boundary (in this case we need a specialized inner loop to handle these boundary conditions), and (2) cases where the filter and local image patch overlap completely (in which case we can use a more efficient inner loop).
Definition at line 191 of file Convolutions.C.
References ASSERT, Image< T >::begin(), Image< T >::beginw(), Image< T >::getHeight(), Image< T >::getWidth(), Image< T >::initialized(), and NO_INIT.
Referenced by buildPyrGabor().