1D Convolution with cunning boundary options More...
#include <algorithm>#include <cstdlib>#include <cstring>#include <iostream>#include <cassert>#include <vil/vil_image_view.h>#include <vil/vil_image_resource.h>#include <vil/vil_property.h>Go to the source code of this file.
Classes | |
| class | vil_convolve_1d_resource< kernelT, accumT, destT > |
| A resource adaptor that behaves like a convolved version of its input. More... | |
Macros | |
| #define | macro(F, T) |
Enumerations | |
| enum | vil_convolve_boundary_option { vil_convolve_ignore_edge, vil_convolve_no_extend, vil_convolve_zero_extend, vil_convolve_constant_extend, vil_convolve_periodic_extend, vil_convolve_reflect_extend, vil_convolve_trim } |
| Available options for boundary behavior. More... | |
Functions | |
| template<class srcT , class destT , class kernelT , class accumT > | |
| void | vil_convolve_edge_1d (const srcT *src, unsigned n, std::ptrdiff_t s_step, destT *dest, std::ptrdiff_t d_step, const kernelT *kernel, std::ptrdiff_t k_lo, std::ptrdiff_t k_hi, std::ptrdiff_t kstep, accumT, vil_convolve_boundary_option option) |
| Convolve edge with kernel[x*kstep] x in [k_lo,k_hi] (k_hi>=0). More... | |
| template<class srcT , class destT , class kernelT , class accumT > | |
| void | vil_convolve_1d (const srcT *src0, unsigned nx, std::ptrdiff_t s_step, destT *dest0, std::ptrdiff_t d_step, const kernelT *kernel, std::ptrdiff_t k_lo, std::ptrdiff_t k_hi, accumT ac, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option) |
| Convolve kernel[x] (x in [k_lo,k_hi]) with srcT. More... | |
| template<class srcT , class destT , class kernelT , class accumT > | |
| void | vil_convolve_1d (const vil_image_view< srcT > &src_im, vil_image_view< destT > &dest_im, const kernelT *kernel, std::ptrdiff_t k_lo, std::ptrdiff_t k_hi, accumT ac, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option) |
| Convolve kernel[i] (i in [k_lo,k_hi]) with srcT in i-direction. More... | |
| template<class destT , class kernelT , class accumT > | |
| vil_image_resource_sptr | vil_convolve_1d (const vil_image_resource_sptr &src_im, const destT, const kernelT *kernel, int k_lo, int k_hi, const accumT, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option) |
| Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT. More... | |
1D Convolution with cunning boundary options
i.e. the kernel g is reflected before the integration is performed. If you don't want this to happen, the behaviour you want is not called "convolution". So don't break the convolution routines in that particular way. Definition in file vil_convolve_1d.h.
| #define macro | ( | F, | |
| T | |||
| ) |
Available options for boundary behavior.
When convolving a finite signal the boundaries may be treated in various ways which can often be expressed in terms of ways to extend the signal outside its original range.
Definition at line 33 of file vil_convolve_1d.h.
|
inline |
Convolve kernel[x] (x in [k_lo,k_hi]) with srcT.
Assumes dest and src same size (nx) Kernel must not be larger than nx;
Definition at line 203 of file vil_convolve_1d.h.
|
inline |
Convolve kernel[i] (i in [k_lo,k_hi]) with srcT in i-direction.
On exit dest_im(i,j) = sum src(i-x,j)*kernel(x) (x=k_lo..k_hi)
| kernel | should point to tap 0. |
| dest_im | will be resized to size of src_im. |
Definition at line 248 of file vil_convolve_1d.h.
| vil_image_resource_sptr vil_convolve_1d | ( | const vil_image_resource_sptr & | src_im, |
| const destT | dt, | ||
| const kernelT * | kernel, | ||
| int | k_lo, | ||
| int | k_hi, | ||
| const accumT | ac, | ||
| vil_convolve_boundary_option | start_option, | ||
| vil_convolve_boundary_option | end_option | ||
| ) |
Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT.
| kernel | should point to tap 0. |
Definition at line 406 of file vil_convolve_1d.h.
|
inline |
Convolve edge with kernel[x*kstep] x in [k_lo,k_hi] (k_hi>=0).
Fills only edge: dest[i], i=0..(k_hi-1)
Definition at line 96 of file vil_convolve_1d.h.
1.8.15