Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CylindricDepthPanorama.hh
1 /*
2 This file is part of the BIAS library (Basic ImageAlgorithmS).
3 
4 Copyright (C) 2003-2009 (see file CONTACT for details)
5 Multimediale Systeme der Informationsverarbeitung
6 Institut fuer Informatik
7 Christian-Albrechts-Universitaet Kiel
8 
9 
10 BIAS is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14 
15 BIAS is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU Lesser General Public License for more details.
19 
20 You should have received a copy of the GNU Lesser General Public License
21 along with BIAS; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24 
25 
26 #ifndef _CYLINDRICDEPTHPANORAMA_HH_
27 #define _CYLINDRICDEPTHPANORAMA_HH_
28 
29 #include <Base/Common/W32Compat.hh>
30 #include <math.h>
31 #include <vector>
32 #include <Base/Image/Image.hh>
33 #include <Geometry/PMatrix.hh>
34 #include <Geometry/Projection.hh>
35 #include <Geometry/ProjectionParametersCylindric.hh>
36 #include <Utils/TriangleMesh.hh>
37 #include <Image/ProjectionMapping.hh>
38 
39 namespace BIAS {
40 
41  /** \class CylindricDepthPanorama
42  * \author ischiller
43  * \brief create and represent cylindric depth panorama
44  */
45  class BIASImage_EXPORT CylindricDepthPanorama {
46  public:
47 
49  /**
50  @brief Constructor with default params
51  @param range: the range of degrees in which a panorama is to be build
52  360 = full circle
53  @author ischiller
54  @date 05/07
55  */
57  unsigned int channels);
59  unsigned int channels);
61 
62  int Init(const Projection& iP,
63  unsigned int channels);
64  int Init(const ProjectionParametersCylindric& iP,
65  unsigned int channels);
66 
67  /** Call Process to update the measurement */
68  int ProcessCylindricProjection(BIAS::Image<float> &depthMap,
69  BIAS::Projection & p,
70  BIAS::Image<unsigned char> *texture=NULL,
71  bool useProjection = true);
72 
73  int GetPanorama(BIAS::Image<float> &image,
75 
76  int GetMappedImages(BIAS::Image<float> &image,
78 
79  int GetTriangleMesh(BIAS::TriangleMesh &mesh);
80 
81  void SetFillArea(int area);
82  protected:
83  unsigned fillArea_;
85  BIAS::Image<float> panorama_,panoramaHitCount_,panoramaVarianz_;
87 
90 
92 
95 
96  unsigned int panoramaWidth_,panoramaHeight_,dTexChannels_;
97  int dOffsetX_,dOffsetY_;
98 
99  bool bTextureFilled_,bFirstPoseSet_,inited_;
100 
103 
104  }; //end class
105 
106 }//end namespace
107 
108 
109 #endif
BIAS::ProjectionParametersCylindric * pCylinderProj_
BIAS::Image< unsigned char > destTex_
BIAS::Image< unsigned char > panoramaTexture_
BIAS::ProjectionMapping< float, float > projectionMappingFL_
This class hides the underlying projection model, like projection matrix, spherical camera...
Definition: Projection.hh:70
create and represent cylindric depth panorama
Create and represent a 3D triangle mesh.
Definition: TriangleMesh.hh:84
BIAS::ProjectionMapping< unsigned char, unsigned char > projectionMappingUC_
Camera parameters which define the mapping between rays in the camera coordinate system and pixels in...