FaceDetectDlg.h
上传用户:yeung_1189
上传日期:2010-02-10
资源大小:3536k
文件大小:3k
源码类别:

图形/文字识别

开发平台:

Visual C++

  1. // FaceDetectDlg.h : header file
  2. //
  3. #ifndef __FACEDETECTDLG_H
  4. #define __FACEDETECTDLG_H
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #include "Dib.h"
  9. #include "LikelyHood.h"
  10. #include "HairFace.h"
  11. #include <afxtempl.h>
  12. #include <math.h>
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CFaceDetectDlg dialog
  15. class CFaceDetectDlg : public CDialog
  16. {
  17. // Construction
  18. public:
  19. CFaceDetectDlg(CWnd* pParent = NULL); // standard constructor
  20. //公共变量
  21. public:
  22. void MyDraw();
  23. void DoLOG(int left,int right,int top,int bottom,RGBQUAD** source,RGBQUAD** target);
  24. void SetPixelArray(RGBQUAD** target,int Val);
  25. void LoadOriPixel(CDib* pDib);
  26. void MakeBitMap();
  27. bool CopyBitMap(RGBQUAD** dest,RGBQUAD** source);
  28. void DrawCross(CDC* pDC,CPoint point,COLORREF crColor);
  29. CDC *pDCShow;//用来画图的区域
  30. CDib *m_pMainDib;//位图
  31. RGBQUAD** m_tOriPixelArray;//原始位图数据
  32. RGBQUAD** m_tResPixelArray;//参考位图数据
  33. CBitmap*  m_pResMap;
  34. int m_nWndWidth;//图像宽度
  35. int m_nWndHeight;//图像高度
  36. CString m_sFileName;//位图名称
  37. bool m_bFaceOK;//脸部已经确定标志位
  38. bool m_bShowFace;
  39. CRect m_rFaceRegion;//脸部区域
  40. bool m_bSelectByMan;
  41. bool m_bLBottonDown;
  42. int m_ManLeft;
  43. int m_ManRight;
  44. int m_ManTop;
  45. int m_ManBottom;
  46. //下面是一些标志位
  47. bool m_bManualMarkFacial;
  48. bool m_bLeftEyeOK;//左眼确定标志位
  49. bool m_bRightEyeOK;//右眼确定标志位
  50. bool m_bLeftEyeLeftCornerOK;//左眼左角
  51. bool m_bLeftEyeRightCornerOK;//左眼右角
  52. bool m_bRightEyeLeftCornerOK;//右眼左角
  53. bool m_bRightEyeRightCornerOK;//右眼右角
  54. bool m_bLeftNostrilOK;//左鼻角
  55. bool m_bRightNostrilOK;//右鼻角
  56. bool m_bLeftMouthCornerOK;//左嘴角
  57. bool m_bRightMouthCornerOK;//右嘴角
  58. bool m_bMidMouthOK;//嘴中部
  59. bool m_bMidNoseOK;//鼻尖
  60. //下面是上那些特征点的位置
  61. CPoint m_LeftEye;
  62. CPoint m_LeftEyeLeftCorner;
  63. CPoint m_LeftEyeRightCorner;
  64. CPoint m_RightEye;
  65. CPoint m_RightEyeLeftCorner;
  66. CPoint m_RightEyeRightCorner;
  67. CPoint m_LeftNostril;
  68. CPoint m_RightNostril;
  69. CPoint m_LeftMouthCorner;
  70. CPoint m_RightMouthCorner;
  71. CPoint m_MidMouth;
  72. CPoint m_MidNose;
  73. //两种方法
  74. CLikelyHood *method1;
  75. CHairFace   *method2;
  76. // Dialog Data
  77. //{{AFX_DATA(CFaceDetectDlg)
  78. enum { IDD = IDD_FACEDETECT_DIALOG };
  79. // NOTE: the ClassWizard will add data members here
  80. //}}AFX_DATA
  81. // ClassWizard generated virtual function overrides
  82. //{{AFX_VIRTUAL(CFaceDetectDlg)
  83. protected:
  84. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  85. //}}AFX_VIRTUAL
  86. // Implementation
  87. protected:
  88. HICON m_hIcon;
  89. // Generated message map functions
  90. //{{AFX_MSG(CFaceDetectDlg)
  91. virtual BOOL OnInitDialog();
  92. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  93. afx_msg void OnPaint();
  94. afx_msg HCURSOR OnQueryDragIcon();
  95. afx_msg void OnBtnBinary();
  96. afx_msg void OnBtnEdge();
  97. afx_msg void OnBtnFacehair();
  98. afx_msg void OnBtnHistogramFace();
  99. afx_msg void OnBtnHistogramH();
  100. afx_msg void OnBtnHistogramHair();
  101. afx_msg void OnBtnHistogramV();
  102. afx_msg void OnBtnLikehood();
  103. afx_msg void OnBtnMarkEye();
  104. afx_msg void OnBtnMarkFace1();
  105. afx_msg void OnBtnMarkFace2();
  106. afx_msg void OnBtnMarkMouse();
  107. afx_msg void OnBtnMarkNose();
  108. afx_msg void OnBtnOpenfile();
  109. //}}AFX_MSG
  110. DECLARE_MESSAGE_MAP()
  111. };
  112. //{{AFX_INSERT_LOCATION}}
  113. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  114. #endif // #ifndef __FACEDETECTDLG_H