PICCANTE  0.4
The hottest HDR imaging library!
filter_gaussian_3d.hpp
Go to the documentation of this file.
1 /*
2 
3 PICCANTE
4 The hottest HDR imaging library!
5 http://vcg.isti.cnr.it/piccante
6 
7 Copyright (C) 2014
8 Visual Computing Laboratory - ISTI CNR
9 http://vcg.isti.cnr.it
10 First author: Francesco Banterle
11 
12 This Source Code Form is subject to the terms of the Mozilla Public
13 License, v. 2.0. If a copy of the MPL was not distributed with this
14 file, You can obtain one at http://mozilla.org/MPL/2.0/.
15 
16 */
17 
18 #ifndef PIC_FILTERING_FILTER_GAUSSIAN_3D_HPP
19 #define PIC_FILTERING_FILTER_GAUSSIAN_3D_HPP
20 
21 #include "../filtering/filter_npasses.hpp"
22 #include "../filtering/filter_gaussian_1d.hpp"
23 
24 namespace pic {
25 
30 {
31  FilterGaussian1D *gaussianFilter;
32 
33 public:
38  {
39  gaussianFilter = NULL;
40  }
41 
46  FilterGaussian3D(float sigma)
47  {
48  //Gaussian filter
49  gaussianFilter = new FilterGaussian1D(sigma);
50 
51  insertFilter((Filter *)gaussianFilter);
52  insertFilter((Filter *)gaussianFilter);
53  insertFilter((Filter *)gaussianFilter);
54  }
55 
57  {
58  if(gaussianFilter != NULL) {
59  delete gaussianFilter;
60  }
61  }
62 
70  static Image *execute(Image *imgIn, Image *imgOut, float sigma)
71  {
72  FilterGaussian3D filter(sigma);
73  Image *ret = filter.Process(Single(imgIn), imgOut);
74  return ret;
75  }
76 
84  static Image *execute(std::string nameIn, std::string nameOut, float sigma)
85  {
86  Image imgIn(nameIn);
87  Image *imgOut = execute(&imgIn, NULL, sigma);
88  imgOut->Write(nameOut);
89  return imgOut;
90  }
91 };
92 
93 } // end namespace pic
94 
95 #endif /* PIC_FILTERING_FILTER_GAUSSIAN_3D_HPP */
96 
void insertFilter(Filter *flt, bool asSingle=false)
insertFilter
Definition: filter_radial_basis_function.hpp:246
static Image * execute(std::string nameIn, std::string nameOut, float sigma)
execute
Definition: filter_gaussian_3d.hpp:84
The Filter class.
Definition: filter.hpp:50
FilterGaussian3D(float sigma)
FilterGaussian3D.
Definition: filter_gaussian_3d.hpp:46
static Image * execute(Image *imgIn, Image *imgOut, float sigma)
execute
Definition: filter_gaussian_3d.hpp:70
Image * Process(ImageVec imgIn, Image *imgOut)
Process.
Definition: filter_npasses.hpp:310
FilterGaussian3D()
FilterGaussian3D.
Definition: filter_gaussian_3d.hpp:37
The Image class stores an image as buffer of float.
Definition: image.hpp:60
PIC_INLINE ImageVec Single(Image *img)
Single creates an std::vector which contains img; this is for filters input.
Definition: image_vec.hpp:36
Definition: bilateral_separation.hpp:25
The FilterGaussian3D class.
Definition: filter_gaussian_3d.hpp:29
The FilterGaussian1D class.
Definition: filter_gaussian_1d.hpp:29
~FilterGaussian3D()
Definition: filter_gaussian_3d.hpp:56
bool Write(std::string nameFile, LDR_type typeWrite, int writerCounter)
Write saves an Image into a file on the disk.
The FilterNPasses class.
Definition: filter_npasses.hpp:30