Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vil_gauss_reduce.txx File Reference


Detailed Description

Functions to smooth and sub-sample image in one direction.

Author:
Tim Cootes

Definition in file vil_gauss_reduce.txx.

#include "vil_gauss_reduce.h"
#include <vcl_cassert.h>
#include <vil/vil_bilin_interp.h>
#include <vil/vil_plane.h>
#include <vil/vil_convert.h>

Go to the source code of this file.

Defines

#define VIL_GAUSS_REDUCE_INSTANTIATE(T)

Functions

template<class T>
void vil_gauss_reduce (const vil_image_view< T > &src_im, vil_image_view< T > &dest_im, vil_image_view< T > &work_im)
 Smooth and subsample src_im to produce dest_im.
template<class T>
void vil_gauss_reduce_2_3 (const vil_image_view< T > &src_im, vil_image_view< T > &dest_im, vil_image_view< T > &work_im)
 Smooth and subsample src_im to produce dest_im (2/3 size).
template<class T>
void vil_gauss_reduce_121 (const vil_image_view< T > &src_im, vil_image_view< T > &dest_im)
 Smooth and subsample src_im to produce dest_im.
unsigned char l_round (double x, unsigned char)
 An optimisable rounding function.
signed char l_round (double x, signed char)
double l_round (double x, double)
float l_round (double x, float)
template<class T>
void vil_gauss_reduce_general_plane (const vil_image_view< T > &src, vil_image_view< T > &dest, vil_image_view< T > &worka, vil_image_view< T > &workb, const vil_gauss_reduce_params &params)
 Smooth and subsample src_im to produce dest_im.
template<class T>
void vil_gauss_reduce_general (const vil_image_view< T > &src, vil_image_view< T > &dest, vil_image_view< T > &worka, vil_image_view< T > &workb, const vil_gauss_reduce_params &params)
 Smooth and subsample src_im by an arbitrary factor to produce dest_im.
template<class T>
void vil_gauss_reduce_1plane (const T *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, T *dest_im, vcl_ptrdiff_t d_x_step, vcl_ptrdiff_t d_y_step)
 Smooth and subsample single plane src_im in x to produce dest_im.
template<class T>
void vil_gauss_reduce_121_1plane (const T *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, T *dest_im, vcl_ptrdiff_t d_x_step, vcl_ptrdiff_t d_y_step)
 Smooth and subsample single plane src_im in x to produce dest_im using 121 filter in x and y.
template<class T>
void vil_gauss_reduce_2_3_1plane (const T *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, T *dest_im, vcl_ptrdiff_t d_x_step, vcl_ptrdiff_t d_y_step)
 Smooth and subsample single plane src_im in x, result is 2/3rd size.


Define Documentation

#define VIL_GAUSS_REDUCE_INSTANTIATE  ) 
 

Value:

template void vil_gauss_reduce(const vil_image_view<T >& src, \
                               vil_image_view<T >& dest, \
                               vil_image_view<T >& work_im); \
template void vil_gauss_reduce_2_3(const vil_image_view<T >& src, \
                                   vil_image_view<T >& dest, \
                                   vil_image_view<T >& work_im); \
template void vil_gauss_reduce_121(const vil_image_view<T >& src, \
                                   vil_image_view<T >& dest); \
template void vil_gauss_reduce_general(const vil_image_view<T >& src_im, \
                                       vil_image_view<T >& dest_im, \
                                       vil_image_view<T >& worka, \
                                       vil_image_view<T >& workb, \
                                       const vil_gauss_reduce_params& params)

Definition at line 463 of file vil_gauss_reduce.txx.


Function Documentation

float l_round double  x,
float 
[inline]
 

Definition at line 147 of file vil_gauss_reduce.txx.

double l_round double  x,
double 
[inline]
 

Definition at line 144 of file vil_gauss_reduce.txx.

signed char l_round double  x,
signed  char
[inline]
 

Definition at line 123 of file vil_gauss_reduce.txx.

unsigned char l_round double  x,
unsigned  char
[inline]
 

An optimisable rounding function.

Definition at line 120 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce const vil_image_view< T > &  src_im,
vil_image_view< T > &  dest_im,
vil_image_view< T > &  work_im
[related]
 

Smooth and subsample src_im to produce dest_im.

Applies filter in x and y, then samples every other pixel. work_im provides workspace

Definition at line 19 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_121 const vil_image_view< T > &  src_im,
vil_image_view< T > &  dest_im
[related]
 

Smooth and subsample src_im to produce dest_im.

Applies filter in x and y, then samples every other pixel.

Definition at line 94 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_121_1plane const T *  src_im,
unsigned  src_ni,
unsigned  src_nj,
vcl_ptrdiff_t  s_x_step,
vcl_ptrdiff_t  s_y_step,
T *  dest_im,
vcl_ptrdiff_t  d_x_step,
vcl_ptrdiff_t  d_y_step
 

Smooth and subsample single plane src_im in x to produce dest_im using 121 filter in x and y.

Smoothes with a 3x3 filter and subsamples

Definition at line 328 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_1plane const T *  src_im,
unsigned  src_nx,
unsigned  src_ny,
vcl_ptrdiff_t  s_x_step,
vcl_ptrdiff_t  s_y_step,
T *  dest_im,
vcl_ptrdiff_t  d_x_step,
vcl_ptrdiff_t  d_y_step
 

Smooth and subsample single plane src_im in x to produce dest_im.

Applies 1-5-8-5-1 filter in x, then samples every other pixel. Fills [0,(nx+1)/2-1][0,ny-1] elements of dest Assumes dest_im has sufficient data allocated.

This is essentially a utility function, used by mil_gauss_pyramid_builder

By applying twice we can obtain a full gaussian smoothed and sub-sampled 2D image.

Definition at line 281 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_2_3 const vil_image_view< T > &  src_im,
vil_image_view< T > &  dest_im,
vil_image_view< T > &  work_im
[related]
 

Smooth and subsample src_im to produce dest_im (2/3 size).

Applies filter in x and y, then samples every other pixel. work_im provides workspace

Definition at line 57 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_2_3_1plane const T *  src_im,
unsigned  src_ni,
unsigned  src_nj,
vcl_ptrdiff_t  s_x_step,
vcl_ptrdiff_t  s_y_step,
T *  dest_im,
vcl_ptrdiff_t  d_x_step,
vcl_ptrdiff_t  d_y_step
 

Smooth and subsample single plane src_im in x, result is 2/3rd size.

Applies alternate 1-3-1, 1-1 filter in x, then samples every other pixel. Fills [0,(2*ni+1)/3-1][0,nj-1] elements of dest

Note, 131 filter only an approximation

Definition at line 407 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_general const vil_image_view< T > &  src_im,
vil_image_view< T > &  dest_im,
vil_image_view< T > &  worka,
vil_image_view< T > &  workb,
const vil_gauss_reduce_params params
 

Smooth and subsample src_im by an arbitrary factor to produce dest_im.

Parameters:
worka provide workspace to avoid repetitive memory alloc and free
workb provide workspace to avoid repetitive memory alloc and free

Definition at line 252 of file vil_gauss_reduce.txx.

template<class T>
void vil_gauss_reduce_general_plane const vil_image_view< T > &  src,
vil_image_view< T > &  dest,
vil_image_view< T > &  worka,
vil_image_view< T > &  workb,
const vil_gauss_reduce_params params
 

Smooth and subsample src_im to produce dest_im.

Applies 5 pin filter in x and y, then samples every other pixel. Assumes dest_im has sufficient data allocated

Definition at line 157 of file vil_gauss_reduce.txx.


Generated on Thu Jan 10 14:40:02 2008 for core/vil by  doxygen 1.4.4