icub-basic-demos
ScaleSpace.h
Go to the documentation of this file.
1 // -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2 
3 // Copyright: (C) 2006-2007 Alex Bernardino, ISR-IST
4 // Authors: Alex Bernardino
5 // CopyPolicy: Released under the terms of the GNU GPL v2.0.
6 
16 #include <iCub/FastGauss.h>
17 
18 #ifndef _SCALESPACE_H_
19 #define _SCALESPACE_H_
20 
21 class ScaleSpace
22 {
23 private:
24  int _width;
25  int _height;
26  int _levels;
27  double *_scales;
28  bool _allocated;
29  float **_scalespace;
30  FastGauss *_filters;
31 public:
33  int GetHeigth() {return _height;};
34  int GetLines() {return _height;};
36  int GetWidth() {return _width;};
37  int GetCols() {return _width;};
39  int GetLevels() {return _levels;};
41  bool IsAllocated() {return _allocated;};
42 
43  ScaleSpace(void);
44  virtual ~ScaleSpace(void);
45 
47  bool AllocateResources(int lines, int cols, int levels, double *scales );
49  bool FreeResources();
50 
52  bool BuildLevel(int level, float *in);
54  bool BuildAll(float *in);
56  float* GetLevel(int level);
57 };
58 
59 #endif /*_SCALESPACE_H_*/
Implements 3 Tap IIR Gaussian Filtering with Boundary Conditions.