自定义洗涤生产线检测视频监控软件设计毕业设计代码

视频监控软件  时间:2021-04-14  阅读:()

//CGViewSystemDlg.cpp: implementation file

//

#include"stdafx.h"

#include"CGViewSystem.h"include”CGViewSystcmDlg.h”inc lude“ViewDl g.h"

#include"mmsystem.h" //VFW,多媒体管理模块

#pragma c omment(l ib,"winmm」 ib")

#include<lo cale.h>in c lude”C GVidEx.h"include“C GVideo.h”in c lu d e“C GD e f.h”

#include"FuncApi.h"

#in clud e"cvc am.h"

#include<cv.h>

#include<cxcore.h>

#include<highgui.h>

#ifdef.DEBUG

#define new DEBUG_NEW

#unde fTH IS_F ILE

static char THIS_F 1 LEU=_FILE_;

#endif#define WM_ADDTRAYICON WM_US ER+101 〃自定义消息(WM_ADDTRAYIC ON为自定义消息的标识也是一个常量)

#define m_dwPages 700〃静态内存分配700

/////////////////////////////////////////////////////////////////////////////

//CAboutDlg dialog used for App About class CAboutDlg:public CDialog{public:

CAboutDlgO;

//Dialog Data

//{{AFX_DATA(CAb outDlg)enum{ IDD=IDD_AB OUTB OX};

//} }AFX_DATA

//ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CAb outDl g)protected:virtual void DoDataExchange(CDataExchange*pDX); //DDX/DDV support//}}AFX_V1 RTUAL//Implementationprotected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DE CLARE_ME S S AGE_MAP()

} 

CAboutDlg: :CAboutDlg():CDialog(CAboutDlg: :IDD)

{

//{{AFX_DATAJNIT(CAb outDl g)

//}}AFX_DATA_INIT

}vo id CAb outDlg: :Do DataExchange(CDataExchange*pDX)

{

CDialog: :DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDl g)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)

//{{AFX_M S G_MAP(CAb outDlg)

//No message handlers

//}}AFX_M S G_MAP

END_ME S SAGE_MAP()lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

//CCGViewSystemDIg dialog

RECT rectList[MAX_VIDEO_S OURCE+1];

COLORREF gBackgroundColor=RGB(1(), 10, 10);int m_nCardTotal=0;extern int WinHeight;extern int WinWidth;

CvHaarClassifierCascade^cascade 1=(CvHaarClassifierCascade*)cvLoad(nC:\\Program

Files\\OpenCV\\data\\haarcascades\\haarcascade_fullbody.xml");

CvHaarClassifierCascade*cascade2=(CvHaarClassifierCascade*)cvLoad(MC:\\Pro gram

Files\\OpenCV\\data\\haarcascades\\haarcascade_upperbody.xmr');

CvHaarClassifierCascade*cascade3=(CvHaarClassifierCascade*)cvLoad("C:\\Program

Files\\OpenCV\\data\\haarcascades\\haarcascade」 owerbody.xml");CvHaarClassifierCascade*cascade4=(CvHaarClassifierCascade*)cvLoad("C:\\Program

Files\\OpenCV\\data\\haarcascades\\haarcascade_frontalface_alt2.xmr');

CvHaarClassifierCascade*cascade5=(CvHaarClassifierCascade*)cvLoad(

MC:\\Pro gram

Files\\OpenCV\\data\\haarcascades\\haarcascade_profileface.xmr,);

CCGViewSystemDl g: :CCGViewSystemDlg(CWnd*pParent/*二NULL*/)

:CDialog(CCGViewSystemDlg: :IDD,pParent)

{

//{{AFX_DATAJNIT(CCGViewSystemDl g)

//NOTE: the ClassWizard will add member initialization here将Cl ass Wizard添加成员初始化m_strBrightness=_T(””);m_strContrast=_T(“”)m_strHue=_T(”“)m_strS aturation=_T(””)m_bCheck11=FALSE;m_bCheckl2=FALSE;m_bCheckl3=FALSE;m_bCheckl4=FALSE;m_bCheck21=FALSE;m_bCheck22=FALSE;m_bCheck23=FALSE;m_bCheck24=FALSE;m_b Check31=FALSE;m_bCheck32=FALSE;m_bCheck33=FALSE;m_b Check34=FALSE;//}}AFX_DATA」N 1 T

//Note that Loadicon does not require a subsequent Destroylcon in Win32m_hlcon=AfxGetApp()->Lo adIcon(IDR_MAINFRAME);pSize=false;p Full=NULL;pHalf=NULL;m_nlog 1=0;

〃下面是录像参数设置m_p F il e =NULL;m_p s =NULL;m_p sC o mpre s se d=NULL;m_nTimeFrame=0;m_b Start=FALSE;m_b Rec ord=FALS E;m_nLastSelect=0;m_byBrightne ss=0;m_byContrast=0;m_byHue=0;m_bySaturation=0;m_b fireflag 1=FALSE;m_b fireflag2=FALSE;m_nMDeteNum=0;m_nHDeteNum=0;m_nFDeteNum=0;

////////////// 〃线程句柄//////////////////m_hHumanThre ad=NULL;m_hF ireThread=

NULL;

CGSTATUS status;

CGGetCardTotal(&m_nCardTotal);if(m_nCardTotal<=0)

C G_ME S SAGE(C G_NO_CARD_F OUND);for(int i=0; i<m_nCardTotal; i++)

{statu s=B eginC GC ard((i+1),&m_Disp De sc[i].hcg);C G_VERIFY(statu s);m_Disp De sc[i].p MB kMat=NULL;m_Disp De sc[i].p HBkMat=NULL;

m_DispDe sc[il.pFBkMat=NULL;m_DispDesc[i].pBmpInfo =NULL;m_DispDesc[i].rcClientWindow.left=0;m_DispDesc[i].rcClientWindow.top=0;m_DispDesc[i].rcClientWindow.right=0;m_DispDesc[i].rcClientWindow.bottom=0;m_DispDesc[i].areavary=0; //ifij积变化计数器m_DispDesc[i].area 1=0;//第1帧面枳m_Disp De sc fi].area2=0;//第8帧面积m_Disp De sc[i].areavaryrate=O;//面积变化率m_DispDesc[i].areacount=0; 〃每8帧计数器m_DispDesc[i].areacount 1=0; 〃面积变化void CCGViewSystemDlg: :DoDataExchange(CDataExchange*pDX)

CDialog: :DoDataExchange(pDX);

//{{AFX_DATA_MAP(CCGViewSystemDl g)

DDX_Control(pDX, IDC_SYSTIME,m_csSysTime);

DDX_Control(pDX, IDC.SYSINFO,m_csSysInfo);

DDX_Contro l(pDX, IDC_S OURCE,m_cb Source);

DDX_Contro l(pDX, IDC_ADJUS T_SATURATION_SB,m_ctl S aturation SB);

DDX_C ontro l(p DX, IDC_ADJUS T_HUE_S B,m_ctlHue S B);

DDX_Control(pDX, IDC_ADJUST_CONTRAST_SB,m_ctlContrastSB);

DDX_Contro l(pDX, 1 DC_ADJUS T_BRIGHTNE S S_SB,m_ctlBrightnessSB);

DDX_Control(pDX, IDC_SETTING,m_pButton);

DDX_Text(pDX, IDC_ADJUS T_BRIGHTNE S S_TEXT,m_strBrightness);

DDX_Text(pDX, IDC_ADJUS T_CONTRAS T_TEXT,m_strContrast);

DDX_Text(p DX, IDC_ADJUS T_HUE_TEXT,m_strHue);

DDX_Text(p DX, IDC_ADJUS T_SATURAT ION_TEXT,m_strS aturation);

DDX_Check(pDX, IDC_CHECK1_1,m.bCheckll);

DDX_Check(pDX, IDC_CHECK1_2,m_bCheckl2);

DDX_Check(pDX, IDC_CHECK1_3,m_bCheckl3);

DDX_Check(pDX, IDC_CHECK1_4,m_bCheckl4);

DDX_Check(pDX, IDC_CHECK2_1,m_bCheck21);

DDX_Check(pDX, IDC_CHECK2_2,m_bCheck22);

DDX_Check(pDX, IDC_CHECK2_3,m_bCheck23);

DDX_Check(pDX, IDC_CHECK2_4,m_bCheck24);

DDX_Check(pDX, IDC_CHECK3_1,m_bCheck31);

DDX_Check(pDX, IDC_CHECK3_2,m_bCheck32);

DDX_Check(pDX, IDC_CHECK3_3,m_bCheck33);

DDX_Chcck(pDX, IDC_CHECK3_4,m_bCheck34);

//} }AF X_DATA_MAP

BEGIN_MES SAGE_MAP(CCGViewSystemDlg,CDialog)

//{{AFX_MS G_MAP(CCGViewSystemDlg)ON_WM_SYS COMMAND()

ON_WM_PAINT()

ON_BN_CLICKED(IDC_EXIT, OnExit) ON_BN_CL1 CKED(IDC_SETTINQ OnSetting)

ON_WM_H S CROLL()

ON_BN_CLICKE D(IDC_CAP TURE, On C apture)ON_BN_CLICKED(IDC_S TOPCAB On StopCap)

ON_BN_CLICKED(1 DC_S TARTRE C ORD,On Startrecord)

ON_WM_T IM E R()

ON_BN_CLICKED(IDC_VIEW,On View)

ON_BN_CLICKED(IDC_CHE CK 1_2,OnCheckl2)

ON_BN_CLICKED(1DC_CHECK 1_3,On Check 13)

ON_BN_CL1 CKED(1 DC_CHECK1_4,OnCheckl4)

ON_BN_CLICKED(IDC_CHECK2_1,OnCheck21)

ON_BN_CLICKED(IDC_CHECK2_2,OnCheck22)

ON_BN_CLICKED(IDC_CHE CK2_3,OnCheck23)

ON_BN_CLICKED(1 DC_CHECK2_4,OnCheck24)

ON_BN_CLICKED(IDC_CHE CK3_1,OnCheck31)

ON_CBN_SELCHANGE(IDC_S OURCE,On S elchange S ource)

ON_BN_CLICKED(IDC_CHECK1_1,OnCheckl 1)

ON_BN_CLICKED(IDC_CHE CK3_2,OnCheck32)

ON_BN_CLICKED(1 DC_CHECK3_3,OnCheck33)

ON_BN_CLICKED(IDC_CHE CK3_4,OnCheck34)

ON_WM_QUE RYDRAGIC ON()

ON_EN_CHANGE(IDC_VIDE OWIN,On Ch angeVide o win)

〃 } }AFX_M S G_MAP

END_ME S SAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CCGViewSystemDlg message handlers

BOOL CCGViewSystemDlg: :OnInitDialog()

{

CDialog: :OnInitDialog();

//Add"About. . ."menu item to system menu.

//IDM_ABOUTBOX must be in the system command range.

AS SERT((IDM_AB OUTB OX&OxFFFO)==IDM_AB OUTB OX);

AS SERT(IDM_AB OUTB OX<OxFOOO);

CMenu*p SysMenu=GetSysteniMenu(FALSE);if(p SysMenu!=NULL)

{

CString strAboutMenu;strAb outMenu.Lo ad String(ID S_AB OUTB OX);if(!strAb outMenu.IsEmpty())

{p SysMenu->AppendMenu(MF_SEPARATOR);

p SysMenu->App endMenu(MF_STRING, IDM_AB OUTB OX, strAb outMenu);

//Set the icon for this dialog.The framework does this automatically

//when the application's main window is not a dialog

Setlcon(m_hlcon,TRUE); //Set big icon

Setlcon(m_hlcon,FALSE); //Set small icon

//TODO:Add extra initialization herellllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

GetWindowRe ct(&p Full);pHalf=pFull;

CRect rect;m_p Button.GetWindo wRe ct(&re ct);pHalf.bottom=rect.bottom+20;

Chan geSize();

III IIIIIII IIIIIIII IIIIIII IIIIIII III IIIII II IIIII II IIIII II IIIII III IIHm_VideoWin.Sub classDlgItem(IDC_VIDEOWIN, this); 〃编辑框子类化

InitParamFromINI();

InitVideo Source();

InitC GC ard();

///////////////////设置Adjust参数//////////////////////m_ctlBrightne ss SB.S et S cro llRange(0,255,TRUE);m_ctlContrast SB.S et S crollRange(0,255,TRUE);m_ctlHue SB,S et S cro llRange(0,255,TRUE);m_ctl S aturationSB.S et S crollRange(0,255,TRUE);m_ctlBrightnessSB.SetScrollPo s(m_byBrightness);m_ctlContrastSB.SetScrollPo s(m_byContrast);m_ctlHueSB.SetScrolIPo s(m_byHue);m_ctl SaturationSB.SetScrollPo s(ni_bySaturation);m_strBrightne ss.Format(,,%d,\m_byBrightness);m_strContrast.Format(n%dn,m_byContrast);m_strHu e.Fo rmat(n%d,\m_b yHu e);m_str S aturation.Fo rmat(H%d,\m_b yS aturation);m_cb Source.SetCurSel(m_nLastSelect);

Up dateData(FALSE);lllllllllllllllllllllllllllllllllllllllllllllllllllllllllfor(int i=0; i<m_nCardTotal; i++)m_DispDesc[i].pBmpInfo (BITMAP INFO

l

CGS etVideo Standard(m_DispDescfil.hcg,m_Video Standard);

CGSetVideo Source(m_DispDesc[i].hcg,m_Video Source);

CGS etVideo F ormat(m_DispDe sc[i] .hcg,m_Video Format);

CGSetScanMode(m_DispDesc[i].hcg,m_VideoScan);

CGS etVideo F ormat(m_DispDe sc[i].hcg,RGB 888);

CGAdjustVideo(m_DispDesc[i].hcg,BRIGHTNE S S,m_byBrightness);

CGAdjustVideo(m_DispDesc[i].hcg,CONTRAST,m_byContrast);

C GAdju stVideo(m_Disp De scl iJ.hcg,HUE,m_byHue);

CGAdjustVideo(m_DispDesc[i].hcg,SATURATION,m_byS aturation);

C GS el InputWindow(m_Disp De sc[i].hcg,0,0,768,576);

CGSelectCryOSC(m_DispDesc[i].hcg,m_CryOsc);

}

}void CCGViewSystemDlg: :InitVideo Source()

{

CGSTATUS status=CG_OK;for(int i=0; i<m_nCardTotal; i++)

{

BOOL hPresent=FALSE;for(intj=0;j<MAX_VIDE O_S OURCE;++j) //按最大视频源数遍历该卡的所有视频源{

IndexToVideoSource(j,&m_Video Source);status=CGSetVideoSource(m_DispDesc[i].hcg,m_Video Source);

Sleep(l);status=CGVideoPresent(m_DispDesc[iJ.hcg,&bPresent);

〃检测源路是否连接视频信号。该接口仅支持CG300,QP300,VT 121型号图像卡if(status==CG_OK)

讦(bPresent)break;else if(status==CG_NOT_SUPPORT_INTERFACE)//如果返回

CG_NOT_SUPPORT_INTERFACE,该卡不支持CGVideoPresent接口break;

}if(!bPresent)

{ 〃如果没有找到视频源则设置默认源路为0

IndexToVideoSource(0,&m_Video Source);status=CGSetVideoSource(m_DispDesc[i].hcg,m_Video Source);void CCGViewSystemDlg: :OnSysCommand(UINT nID,LPARAM IParam) {if((nlD&OxFFFO)==IDM.AB OUTB OX)

{

NameCheap黑色星期五和网络礼拜一

如果我们较早关注NameCheap商家的朋友应该记得前几年商家黑色星期五和网络星期一的时候大促采用的闪购活动,每一个小时轮番变化一次促销活动而且限量的。那时候会导致拥挤官网打不开迟缓的问题。从去年开始,包括今年,NameCheap商家比较直接的告诉你黑色星期五和网络星期一为期6天的活动。没有给你限量的活动,只有限时六天,这个是到11月29日。如果我们有需要新注册、转入域名的可以参加,优惠力度还是比...

pacificrack7月美国便宜支持win VPS,$19.99/年,2G内存/1核/50gSSD/1T流量

pacificrack发布了7月最新vps优惠,新款促销便宜vps采用的是魔方管理,也就是PR-M系列。提一下有意思的是这次支持Windows server 2003、2008R2、2012R2、2016、2019、Windows 7、Windows 10,当然啦,常规Linux系统是必不可少的!1Gbps带宽、KVM虚拟、纯SSD raid10、自家QN机房洛杉矶数据中心...支持PayPal、...

域名注册需要哪些条件(新手注册域名考虑的问题)

今天下午遇到一个网友聊到他昨天新注册的一个域名,今天在去使用的时候发现域名居然不见。开始怀疑他昨天是否付款扣费,以及是否有实名认证过,毕竟我们在国内域名注册平台注册域名是需要实名认证的,大概3-5天内如果不验证那是不可以使用的。但是如果注册完毕的域名找不到那也是奇怪。同时我也有怀疑他是不是忘记记错账户。毕竟我们有很多朋友在某个商家注册很多账户,有时候自己都忘记是用哪个账户的。但是我们去找账户也不办...

视频监控软件为你推荐
重庆电信断网这几天为什么重庆电信的网络总是这么不稳定企业信息查询系统官网怎么查企业信息是否在网上公示过波音737起飞爆胎客机起飞的时候时速是多少?中国保健养猪网猪场基本保健包括哪些方面?discuz伪静态DZ怎么开启全站伪静态网站后台密码破解我找到了网站的后台地址,怎么才可以破解密码建站无忧求好点的免费建站网财务单据简单财务票据处理 是做什么discuz教程Discuz怎样使用?引擎收录要让搜索引擎收录一张图片需要达到什么条件 ?
中文域名查询 金万维动态域名 com域名抢注 2019年感恩节 国外私服 ixwebhosting gspeed 速度云 免费申请个人网站 电信主机 空间购买 网页提速 河南移动梦网 国外的代理服务器 百度云空间 谷歌台湾 华为k3 国内空间 江苏双线 杭州电信 更多