Definition in file vil1_convolve_simple.txx.
#include "vil1_convolve_simple.h"
#include <vcl_cassert.h>
#include <vcl_algorithm.h>
#include <vcl_vector.h>
#include <vil1/vil1_memory_image_of.h>
Go to the source code of this file.
Defines | |
| #define | TRACE 0 |
| #define | VIL1_CONVOLVE_SIMPLE_INSTANTIATE0(I1, I2, AC, O) |
| #define | VIL1_CONVOLVE_SIMPLE_INSTANTIATE1(I1, I2, AC, O) |
| #define | VIL1_CONVOLVE_SIMPLE_INSTANTIATE2(I1, I2, AC, O) |
| #define | VIL1_CONVOLVE_SIMPLE_INSTANTIATE(I1, I2, AC, O) |
Functions | |
| template<class I1, class I2, class AC, class O> | |
| void | vil1_convolve_simple (I1 const *const *input1, unsigned w1, unsigned h1, I2 const *const *input2, unsigned w2, unsigned h2, AC *, O *const *out) |
| Convolution. | |
| template<class I1, class I2, class AC, class O> | |
| void | vil1_convolve_simple (vil1_memory_image_of< I1 > const &input1, int x1, int y1, unsigned w1, unsigned h1, vil1_memory_image_of< I2 > const &input2, int x2, int y2, unsigned w2, unsigned h2, AC *, vil1_memory_image_of< O > &output, int xo, int yo) |
| Convolution. | |
| template<class I1, class I2, class AC, class O> | |
| void | vil1_convolve_simple (vil1_memory_image_of< I1 > const &in1, vil1_memory_image_of< I2 > const &in2, AC *, vil1_memory_image_of< O > &out) |
| Convolution. | |
| #define TRACE 0 |
Definition at line 15 of file vil1_convolve_simple.txx.
| #define VIL1_CONVOLVE_SIMPLE_INSTANTIATE | ( | I1, | |||
| I2, | |||||
| AC, | |||||
| O | ) |
Value:
VIL1_CONVOLVE_SIMPLE_INSTANTIATE0(I1, I2, AC, O); \ VIL1_CONVOLVE_SIMPLE_INSTANTIATE1(I1, I2, AC, O); \ VIL1_CONVOLVE_SIMPLE_INSTANTIATE2(I1, I2, AC, O)
Definition at line 176 of file vil1_convolve_simple.txx.
| #define VIL1_CONVOLVE_SIMPLE_INSTANTIATE0 | ( | I1, | |||
| I2, | |||||
| AC, | |||||
| O | ) |
Value:
template void vil1_convolve_simple(I1 const * const *, unsigned, unsigned, \ I2 const * const *, unsigned, unsigned, \ AC *, \ O * const *)
Definition at line 75 of file vil1_convolve_simple.txx.
| #define VIL1_CONVOLVE_SIMPLE_INSTANTIATE1 | ( | I1, | |||
| I2, | |||||
| AC, | |||||
| O | ) |
Value:
template void vil1_convolve_simple(vil1_memory_image_of<I1 > const &, \ int, int, unsigned, unsigned, \ vil1_memory_image_of<I2 > const &, \ int, int, unsigned, unsigned, \ AC *, \ vil1_memory_image_of<O > &, \ int, int)
Definition at line 136 of file vil1_convolve_simple.txx.
| #define VIL1_CONVOLVE_SIMPLE_INSTANTIATE2 | ( | I1, | |||
| I2, | |||||
| AC, | |||||
| O | ) |
Value:
template void vil1_convolve_simple(vil1_memory_image_of<I1 > const &, \ vil1_memory_image_of<I2 > const &, \ AC *, \ vil1_memory_image_of<O > &)
Definition at line 167 of file vil1_convolve_simple.txx.
| void vil1_convolve_simple | ( | vil1_memory_image_of< I1 > const & | input1, | |
| vil1_memory_image_of< I2 > const & | input2, | |||
| AC * | , | |||
| vil1_memory_image_of< O > & | output | |||
| ) |
Convolution.
Like the previous function, except without bounds checking and specified regions.
Definition at line 149 of file vil1_convolve_simple.txx.
| void vil1_convolve_simple | ( | vil1_memory_image_of< I1 > const & | IN1, | |
| int | x1, | |||
| int | y1, | |||
| unsigned | w1, | |||
| unsigned | h1, | |||
| vil1_memory_image_of< I2 > const & | IN2, | |||
| int | x2, | |||
| int | y2, | |||
| unsigned | w2, | |||
| unsigned | h2, | |||
| AC * | , | |||
| vil1_memory_image_of< O > & | OUT, | |||
| int | xo, | |||
| int | yo | |||
| ) |
Convolution.
This function performs some bounds checks on the given memory images and then dispatches the convolution itself to the above function.
Definition at line 86 of file vil1_convolve_simple.txx.
| void vil1_convolve_simple | ( | I1 const *const * | in1, | |
| unsigned | w1, | |||
| unsigned | h1, | |||
| I2 const *const * | in2, | |||
| unsigned | w2, | |||
| unsigned | h2, | |||
| AC * | , | |||
| O *const * | out | |||
| ) |
Convolution.
This function assumes that the image types provide operator[] to return a pointer (or something which behaves like one) to the y'th raster.
The given regions of the input images are convolved and placed at the given position in the output image, according to the formula : ![$\displaystyle OUT[y][x] = \sum_{x_1+x_2=x, y_1+y_2=y} IN_1[y_1][x_1] IN_2[y_2][x_2]$](form_0.png)
The dummy parameter is just for dumb compilers that do not allow the use of vil1_convolve_simple<...> to specify the accumulator type.
Definition at line 32 of file vil1_convolve_simple.txx.
1.5.1