www.pudn.com > FaceDetect.rar > FaceDetectDlg.h


// FaceDetectDlg.h : header file 
// 
 
#ifndef __FACEDETECTDLG_H 
#define __FACEDETECTDLG_H 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "Dib.h" 
#include "LikelyHood.h" 
#include "HairFace.h" 
#include  
#include  
 
///////////////////////////////////////////////////////////////////////////// 
// CFaceDetectDlg dialog 
 
class CFaceDetectDlg : public CDialog 
{ 
// Construction 
public: 
	CFaceDetectDlg(CWnd* pParent = NULL);	// standard constructor 
 
	//公共变量 
public: 
	void MyDraw(); 
	void DoLOG(int left,int right,int top,int bottom,RGBQUAD** source,RGBQUAD** target); 
	void SetPixelArray(RGBQUAD** target,int Val); 
	void LoadOriPixel(CDib* pDib); 
	void MakeBitMap(); 
	bool CopyBitMap(RGBQUAD** dest,RGBQUAD** source); 
	void DrawCross(CDC* pDC,CPoint point,COLORREF crColor); 
 
	CDC *pDCShow;//用来画图的区域 
	CDib *m_pMainDib;//位图 
	RGBQUAD** m_tOriPixelArray;//原始位图数据 
	RGBQUAD** m_tResPixelArray;//参考位图数据 
 
	CBitmap* 	m_pResMap; 
 
	int m_nWndWidth;//图像宽度 
	int m_nWndHeight;//图像高度 
	CString m_sFileName;//位图名称 
 
	bool m_bFaceOK;//脸部已经确定标志位 
	bool m_bShowFace; 
	CRect m_rFaceRegion;//脸部区域 
 
	bool m_bSelectByMan; 
	bool m_bLBottonDown; 
	int m_ManLeft; 
	int m_ManRight; 
	int m_ManTop; 
	int m_ManBottom; 
 
	//下面是一些标志位 
	bool m_bManualMarkFacial; 
	bool m_bLeftEyeOK;//左眼确定标志位 
	bool m_bRightEyeOK;//右眼确定标志位 
	bool m_bLeftEyeLeftCornerOK;//左眼左角 
	bool m_bLeftEyeRightCornerOK;//左眼右角 
	bool m_bRightEyeLeftCornerOK;//右眼左角 
	bool m_bRightEyeRightCornerOK;//右眼右角 
	bool m_bLeftNostrilOK;//左鼻角 
	bool m_bRightNostrilOK;//右鼻角 
	bool m_bLeftMouthCornerOK;//左嘴角 
	bool m_bRightMouthCornerOK;//右嘴角 
	bool m_bMidMouthOK;//嘴中部 
	bool m_bMidNoseOK;//鼻尖 
	//下面是上那些特征点的位置 
	CPoint m_LeftEye; 
	CPoint m_LeftEyeLeftCorner; 
	CPoint m_LeftEyeRightCorner; 
	CPoint m_RightEye; 
	CPoint m_RightEyeLeftCorner; 
	CPoint m_RightEyeRightCorner; 
	CPoint m_LeftNostril; 
	CPoint m_RightNostril; 
	CPoint m_LeftMouthCorner; 
	CPoint m_RightMouthCorner; 
	CPoint m_MidMouth; 
	CPoint m_MidNose; 
 
	//两种方法 
	CLikelyHood	*method1; 
	CHairFace   *method2; 
 
// Dialog Data 
	//{{AFX_DATA(CFaceDetectDlg) 
	enum { IDD = IDD_FACEDETECT_DIALOG }; 
		// NOTE: the ClassWizard will add data members here 
	//}}AFX_DATA 
 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CFaceDetectDlg) 
	protected: 
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	HICON m_hIcon; 
 
	// Generated message map functions 
	//{{AFX_MSG(CFaceDetectDlg) 
	virtual BOOL OnInitDialog(); 
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 
	afx_msg void OnPaint(); 
	afx_msg HCURSOR OnQueryDragIcon(); 
	afx_msg void OnBtnBinary(); 
	afx_msg void OnBtnEdge(); 
	afx_msg void OnBtnFacehair(); 
	afx_msg void OnBtnHistogramFace(); 
	afx_msg void OnBtnHistogramH(); 
	afx_msg void OnBtnHistogramHair(); 
	afx_msg void OnBtnHistogramV(); 
	afx_msg void OnBtnLikehood(); 
	afx_msg void OnBtnMarkEye(); 
	afx_msg void OnBtnMarkFace1(); 
	afx_msg void OnBtnMarkFace2(); 
	afx_msg void OnBtnMarkMouse(); 
	afx_msg void OnBtnMarkNose(); 
	afx_msg void OnBtnOpenfile(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // #ifndef __FACEDETECTDLG_H