PICCANTE  0.4
The hottest HDR imaging library!
filter_dct_2d.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_DCT_2D_HPP
19 #define PIC_FILTERING_FILTER_DCT_2D_HPP
20 
21 #include "../filtering/filter_npasses.hpp"
22 #include "../filtering/filter_dct_1d.hpp"
23 
24 namespace pic {
25 
30 {
31 protected:
33 
34 public:
40  FilterDCT2D(int nCoeff, bool bForward)
41  {
42  //DCT 1D filter
43  fltDCT1D = new FilterDCT1D(nCoeff, bForward);
44 
47  }
48 
50  {
51  release();
52 
53  if(fltDCT1D != NULL) {
54  delete fltDCT1D;
55  }
56 
57  fltDCT1D = NULL;
58  }
59 
63  void setForward()
64  {
66  }
67 
71  void setInverse()
72  {
74  }
75 
83  static Image *transform(Image *imgIn, Image *imgOut, int nCoeff)
84  {
85  FilterDCT2D filter(nCoeff, true);
86  return filter.Process(Single(imgIn), imgOut);
87  }
88 
96  static Image *inverse(Image *imgIn, Image *imgOut, int nCoeff)
97  {
98  FilterDCT2D filter(nCoeff, false);
99  return filter.Process(Single(imgIn), imgOut);
100  }
101 };
102 
103 } // end namespace pic
104 
105 #endif /* PIC_FILTERING_FILTER_DCT_2D_HPP */
106 
void setForward()
SetForward.
Definition: filter_dct_2d.hpp:63
void insertFilter(Filter *flt, bool asSingle=false)
insertFilter
Definition: filter_radial_basis_function.hpp:246
void setInverse()
setInverse
Definition: filter_dct_1d.hpp:73
FilterDCT2D(int nCoeff, bool bForward)
FilterDCT2D.
Definition: filter_dct_2d.hpp:40
Image * Process(ImageVec imgIn, Image *imgOut)
Process.
Definition: filter_npasses.hpp:310
~FilterDCT2D()
Definition: filter_dct_2d.hpp:49
FilterDCT1D * fltDCT1D
Definition: filter_dct_2d.hpp:32
The Image class stores an image as buffer of float.
Definition: image.hpp:60
static Image * transform(Image *imgIn, Image *imgOut, int nCoeff)
transform
Definition: filter_dct_2d.hpp:83
static Image * inverse(Image *imgIn, Image *imgOut, int nCoeff)
inverse
Definition: filter_dct_2d.hpp:96
void release()
release
Definition: filter_npasses.hpp:140
void setForward()
setForward
Definition: filter_dct_1d.hpp:58
The FilterDCT1D class.
Definition: filter_dct_1d.hpp:28
The FilterDCT2D class.
Definition: filter_dct_2d.hpp:29
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
void setInverse()
setInverse
Definition: filter_dct_2d.hpp:71
The FilterNPasses class.
Definition: filter_npasses.hpp:30