18 #ifndef PIC_FILTERING_FILTER_CONV_SPARSE_HPP 19 #define PIC_FILTERING_FILTER_CONV_SPARSE_HPP 21 #include "../util/vec.hpp" 22 #include "../util/array.hpp" 23 #include "../filtering/filter.hpp" 24 #include "../util/precomputed_gaussian.hpp" 37 std::vector<SparseKernelPoint>
data;
53 for(
int i = 0; i < kernel.size(); i++) {
54 sum += kernel[i].value;
58 for(
int i = 0; i < kernel.size(); i++) {
59 kernel[i].valu /= sum;
127 Image *source = src[0];
129 for(
int m = box->
z0; m < box->z1; m++) {
131 for(
int j = box->
y0; j < box->y1; j++) {
133 for(
int i = box->
x0; i < box->x1; i++) {
134 float *dataOut = (*dst)(i, j, m);
139 float *dataIn = (*source)(i +
kernel.
data[k].pos[0],
143 for(
int ch = 0; ch < channels; ch++) {
144 dataOut[ch] += dataIn[ch] *
kernel.
data[k].value;
The BBox class manages the creation of bounding boxes for images.
Definition: bbox.hpp:29
Vec< 3, int > pos
Definition: filter_conv_sparse.hpp:30
int channels
Definition: image.hpp:80
std::vector< Image * > ImageVec
ImageVec an std::vector of pic::Image.
Definition: image_vec.hpp:29
int x0
Definition: bbox.hpp:32
~FilterConvSparse()
Definition: filter_conv_sparse.hpp:119
float value
Definition: filter_conv_sparse.hpp:31
The Filter class.
Definition: filter.hpp:50
FilterConvSparse()
FilterConvSparse.
Definition: filter_conv_sparse.hpp:104
int y0
Definition: bbox.hpp:32
std::vector< SparseKernelPoint > data
Definition: filter_conv_sparse.hpp:37
void normalize()
normalize
Definition: filter_conv_sparse.hpp:50
#define PIC_INLINE
Definition: base.hpp:33
void update(SparseKernel kernel)
update
Definition: filter_conv_sparse.hpp:114
The Image class stores an image as buffer of float.
Definition: image.hpp:60
virtual void f(FilterFData *data)
f
Definition: filter_radial_basis_function.hpp:69
void ProcessBBox(Image *dst, ImageVec src, BBox *box)
ProcessBBox.
Definition: filter_conv_sparse.hpp:123
Definition: filter_conv_sparse.hpp:28
Definition: bilateral_separation.hpp:25
static T * assign(T *data, int size, T *ret)
assign
Definition: array.hpp:464
SparseKernel()
SparseKernel.
Definition: filter_conv_sparse.hpp:42
int z0
Definition: bbox.hpp:32
Definition: filter_conv_sparse.hpp:34
The Vec class.
Definition: vec.hpp:35
SparseKernel kernel
Definition: filter_conv_sparse.hpp:80
The FilterConvSparse class.
Definition: filter_conv_sparse.hpp:68