
#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().
1.6.3