Convolutions.C File Reference

#include "Image/Convolutions.H"
#include "Image/Image.H"
#include "Image/Pixels.H"
#include "rutz/trace.h"
#include "inst/Image/Convolutions.I"
Include dependency graph for Convolutions.C:
This graph shows which files directly or indirectly include this file:

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)

Detailed Description

basic 1-D and 2-D filtering operations

Definition in file Convolutions.C.


Function Documentation

template<class T >
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().

template<class T >
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().

Generated on Sun May 8 08:42:41 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3