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

视频监控软件  时间: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)

{

BuyVM新设立的迈阿密机房速度怎么样?简单的测评速度性能

BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...

王小玉网-美国洛杉矶2核4G 20元/月,香港日本CN2 2核2G/119元/季,美国300G高防/80元/月!

 活动方案:美国洛杉矶 E5 2696V2 2核4G20M带宽100G流量20元/月美国洛杉矶E5 2696V2 2核4G100M带宽1000G流量99元/季香港CN2 E5 2660V2 2核2G30M CN2500G流量119元/季日本CN2E5 2660 2核2G30M CN2 500G流量119元/季美国300G高防 真实防御E5 2696V2 2核2G30M...

RackNerd新上圣何塞、芝加哥、达拉斯、亚特兰大INTEL系列,$9.49/年

racknerd怎么样?racknerd商家最近促销三款美国便宜vps,最低只需要9.49美元,可以选择美国圣何塞、西雅图、纽约和芝加哥机房。RackNerd是一家成立于2019年的美国高性价比服务器商家,主要从事美国和荷兰数据中心的便宜vps、独立服务器销售!支持中文工单、支持支付宝和微信以及PayPal付款购买!点击直达:racknerd官方网站INTEL系列可选机房:加利福尼亚州圣何塞、芝加...

视频监控软件为你推荐
操作http操作httpcss加载失败css 无法加载centos6.5centos 6.5 无法启动了,不知道是哪里的问题。asp.net网页制作如何用DREAMWEAVER ASP.NET 做网页密码cuteftp资费标准中国移动4g18元套餐介绍滴滴估值500亿滴滴拉屎 App 为何能估值 100 亿美金?是怎么计算出来的欢迎光临本店宾馆欢迎语都有哪些? 越多越专业越好站点管理站点名称是什么意思
域名邮箱 长春域名注册 com域名抢注 光棍节日志 iis安装教程 警告本网站 免费ftp站点 169邮箱 网站卫士 河南移动m值兑换 789电视剧 www789 cxz 中国电信测速网站 稳定空间 广州主机托管 hdsky 镇江高防服务器 cx域名 美国vpn代理 更多