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

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

{

Digital-vm80美元,1-10Gbps带宽日本/新加坡独立服务器

Digital-vm是一家成立于2019年的国外主机商,商家提供VPS和独立服务器租用业务,其中VPS基于KVM架构,提供1-10Gbps带宽,数据中心可选包括美国洛杉矶、日本、新加坡、挪威、西班牙、丹麦、荷兰、英国等8个地区机房;除了VPS主机外,商家还提供日本、新加坡独立服务器,同样可选1-10Gbps带宽,最低每月仅80美元起。下面列出两款独立服务器配置信息。配置一 $80/月CPU:E3-...

Hostodo:$34.99/年KVM-2.5GB/25G NVMe/8TB/3个数据中心

Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...

HostKvm($4.25/月)俄罗斯/香港高防VPS

HostKvm又上新了,这次上架了2个线路产品:俄罗斯和香港高防VPS,其中俄罗斯经测试电信CN2线路,而香港高防VPS提供30Gbps攻击防御。HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。俄罗斯VPSCPU:1core内存:2G...

视频监控软件为你推荐
netshwinsockreset在cmd中输入netsh winsock reset显示系统找不到指定文件怎么办滴滴估值500亿滴滴出行股权项目投资怎么投 100w怎么可以投资不刚刚网刚刚网上刷单被骗了5万多怎么办啊 报警有用吗徐州商标介绍徐州的一种产品青岛网通测速网通,联通,长城这三个宽带哪个网速最快?我是青岛的灌水机谁知道哪个好点的灌水机的地址?什么是seoseo怎么学呢?团购程序什么是团购 团购的目的与流程联系我们代码农业银行代码zencart模板zencart里那些目录分别对应MVC设计模式的模型 视图 和控制器呢?
猫咪av永久最新域名 vps代购 免费主机 gateone 52测评网 国外免费asp空间 支付宝扫码领红包 免费网页空间 网站在线扫描 江苏双线服务器 免费邮件服务器 空间购买 photobucket 双线空间 1美元 hdsky 免费赚q币 建站论坛 游戏服务器 什么是云主机 更多