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

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

{

博鳌云¥799/月,香港110Mbps(含10M CN2)大带宽独立服务器/E3/8G内存/240G/500G SSD或1T HDD

博鳌云是一家以海外互联网基础业务为主的高新技术企业,运营全球高品质数据中心业务。自2008年开始为用户提供服务,距今11年,在国人商家中来说非常老牌。致力于为中国用户提供域名注册(国外接口)、免费虚拟主机、香港虚拟主机、VPS云主机和香港、台湾、马来西亚等地服务器租用服务,各类网络应用解決方案等领域的专业网络数据服务。商家支持支付宝、微信、银行转账等付款方式。目前香港有一款特价独立服务器正在促销,...

无法忍受旧版不兼容PHP7+主题 更换新主题

今天父亲节我们有没有陪伴家人一起吃个饭,还是打个电话问候一下。前一段时间同学将网站账户给我说可以有空更新点信息确保他在没有时间的时候还能保持网站有一定的更新内容。不过,他这个网站之前采用的主题也不知道来源哪里,总之各种不合适,文件中很多都是他多年来手工修改的主题拼接的,并非完全适应WordPress已有的函数,有些函数还不兼容最新的PHP版本,于是每次出现问题都要去排查。于是和他商量后,就抽时间把...

CloudCone(12.95美元/月CN2 GT线路,KVM架构1 Gbps带宽

整理一下CloudCone商家之前推送的闪购VPS云服务器产品,数量有限,活动推出可能很快机器就售罄了,有需要美国便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开发的主机系统面板,CloudCone主要销售美国洛杉矶云服务器产品,优势特点是...

视频监控软件为你推荐
googlepr什么是Google PR值? 如何提高PR值?www.topit.mehttp://www.topit.me/ 中自己上传的照片如何删除大飞资讯手机出现热点资讯怎么关闭123456hdAPP上面带有HD是啥意思什么是通配符什么是模糊查询?免费代理加盟怎样免费加盟代理淘宝欢迎光临本店宾馆欢迎语都有哪些? 越多越专业越好kingcmsKingCMS 开始该则呢么设置呢?站点管理有关站点的知识介绍?艾泰科技艾泰路由器设置!!!
虚拟主机评测网 游戏服务器租用 windows虚机 enzu 香港机房 wavecom 线路工具 免费静态空间 英文站群 合肥鹏博士 福建天翼加速 全站静态化 165邮箱 泉州移动 亚马逊香港官网 爱奇艺vip免费试用7天 双线机房 便宜空间 ebay注册 智能dns解析 更多