// TrackEyeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "TrackEye.h"
#include "TrackEyeDlg.h"
#include "PCASettings.h"
#include "TrackingSettings.h"
#include "TrackingParameters.h"
#include "USBCam.h"
#include "Tracking_Library.h"
#include "TrajectoryExtractor2D.h"
#include "EyeDatabaseExplorer.h"
#include "Face.h"
#include "cvhaar.cpp"
#ifdef _CH_
#define WIN32
#error "The file needs cvaux, which is not wrapped yet. Sorry"
#endif
#ifndef _EiC
#include "cvaux.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>
#endif
#ifdef _EiC
#define WIN32
#endif
#define ORIG_WIN_SIZE 24
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTrackEyeDlg dialog
CTrackEyeDlg::CTrackEyeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTrackEyeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTrackEyeDlg)
m_leyedist = _T("Distance from Eye Space :");
m_reyedist = _T("Distance from Eye Space :");
m_hWnd = _T("");
m_LPR = 0;
m_LPX = 0;
m_LPY = 0;
m_RPR = 0;
m_RPX = 0;
m_RPY = 0;
m_LEX = 0;
m_LEY = 0;
m_REX = 0;
m_REY = 0;
m_counter = 0;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
FPSTimer = 0.0;
FPS = 0.0;
record = false;
// Haar Face Detection
storage = 0;
hid_cascade = 0;
NumOfHaarFaces = 0;
delay = 10;
}
void CTrackEyeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTrackEyeDlg)
DDX_Control(pDX, IDC_WRITE2AVI, m_write2AVI);
DDX_Control(pDX, IDC_STOPRECORD, m_StopRecord);
DDX_Control(pDX, IDC_RECORD, m_Record);
DDX_Control(pDX, IDC_BLINKSTATUS, m_blinkStatus);
DDX_Control(pDX, IDC_UpdayeEyeDatabase, m_UpdateEyeDatabase);
DDX_Control(pDX, IDC_ExtractTrajectory, m_ExtractTrajectory);
DDX_Control(pDX, IDR_StartTracking2, m_StopTracking);
DDX_Control(pDX, IDR_StartTracking, m_StartTracking);
DDX_Control(pDX, IDC_EyeTrackerSettings, m_TrackerSettings);
DDX_Control(pDX, IDR_EXITPROGRAM, m_ExitProgram);
DDX_Control(pDX, IDC_PROGRESS1, m_progress);
DDX_Control(pDX, IDC_SLIDERYplane, m_sliderYplane);
DDX_Control(pDX, IDC_SLIDERXplane, m_sliderXplane);
DDX_Control(pDX, IDC_CHECK1, m_headTrajectory);
DDX_Control(pDX, IDC_SLIDER_R, m_sliderRight);
DDX_Control(pDX, IDC_SLIDER_L, m_sliderLeft);
DDX_Text(pDX, IDC_LEYEDIST, m_leyedist);
DDX_Text(pDX, IDC_REYEDIST, m_reyedist);
DDX_Text(pDX, IDC_STATIC_OUTPUT, m_hWnd);
DDX_Text(pDX, IDC_EDITLPR, m_LPR);
DDX_Text(pDX, IDC_EDITLPX, m_LPX);
DDX_Text(pDX, IDC_EDITLPY, m_LPY);
DDX_Text(pDX, IDC_EDITRPR, m_RPR);
DDX_Text(pDX, IDC_EDITRPX, m_RPX);
DDX_Text(pDX, IDC_EDITRPY, m_RPY);
DDX_Text(pDX, IDC_EDITLEX, m_LEX);
DDX_Text(pDX, IDC_EDITLEY, m_LEY);
DDX_Text(pDX, IDC_EDITREX, m_REX);
DDX_Text(pDX, IDC_EDITREY, m_REY);
DDX_Text(pDX, IDC_numOfRecorded, m_counter);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTrackEyeDlg, CDialog)
//{{AFX_MSG_MAP(CTrackEyeDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(ID_HELP_ABOUTTRACKEYE, OnHelpAbouttrackeye)
ON_COMMAND(ID_TRACKEYEMENU_PCASETTINGS, OnTrackeyemenuPcasettings)
ON_COMMAND(ID_TRACKEYEMENU_FACETRACKERSETTINGS, OnTrackeyemenuFacetrackersettings)
ON_COMMAND(ID_TRACKEYEMENU_ADJUSTCAPTUREDEVICESETTINGS, OnTrackeyemenuAdjustcapturedevicesettings)
ON_BN_CLICKED(IDR_StartTracking, OnStartTracking)
ON_COMMAND(ID_TRACKEYEMENU_EXIT, OnTrackeyemenuExit)
ON_BN_CLICKED(IDR_StartTracking2, OnStopTracking)
ON_BN_CLICKED(IDR_EXITPROGRAM, OnExitprogram)
ON_BN_CLICKED(IDC_EyeTrackerSettings, OnEyeTrackerSettings)
ON_BN_CLICKED(IDC_ClearHT, OnClearHT)
ON_BN_CLICKED(IDC_ExtractTrajectory, OnExtractTrajectory)
ON_BN_CLICKED(IDC_UpdayeEyeDatabase, OnUpdateEyeDatabase)
ON_COMMAND(ID_DATABASE_EXPLOREDATABASE, OnDatabaseExploredatabase)
ON_COMMAND(ID_TRACKEYEMENU_STARTTRACKING, OnTrackeyemenuStarttracking)
ON_COMMAND(ID_TRACKEYEMENU_STOPTRACKING, OnTrackeyemenuStoptracking)
ON_COMMAND(ID_TRACKEYEMENU_SELECTPROGRAMCOLORS, OnTrackeyemenuSelectprogramcolors)
ON_COMMAND(ID_HELP_SHOWTRACKEYEHELPFILE, OnHelpShowtrackeyehelpfile)
ON_WM_TIMER()
ON_COMMAND(ID_DATABASE_CLEARDATABASE, OnDatabaseCleardatabase)
ON_BN_CLICKED(IDC_RECORD, OnRecord)
ON_BN_CLICKED(IDC_STOPRECORD, OnStoprecord)
ON_BN_CLICKED(IDC_WRITE2AVI, OnWrite2avi)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTrackEyeDlg message handlers
BOOL CTrackEyeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
initializeGUI();
trackControl = 0;
TrackSettings = new TrackingSettings;
// ** Initialize sliders
m_sliderLeft.SetRange(0, 8, true);
m_sliderLeft.SetTicFreq(1);
m_sliderLeft.SetPos(4);
m_sliderRight.SetRange(0, 8, true);
m_sliderRight.SetTicFreq(1);
m_sliderRight.SetPos(4);
// ** Init Trajectory Buffer & create window
for (int k=0;k<3;k++)
{
trajectoryBuffer[k].center.x = -1;
trajectoryBuffer[k].center.y = -1;
trajectoryBuffer[k].size.width = -1;
trajectoryBuffer[k].size.height = -1;
}
resizedheadTrajectory = cvCreateImage(cvSize(172, 146), IPL_DEPTH_8U, 1);
resizedheadTrajectory->origin = 1;
// ** Initialize X&Y plane sliders & depth indicator progress bar
m_sliderXplane.SetRange(0, 20, true);
m_sliderXplane.SetTicFreq(1);
m_sliderXplane.SetPos(0);
m_sliderYplane.SetRange(0, 20, true);
m_sliderYplane.SetTicFreq(1);
m_sliderYplane.SetPos(0);
m_progress.SetRange(0, 20);
m_progress.SetStep(1);
// Check whether the EyeDatabase folder exists or not?
CString Path(*__argv);
int i = Path.ReverseFind('\\')+1;
if(i)
Path=Path.Left(i);
Path += "EyeDatabase";
if (::CreateDirectory(Path, NULL))
MessageBox("Eye Database directory is empty.\n Do not forget to create a eye database!", "Error", MB_OK|MB_ICONEXCLAMATION);
return TRUE; // return TRUE unless you set the focus to a control
}
void CTrackEyeDl
没有合适的资源?快使用搜索试试~ 我知道了~
基于人眼检测的人脸识别
共67个文件
ico:19个
h:15个
cpp:7个
4星 · 超过85%的资源 需积分: 10 39 下载量 145 浏览量
2012-04-18
09:30:08
上传
评论 4
收藏 276KB RAR 举报
温馨提示
基于人眼检测的人脸识别,通过sift算子进行人脸的匹配。SIFT特征(Scale-invariant feature transform,尺度不变特征转换)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe 在1999年所发表,2004年完善总结。其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。
资源推荐
资源详情
资源评论
收起资源包目录
prepare TrackEye_SourceCode.rar (67个子文件)
prepare TrackEye_SourceCode
TezLibrary_1.h 4KB
TrackEye.dsw 541B
TrackEye.opt 49KB
TrackEye.clw 18KB
TrackEye.ncb 393KB
Release
EyeDatabase
TrackingParameters.sbr 0B
TrackEyeDlg.sbr 0B
Records
TrackEye.sbr 0B
TrackingParameters.obj 5KB
TrajectoryExtractor2D.obj 22KB
TrackEye.res 102KB
vc60.idb 89KB
TrackingSettings.sbr 0B
TrajectoryExtractor2D.sbr 0B
USBCam.obj 11KB
TrackingSettings.obj 38KB
TrackEyeDlg.obj 113KB
USBCam.sbr 0B
TrackEyeDlg.cpp 28KB
res
ico00009.ico 3KB
TrackEye.rc2 400B
Control.ico 766B
icon1.ico 766B
dx3500.ico 7KB
ico00013.ico 3KB
ico00002.ico 766B
ico00005.ico 3KB
TrackEye.ico 1KB
leye.BMP 12KB
leyenot.bmp 12KB
ico00003.ico 766B
avi.ico 766B
ico00007.ico 3KB
ico00004.ico 766B
zs.BMP 44KB
ico00008.ico 3KB
ico00011.ico 766B
reyenot.bmp 12KB
ico00012.ico 3KB
mc3.ico 2KB
ico00006.ico 3KB
ico00010.ico 766B
reye.bmp 12KB
ico00001.ico 766B
_cv.h 4KB
TrajectoryExtractor2D.cpp 9KB
_cvipp.h 37KB
USBCam.cpp 2KB
TrackingSettings.h 3KB
TrackEyeDlg.h 4KB
TrackingParameters.h 1KB
TrackEye.h 1KB
_cvmatrix.h 11KB
TrackEye.cpp 2KB
TrajectoryExtractor2D.h 2KB
TrackEye.rc 42KB
TrackEye.dsp 8KB
StdAfx.cpp 210B
resource.h 12KB
TrackEye.plg 252B
Tracking_Library.h 1011B
USBCam.h 1KB
StdAfx.h 1KB
TrackingParameters.cpp 1KB
_cvimgproc.h 5KB
_cvgeom.h 4KB
TrackingSettings.cpp 20KB
共 67 条
- 1
资源评论
- hellomatlab1232014-03-06挺好的学习代码,谢谢分享。
- shayanduo2015-08-22没调试成功
- qhdre2013-10-25水平有限,没调成功。。。
- jiliuyj2013-08-25这个是C++的程序,个人水平问题没调试成功
- add01242013-01-16c++代码,还不错
chadaowangge
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功