怎样用VC实现视频监控_第1页
怎样用VC实现视频监控_第2页
怎样用VC实现视频监控_第3页
怎样用VC实现视频监控_第4页
怎样用VC实现视频监控_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用VC实现视频监控摘要:视频监控系统是以计算机为核心,结合多媒体技术、计算机网络技术的一种监控主机系统。本文介绍了数字视频监控录像系统,对其主机软件部分多路监视、动态监测和视频压缩、传输等几个模块的编程实现进行详细的讨论。关键字: 视频 监控 多媒体 H.263中图分类号:TP311.52文献标识码:BDevelopment of Digital Video Surveillance Kinescope System with Visual C+Tian Guoguang 1 Ma Junying2 Luo Yuanhao 3 Pan Lideng 4(1,2,3,4 BeiJing Univ

2、ersity of Chemical Technology,BeiJing 100029)ABSTRACT:Video surveillance system, based on computer and combined with multimedia, network, is a kind of surveillance system. This paper introduces one video surveillance system, named Digital Video Surveillance Kinescope System, and gives tips to progra

3、m main function modules of the software on the system host computer.KEYWORDS:video, surveillance, multimedia,H.263引言近年来,随着技术的进步和社会经济的不断进展,客观上对监控系统的准确性、有效性和方便性提出了更高要求。具体地讲,要紧体现在以下两个方面:一是需要实施视频监控的范围更加宽敞,由传统的安防监控向治理监控和生产经营监控进展,而且对同一套系统的覆盖面和实施距离也提出了更高的要求,通俗地讲确实是要达到点多面广。二是要求监控系统与治理信息系统、网络系统结合,实现对大量视频数据的压

4、缩存储、传输和自动处理,从而达到资源共享,为各级治理人员和决策者提供方便、快捷、有效的服务。数字视频监控系统(以下简称监控系统)不仅符合信息产业的以后进展趋势,而且代表了监控行业的以后进展方向。监控系统的分站设备要紧由前端设备和视频编解码器组成。前端设备,如监控摄象机(彩色或黑白、固定或活动云台、定焦或变焦)、各类报警输入/输出装置与传统工业电视所使用的设备完全一致。监控系统的主站设备由基于DS-1002视频卡的软件和硬件来实现,支持PAL制式(25帧/秒)和NTSC制式(30帧/秒)的视频采集,要紧实现对登录用户、分站设备的集中治理和视频图像压缩/解压,存储等功能。 简单的主站可一个或数个监

5、控终端组成,它们往往以分时形式完成一对一或一对多的遥视监控任务。假如需要实现报警、录像等监控任务,主站设备可添加报警数据库服务器、数字录像数据库服务器以及多个监控终端和大量的辅助监控终端。二、关键技术的编程实现本监控系统主机软件部分包括许多模块,那个地点只介绍以下几个功能模块:多路监视,动态监测和网络传输。多路监视此模块要紧运用使用CSpillterWnd类来实现多视。(见图1-1)在建立工程的第四步时,进入高级设置(Advanced)对话框,选择 Use split Window 选项,其余设置参数默认即可。假如在建立工程时未选择上述设置,能够在生成工程后,用类向导(Class_Wizard

6、)生成函数OnCreateClient()。/分割视图为44BOOL CChildFrame:OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)if(!(m_wndSplitter-CreateStatic( this, 4, 4)return FALSE;/4*4/确定每个视图的大小CRect rectWnd;GetClientRect(rectWnd);GetParent()-GetClientRect(rectWnd);int row=(rectWnd.right-20)/4;/row 为视图的列宽int col=(

7、rectWnd.bottom-40)/4;/col 为视图的行宽/初始化每个视图for(int i=0; i4; i+)for(int j=0; jCreateView( i, j,/静态分割视图RUNTIME_CLASS(CPortView), /CPortView为派生类CSize( row, col), /视图的大小pContext);其中定义:CSplitterWnd *m_wndSplitter;CView CPortView; 图1-1 监控系统的主界面2. 显示/播放函数StartOverlayVideo(HWND hParentWnd, /为Overlay窗口的窗口指针DWOR

8、D nPort, /通道号RECT WinRect, /为预览窗口的区域ULONG FrameRate);/保留StartDirectVideo(DWORD nPort, /通道号RECT ScreenRect,/为预览窗口的区域ULONG FrameRate);/保留是视频卡的SDK提供预览功能的两个不同API函数,在Overlay模式下整个界面只能支持一个OVERLAY表面,因此所有的预览窗口(不一定是一个CWin的派生类,也能够是一个区域)必须共享一个OVERLAY表面。DirectDraw模式预览(Primary Surface)直接将视频流写到Primary Surface上。视频画

9、面将永久在最上层,可不能被其他窗口覆盖,这种模式对显卡的要求比较低。实现如下:if(m_bOpenPortportnum)/假如该通道差不多打开if(!m_bStartViewportnum)/假如该通道现在没有预览if(m_PreviewMode=OVERLAY_MODE)/ OVERLAY模式预览m_pPortViewListportnum-GetParent()-ScreenToClient(&rectportnum);m_bStartViewportnum = StartOverlayVideo(m_pPortViewListportnum-GetParent()-m_hWnd,por

10、tnum,rectportnum,FRAME_RATE_DEFAULT);else/DirectDraw模式预览m_bStartViewportnum = StartDirectVideo(portnum,rectportnum,FRAME_RATE_DEFAULT);3. 动态检测动态检测通过视频卡来监测图象的运动,节约了主机资源;其次,它不需要预览画面。每个通道能够设定多达99个区域。当某个区域发生变化时,通过CALLBACK机制或消息机制通知用户程序。两种方法的比较:消息机制下层(动态库)将数据依照用户传递的信息发送一个Windows消息,用户截获消息并分配空间,由下层负责将数据拷贝到用

11、户空间,任由用户处理,这种方法的优点是系统可靠可不能堵塞下层线程的运行,缺点是多了一次数据拷贝;回调(CALLBACK)机制当有数据时,下层调用用户的函数,将下层存储数据的内存地址和大小传递给用户,用户在自己的函数中处理数据,但用户不能释放掉这部分空间,同时要及时返回,这种方法的优点是用户不用再分配空间,少了一次内存拷贝,节约了系统资源,同时不用自定义Windows消息,比较方便,缺点是,假如用户不及时返回将会堵塞下层的线程,造成数据丢失。假如用户释放了由下层传递上来的地址空间,将产生不可预料的错误。实现如下:void CWatchDlg:StartStopMotion(DWORD nWind

12、ow)UpdateData(TRUE);DWORD nPort=m_nWindownWindow;if(m_bMotionnPort)/需要动态监视的通道MOTION_RECT MotionRect;MotionRect.DetectRect=CRect(0,0,352,288);/监测整个区域,PAL制。N制应该是352*240;MotionRect.DetectSensitive=5;/灵敏度if(m_bMotionType)/消息机制StartMotionDetect_MSG(nPort,&MotionRect,1,WM_MOTION,m_hWnd);else/CALLBACK机制Sta

13、rtMotionDetect(nPort,&MotionRect,1,MotionDetectCallBack);/回调函数体;void CALLBACK MotionDetectCallBack(DWORD nPort,/通道号DWORD* pChange,/是否变化DWORD nRectNum)/监测区域的个数/每个通道能够设定多达99个区域if(m_nWindow0=(int)nPort)bChange0=1;/only one rect per port;elsebChange1=1;/消息响应void CWatchDlg:OnMotionDetect(WPARAM wParam, L

14、PARAM lParam)/wParam是通道号,lParam是该通道的第几个检测区域。if(m_nWindow0=(int)wParam)bChange0=1;/only one rect per port;elsebChange1=1;视频压缩、传输视频流采纳H.263压缩编码。H.263是低码率压缩算法,以低于28.8Kbps的码率对单帧或者活动视频进行压缩解压缩,能够完成对图像序列和活动视频的实时H263采集、压缩、解压、回放以及视频广播。视频流的传输过程(包括发送和接收)由程序的辅线程完成。采纳异步传输和多缓冲的方式解决了本地播放和网络播放的时刻差,专门好地抵消了网络传输的时刻滞后,

15、取得了良好的同步效果。视频流数据时能够依照带宽和实时性选择不同的网络协议。对实时性要求较高的情况能够选用RTP协议。在实时性要求不高的情况下采纳UDP协议,在局域网中延迟可限制在500毫秒以内。三、 结论本监控系统针对LAN/WAN网络,集成了当今代信息领域中的计算机网络、远程通讯、数字化音视频压缩等高新技术,以计算机网络为平台,一方面以更高质量实现了传统监控系统的画面分割、本地监控、本地视频录像、本地视频回放等功能,另一方面扩充实现了本地多点分控、远程分控、音频资料治理等功能,系统易于治理和维护,满足了企业内部现代化治理的需求。本文提供的程序在Visual C+ 6.0下调试通过,在LAN环

16、境中运行正常。参考文献DOUGLAS E.COMER、DAVID L.STEVENS著,赵刚、林瑶、蒋慧等译.用TCP/IP进行网际互连第3卷:客户机-服务器编程和应用.电子工业出版社1998.06钟玉琢,蔡莲红,史元春. 1999. 多媒体计算机技术基础及应用. 北京:高等教育出版社作者简介:1. 田国光(1978.9-):男,汉族,山东潍坊人,北京化工大学信息学院在读硕士,专业:操纵理论与操纵工程,研究方向:模糊操纵。2. 马俊英(1940-),女, 汉族,辽宁北宁人,1965年毕业于北京化工大学自动化专业,现为北京化工大学自动化研究所教授,,从事建模、先进操纵和在线优化工作,已发表论文20多篇,合编著1本,合译著2本。3. 罗元浩(1976.5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论