Functions to smooth and sub-sample an image in one direction. More...
#include "vil_gauss_reduce.h"
#include <vcl_cmath.h>
#include <vcl_cassert.h>
#include <vxl_config.h>
#include <vnl/vnl_erf.h>
#include <vnl/vnl_math.h>
Go to the source code of this file.
Functions | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_1plane (const vxl_byte *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, vxl_byte *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_1plane (const float *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, float *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_1plane (const double *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, double *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_1plane (const int *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, int *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_1plane (const vxl_int_16 *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, vxl_int_16 *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_2_3_1plane (const float *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, float *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_2_3_1plane (const double *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, double *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_2_3_1plane (const vxl_byte *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, vxl_byte *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_2_3_1plane (const int *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, int *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_2_3_1plane (const vxl_int_16 *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, vxl_int_16 *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_121_1plane (const vxl_byte *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, vxl_byte *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_121_1plane (const float *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, float *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_121_1plane (const double *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, double *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_121_1plane (const int *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, int *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. | |
VCL_DEFINE_SPECIALIZATION void | vil_gauss_reduce_121_1plane (const vxl_int_16 *src_im, unsigned src_ni, unsigned src_nj, vcl_ptrdiff_t s_x_step, vcl_ptrdiff_t s_y_step, vxl_int_16 *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. |
Functions to smooth and sub-sample an image in one direction.
Definition in file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_121_1plane | ( | const vxl_byte * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
vxl_byte * | 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.
Smooths with a 3x3 filter and subsamples
Definition at line 443 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_121_1plane | ( | const float * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
float * | 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.
Smooths with a 3x3 filter and subsamples
Definition at line 515 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_121_1plane | ( | const double * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
double * | 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.
Smooths with a 3x3 filter and subsamples
Definition at line 587 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_121_1plane | ( | const int * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
int * | 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.
Smooths with a 3x3 filter and subsamples
Definition at line 659 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_121_1plane | ( | const vxl_int_16 * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
vxl_int_16 * | 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.
Smooths with a 3x3 filter and subsamples
Definition at line 731 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_1plane | ( | const vxl_byte * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
vxl_byte * | 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,(ni+1)/2-1][0,nj-1] elements of dest
Definition at line 19 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_1plane | ( | const float * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
float * | 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,(ni+1)/2-1][0,nj-1] elements of dest
Definition at line 64 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_1plane | ( | const double * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
double * | 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,(ni+1)/2-1][0,nj-1] elements of dest
Definition at line 105 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_1plane | ( | const int * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
int * | 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,(ni+1)/2-1][0,nj-1] elements of dest
Definition at line 145 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_1plane | ( | const vxl_int_16 * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
vxl_int_16 * | 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,(ni+1)/2-1][0,nj-1] elements of dest
Definition at line 187 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_2_3_1plane | ( | const float * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
float * | 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 234 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_2_3_1plane | ( | const double * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
double * | 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 275 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_2_3_1plane | ( | const vxl_byte * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
vxl_byte * | 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 316 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_2_3_1plane | ( | const int * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
int * | 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 360 of file vil_gauss_reduce.cxx.
VCL_DEFINE_SPECIALIZATION void vil_gauss_reduce_2_3_1plane | ( | const vxl_int_16 * | src_im, |
unsigned | src_ni, | ||
unsigned | src_nj, | ||
vcl_ptrdiff_t | s_x_step, | ||
vcl_ptrdiff_t | s_y_step, | ||
vxl_int_16 * | 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 403 of file vil_gauss_reduce.cxx.