You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

103 lines
2.2 KiB

// Demo_MFCDlg.h : 头文件
//
#pragma once
#include "afxwin.h"
#include "opencv.hpp"
#include <mutex>
#include <thread>
// CDemo_MFCDlg 对话框
class CDemo_MFCDlg : public CDialogEx
{
// 构造
public:
CDemo_MFCDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_DEMO_MFC_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
virtual void PostNcDestroy();
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnBnClickedBtnLoad1();
afx_msg void OnBnClickedBtnLoad2();
afx_msg void OnBnClickedBtnVerify();
afx_msg void OnBnClickedBtnInit();
afx_msg void OnBnClickedBtnCamera1();
afx_msg void OnBnClickedBtnCamera2();
afx_msg void OnBnClickedBtnOpenusb();
afx_msg void OnBnClickedBtnLoad3();
afx_msg void OnBnClickedBtnDet();
afx_msg LRESULT OnThreadShowVideo(WPARAM wPapam, LPARAM lPapam);
DECLARE_MESSAGE_MAP()
private:
// [3/3/2017 Lit]:通过图片路径获取图片特征
int GetFeatureFromPath(const CString &sPath, void* pFeatueData);
bool CreateFaceHandle();
void ReleaseFaceHandle();
void ThreadFaceDet();
void ShowVideo(char* szFrame,int iImgWidth,int iImgHeight);
void ShowImg(CString sPicPath, HDC hDCVideo, RECT rectVideo);
private:
void* m_pDetHandle; // 检测线程中的检测句柄
void* m_pDetVerify; // 用于比对过程中的检测句柄
void* m_pRecogHandle; // 识别句柄
CEdit m_edtVersion;
CEdit m_edtVerifyScore;
CEdit m_edtVerifyResult;
CEdit m_edtVerifyTime;
CEdit m_edtFaceBuf;
CStatic m_staticVideo; // 显示USB摄像头的控件
RECT m_rectVideo;
HDC m_hDCVideo;
CStatic m_staticPic1;
RECT m_rectPic1;
HDC m_hDCPic1;
CStatic m_staticPic2;
RECT m_rectPic2;
HDC m_hDCPic2;
CStatic m_staticPic3;
RECT m_rectPic3;
HDC m_hDCPic3;
cv::VideoCapture m_capture; // 摄像头操作对象
cv::Mat m_matFrame; // 当前帧
std::thread m_threadFaceDet; // 检测线程
std::mutex m_mutex; // 锁
CString m_sPic1Path; // 图片1路径
CString m_sPic2Path; // 图片2路径
CString m_sPic3Path; // 图片3路径
bool m_bStartThread; // 是否开启检测线程
};