reconst3D.h
上传用户:fengshi120
上传日期:2014-07-17
资源大小:6155k
文件大小:3k
源码类别:

3D图形编程

开发平台:

C/C++

  1. /*************************************************************************** 
  2. *
  3. * Copyright 2000 by David Demirdjian.   All rights reserved. 
  4. *  
  5. * Developed  by David Demirdjian
  6. *  
  7. * Permission to use, copy, or modify this software and  its documentation 
  8. * for  educational  and  research purposes only and without fee  is hereby 
  9. * granted, provided  that this copyright notice and the original authors's 
  10. * names appear  on all copies and supporting documentation.  If individual 
  11. * files are  separated from  this  distribution directory  structure, this 
  12. * copyright notice must be included.  For any other uses of this software, 
  13. * in original or  modified form, including but not limited to distribution 
  14. * in whole or in  part, specific  prior permission  must be  obtained from 
  15. * MIT.  These programs shall not  be  used, rewritten, or  adapted as  the 
  16. * basis  of  a  commercial  software  or  hardware product  without  first 
  17. * obtaining appropriate  licenses from David Demirdjian.  The author makes 
  18. * no representations about the suitability of this software for any purpose.  
  19. * It is provided "as is" without express or implied warranty. 
  20. *  
  21. **************************************************************************/
  22. #ifndef _RECONST3D_H
  23. #define _RECONST3D_H
  24. class StereoImage;
  25. class ReconstPoints3D;
  26. #ifdef _USEGDI
  27. #include <gdiplus.h>
  28. #else
  29. class Bitmap;
  30. #endif
  31. // ********************************************************************
  32. // ********************************************************************
  33. // Reconst3D: class used for 3D Euclidean reconstruction stereo images
  34. class Reconst3D
  35. {
  36. public:
  37. Reconst3D();
  38. ~Reconst3D();
  39. enum Error { CAMERA_PARAM_NOT_SET, IMAGE_BUFFER_NULL, WRONG_IMAGE_SIZE, RECONST_OK };
  40. // -------- set/get stereo parameters -------- 
  41. void setCameraParameters(float focal, float baseline, float u0, float v0);
  42. void getCameraParameters(float& focal, float& baseline, float& u0, float& v0) const;
  43. // -----------------------------------------------------------------------
  44. // -------- doReconstruction: 3D reconstruction of the full scene -------- 
  45. // input: 
  46. // - pStereoData: Pointer on a StereoImage structure containing the stereo data
  47. // output:
  48. // - reconstPts3d: Pointer on a the calculated 3D reconstruction
  49. int doReconstruction(ReconstPoints3D* reconstPts3d, const StereoImage* pStereoData,
  50.  float scale=1.0f);
  51. //#ifdef _USEGDI
  52. // ------------------------------------------------------------------------------
  53. // -------- doReconstruction: 3D reconstruction of the full scene with color info 
  54. // input: 
  55. // - pStereoData: Pointer on a StereoImage structure containing the stereo data
  56. // output:
  57. // - reconstPts3d: Pointer on a the calculated 3D reconstruction
  58. int doReconstruction(ReconstPoints3D* reconstPts3d, const StereoImage* pStereoData,
  59.  Bitmap *bitmap);
  60. //#endif
  61. // camera parameters
  62. float m_fFocalLength;
  63. float m_fBaseLine;
  64. float m_u0;
  65. float m_v0;
  66. };
  67. #endif