skelecton.h
上传用户:jsylhbnbhn
上传日期:2013-11-03
资源大小:119k
文件大小:2k
源码类别:

OpenCV

开发平台:

Visual C++

  1. // skelecton.h: interface for the skelecton class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SKELECTON_H__37F431BB_0C89_4757_AC1C_29A6DA471423__INCLUDED_)
  5. #define AFX_SKELECTON_H__37F431BB_0C89_4757_AC1C_29A6DA471423__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "bone.h"
  10. #include "kalman.h"
  11. #include <vector>
  12. #include "cv.h"
  13. #include "highgui.h"
  14. #include "OpenGL.h"
  15. using namespace std ;
  16. typedef vector<bone> bone_vector;
  17. typedef struct U_Joint
  18. {
  19.     CvPoint pt;
  20.     CvPoint pre_pt;
  21. CvPoint next_pt;
  22. bool HasSet;
  23. }
  24. U_Joint;
  25. typedef enum JointType
  26. {         
  27.     U_TYPE      = 0,
  28.     N_TYPE      = 1
  29. JointType;
  30. class skelecton  
  31. {
  32. public:
  33. void view_right();
  34. void view_left();
  35. void view_down();
  36. void view_up();
  37. int drawOpenGL3D(CvArr *motion_track_img);
  38. void set_previous_skelecton(skelecton *pre_skelecton);
  39. int ID;
  40. void CalcLengthRatio(int ID,CvPoint2D32f pt);
  41. void CorrectPosition(int ID,CvPoint2D32f &pt,kalman &bone_kalman,const CvArr* image);
  42. int draw3D(CvArr* motion_track_img);
  43. int reset ();
  44. bone* get_bone_by_ID(int ID);
  45. bone* get_bone_by_name(char *name);
  46. bool ske_pause;
  47. OpenGL *pgl; 
  48. int draw2D(CvArr* img);   //绘制图形
  49. skelecton();
  50. virtual ~skelecton();
  51. private:
  52. bone_vector bonevec;
  53. int get_porper_Z(int x1,int x2,bone* pbone);
  54. int check_porper_Z(int x1,int x2,bone* pbone,bool IsLeft);
  55. void CalcBonePosition();
  56. int CalcBoneRealWorldPosition(char *pName,char *ppName,double LengthRatio);
  57. int CalcBoneRealWorldPosition_parallel(char *pName,char *ppName);
  58. skelecton *pre_ske;
  59. };
  60. #endif // !defined(AFX_SKELECTON_H__37F431BB_0C89_4757_AC1C_29A6DA471423__INCLUDED_)