vil_convolve_2d.h
Go to the documentation of this file.
1 // This is core/vil/algo/vil_convolve_2d.h
2 #ifndef vil_convolve_2d_h_
3 #define vil_convolve_2d_h_
4 //:
5 // \file
6 // \brief 2D Convolution
7 // \author Tim Cootes
8 
9 #ifdef _MSC_VER
10 # include <vcl_msvc_warnings.h>
11 #endif
12 #include <vil/vil_flip.h>
14 
15 
16 //: Convolve kernel with srcT
17 // dest is resized to (1+src_im.ni()-kernel.ni())x(1+src_im.nj()-kernel.nj())
18 // (a one plane image).
19 // On exit dest(x,y) = sum_ij src_im(x-i,y-j)*kernel(i,j)
20 // \relatesalso vil_image_view
21 template <class srcT, class destT, class kernelT, class accumT>
22 inline void vil_convolve_2d(const vil_image_view<srcT>& src_im,
23  vil_image_view<destT>& dest_im,
24  const vil_image_view<kernelT>& kernel,
25  accumT ac)
26 {
27  vil_correlate_2d(src_im,dest_im,vil_flip_ud(vil_flip_lr(kernel)), ac);
28 }
29 
30 #endif // vil_convolve_2d_h_
void vil_convolve_2d(const vil_image_view< srcT > &src_im, vil_image_view< destT > &dest_im, const vil_image_view< kernelT > &kernel, accumT ac)
Convolve kernel with srcT.
Concrete view of image data of type T held in memory.
Definition: vil_fwd.h:13
2D Convolution
void vil_correlate_2d(const vil_image_view< srcT > &src_im, vil_image_view< destT > &dest_im, const vil_image_view< kernelT > &kernel, accumT ac)
Correlate kernel with srcT.
vil_image_view< T > vil_flip_ud(const vil_image_view< T > &v)
Create a reflected view in which y -> nj-1-j.
Definition: vil_flip.h:30
vil_image_view< T > vil_flip_lr(const vil_image_view< T > &v)
Create a reflected view in which i -> ni-1-i.
Definition: vil_flip.h:17