计算机毕业论文毕业设计范文

时间:2024.4.21

系 别 信息技术系

学 号 18

冀中职业学院

毕业论文

多媒体摄像头程序开发与应用

论文作者:

指导教师:

专业 领 域 : 计算机应用

论文提交日期:2011-4-2

2011 年 4 月

冀中职业学院 毕业论文多媒体摄像头程序开发与应用系 专 班 学 姓别 信息技术系 业 计算机应用 级 号 名 _指导教师2011 年 4 月 2 日

摘要随着多媒体电脑技术的发展与普及,电脑在人们的生活中已是不可或缺的一部 分,多媒体技术广泛应用于生活、教学、研发等各个领域。而多媒体摄像头在其中 扮演着一个十分重要的角色,应用于娱乐、通讯、安全等方面。操作摄像头方便简 单, 而在微软公司最新推出的 Windows7 操作系统中并没有像 Windows XP 那样给用 户提供一个简易操作摄像头的程序,针对这种情况本文讲述了如何利用 DirectShow 技术开发一个在 Windows7 以及 Windows 其他版本的操作系统中都可以使用的多媒 体摄像头程序。 除此之外,该程序还可以用做单路视频监控软件来使用,足可以满足小型商店 以及家庭的需求。关键词: 关键词:多媒体;摄像头程序;DirectShow ; ;

Developing and Applying of the Multimedia Camera’s ProgramAbstractWith the development of computer technology and multimedia popularization, the computer has already been an integral part in people’s life. The multimedia technology is widely used in many different fields, such as teaching, research and development, and so on. However, multimedia camera plays a very important role, which is applied in entertainment, communication, security, etc. Operating cameras is not only convenient, but also easy. While the latest product, Windows7 operating systems by Microsoft, does not like Windows - XP which offers users a simple camera operation program. According to this kind of situation, this article talks about how to use DirectShow to develop a program which makes the multimedia camera can be used in Windows7 and other series of Windows operating system. In addition, the program also can be used as single video monitoring software, which can totally satisfy the demand of small-sized stores and family.Key words:Multimedia; Camera Program; DirectShow :

目一.概录论 ................................................................................................................................ 1(一)摄像头程序的概况 ................................................................................................. 1 (二)DYCap(多媒体摄像头程序)的特征 ................................................................. 1 (三)DirectShow 组件原理分析 ..................................................................................... 1 二.系统介绍及主要功能的实现方法 .................................................................................... 2 (一)开发工具及运行环境 ............................................................................................. 2 (二)主要功能以及实现方法 ......................................................................................... 2 1. 视频预览 .................................................................................................... 2 2. 视频录制 .................................................................................................... 6 3. 图片采集 .................................................................................................... 6 4. 换肤功能 .................................................................................................... 8 三.小结 .................................................................................................................................... 9 参考文献 .................................................................................................................................. 10 致谢 .......................................................................................................................................... 10 附录 .......................................................................................................................................... 10 1. 安装程序 .................................................................................................. 10 2. 源码 .......................................................................................................... 10

一.概 论

(一)摄像头程序的概况

摄像头(Camera)又称为电脑相机,电脑眼等,是一种视频输入设备,被广泛的运用于视频会议,远程医疗及实时监控等方面。普通的人也可以彼此通过摄像头在网络进行有影像、有声音的交谈和沟通。另外,人们还可以将其用于当前各种流行的数码影像,影音处理。摄像头程序是在操作系统之上人和摄像头交互的一种平台,通过摄像头程序可以将摄像头捕捉到的视频信号转换成数字模式,并加以压缩后转换到计算机上运用。

(二)DYCap(多媒体摄像头程序)的特征

本程序为用户提供丰富友好的操作界面,支持多个视频设备以及解码器的选择,集视频预览、视频录制、图片采集等主要功能为一体,并且为用户提供了非常方便的管理平台。根据不同需要用户可以自己选择相应的解码器来录制视频和进行图片采集。

除此之外,该软件还可以当做简单的单路视频监控软件使用,其实时预览、视频录制和图片采集的功能足可以满足小型超市以及家庭监控的需求。

(三)DirectShow组件原理分析

DirectX是Microsoft公司为游戏和其他高性能多媒体应用所提供的一套底层应用程序编程接口。而DirectShow是DirectX组件的一部分,提供对多媒体数据流的高质量捕获和回放。

DirectShow技术是建立在DirectDraw和DirectSound组件基础之上的,它通过DirectDraw对显卡进行控制以显示视频,通过DirectSound对声卡进行控制以播放声音。 DirectShow可提供高质量的多媒体流的捕获和回放功能;支持多种媒体格式,包括ASF(Advanced Systems Format),MPEG(Motion Picture Experts Group),AVI(Audio-Video Interleaved),MP3(MPEG Audio Layer-3)和WAV声音文件;可以从硬件上捕获媒体数据流;可以自动检测并使用视频和音频加速硬件。因此,DirectShow可以充分发挥媒体的性能,提高运行速度,可以简化媒体播放、媒体间的格式转换和媒体捕获等工作。同时,它还具有极大的可扩展性和灵活性,可以由用户自己创建组件,并将这个组件加入DirectShow结构中以支 1

持新的格式或特殊效果。

应用程序与DirectShow组件以及DirectShow所支持的软硬件之间的关系如图1所示:

计算机毕业论文毕业设计范文

二.系统介绍及主要功能的实现方法

(一)开发工具及运行环境

1. 开发工具

本程序采用C#语言和最新版的Visual Studio 2010(C#)+ DirectShow开发包 + Microsoft .NET Framework 4开发。

2. 运行环境

DirectX 9.0(或更高版本) + Microsoft .NET Framework 4 + Windows操作系统。

3. 硬件要求

摄像头一个;

电脑主机最低配置:处理器 1GHz 内存 512MB 磁盘空间 850MB;

电脑主机推荐配置:处理器 2GHz 内存 2GB 磁盘空间(最小值) 850MB;

(二)主要功能以及实现方法

1. 视频预览

2

程序主界面:

(1)程序运行后会自动搜索本地计算机可用视频设备并将其一一列举供用户选择,主要代码如下:

//列举视频设备并将其添加到Combobox1

foreach(DsDevicedsinDsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice)) {

comboBox1.Items.Add(ds.Name);

}

comboBox2.Items.Add("<默认解码器>");

//列举解码器并将其添加到comboBox2

foreach(DsDevicedsinDsDevice.GetDevicesOfCat(FilterCategory.VideoCompressor Category))

{

comboBox2.Items.Add(ds.Name);

}

(2)点击打开视频,实现视频预览,主要代码如下:

代码一.图像初始化:

//获取IGraphBuilder接口对象

计算机毕业论文毕业设计范文

3

graphBuilder = (IGraphBuilder) new FilterGraph();

//获取ICaptureGraphBuilder2接口对象

ICaptureGraphBuilder2 captureGraphBuilder = null;

captureGraphBuilder = (ICaptureGraphBuilder2) new CaptureGraphBuilder2(); //获取IGraphBuilder接口的IMediaControl对象

mediaControl = (IMediaControl) this.graphBuilder;

//获取m_graphBuilder 接口对象的IMediaEventEx对象

mediaEventEx = (IMediaEventEx)graphBuilder;

//设置ICaptureGraphBuilder2的IGraphBuilder接口为当前对象

int hr = captureGraphBuilder.SetFiltergraph(this.graphBuilder);

DsError.ThrowExceptionForHR(hr);

//添加视频源设备

hr = graphBuilder.AddFilter(theDevice, "source filter");

DsError.ThrowExceptionForHR(hr);

//添加视频解码器

if (theCompressor != null)

{

hr = graphBuilder.AddFilter(theCompressor, "compressor filter");

DsError.ThrowExceptionForHR(hr);

}

//通过theVideoDevice(IBaseFilter)视频接口对象的Preview Pin预览

hr=captureGraphBuilder.RenderStream(PinCategory.Preview,

theDevice, null, null);

DsError.ThrowExceptionForHR(hr);

//获取theVideoDevice的IAMVideoControl对象 MediaType.Video,

IVideoWindow videoWindow = null;

videoWindow = (IVideoWindow) graphBuilder;

//设置panel1为视频显示窗口

hr = videoWindow.put_Owner(panel1.Handle);

DsError.ThrowExceptionForHR(hr);

4

//去除视频窗口边框

hr=videoWindow.put_WindowStyle(WindowStyle.Child WindowStyle.ClipChildren); DsError.ThrowExceptionForHR(hr);

//把视频窗口绑定在panel

hr = videoWindow.SetWindowPosition(0, 0, panel1.Width, panel1.Height);

DsError.ThrowExceptionForHR(hr);

//释放接口资源

Marshal.ReleaseComObject(captureGraphBuilder);

代码二.开始预览:

ImediaControl对象接口提供三种控制状态:开始(Run())、暂停(Pause())和停止(Stop())。

预览界面如下图所示:

计算机毕业论文毕业设计范文

开始预览代码如下:

if (mediaControl != null)

{

5

mediaControl.Run();

}

2. 视频录制

视频录制原理及实现方法与视频预览大体相同,用户可以根据不同需求选择不同的解码器来录制不同质量的视频文件,而其实现方法也十分简单只需在图像初始化的时候新建IBaseFilter和IFileSinkFilter两个接口对象,从

ICaptureGraphBuilder2接口上调用SetOutputFileName函数将视频文件输出,与此同时从ICaptureGraphBuilder2接口调用RenderStream函数选择解码器来对视频流进行压缩。

视频录制相关代码如下:

//初始化IbaseFilter接口

IBaseFilter mux;

//初始化IbaseFilter接口

IFileSinkFilter sink;

//输出视频文件

hr = captureGraphBuilder.SetOutputFileName(MediaSubType.Avi, C:\video.avi, out mux, out sink);

DsError.ThrowExceptionForHR(hr);

//选择解码器对视频流进行压缩

hr = captureGraphBuilder.RenderStream(PinCategory.Capture, MediaType.Video, theDevice, theCompressor, mux);

DsError.ThrowExceptionForHR(hr);

//释放接口资源

Marshal.ReleaseComObject(mux);

Marshal.ReleaseComObject(sink);

3. 图片采集

拍照界面集图片采集、参数设定、查看、管理等功能为一体,用户可以根据 6

不同需要设置图片质量,其友好的操作界面及方便的管理功能,令人耳目一新。

拍照模式主界面:

计算机毕业论文毕业设计范文

(1)图片采集的实现方法是在图像初始化成功的基础之上,利用DirectShow开发包提供的图像捕获接口(SampleGrabber)接口进行图片捕获,SampleGrabber图像捕获效率高,利用该接口下的回调函数(SetCallBack)可轻松实现对源视频流的捕获并将其写入BMP文件中,这样便实现的对源视频流的图片采集。

图片采集相关代码如下:

//创建IbaseFilter接口对象capFilter

IBaseFilter capFilter;

sampGrabber //创建IsampleGrabber接口对象

ISampleGrabber sampGrabber;

//当”拍照”按钮按下时,调用IsampleGrabber对象的SetCallback函数

hr = sampGrabber.SetCallback(this, 1);

//将捕获到的源视频流转换并将其写入BMP文件中

int w = videoInfoHeader.BmiHeader.Width;

int h = videoInfoHeader.BmiHeader.Height;

if( ((w & 0x03) != 0) || (w < 32) || (w > 4096) || (h < 32) || (h > 4096) )

7

return;

int stride = w * 3;

GCHandle handle = GCHandle.Alloc( savedArray, GCHandleType.Pinned ); int scan0 = (int) handle.AddrOfPinnedObject();

scan0 += (h - 1) * stride;

Bitmap b = new Bitmap( w, h, -stride, PixelFormat.Format24bppRgb, (IntPtr) scan0 );

(2)图片采集参数设定界面如下图所示:

计算机毕业论文毕业设计范文

该程序封装在DirectShow动态库中,可以直接调用,调用代码:

DsUtils.ShowCapPinDialog( capGraph, capFilter, this.Handle );

4. 换肤功能

本程序采用第三方控件(IrisSkin2)实现对程序界面的美化,提供多种风格的皮肤供用户选择,操作简便,界面友好。

程序皮肤设置如图所示:

8

程序加载皮肤代码:

skinEngine1.SkinFile = "WaveColor1.ssk";

三.小结

经过了一个多月的学习和工作,我终于完成了此篇论文。从开始选题到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获。

我的论文作品还不是很成熟,还有很多不足之处,随着自身能力的提高,此程序还将逐步改进。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。

这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。

计算机毕业论文毕业设计范文

9

参考文献

[1]刘丽霞.C#范例开发大全[M] .北京.清华大学出版社.2010.7

[2] 陆其明.DirectShow开发指南(第一版)[M] .北京.清华大学出版社.2004.3

致谢

本设计在张莉敏老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,无不凝聚着老师的心血和汗水,在三年的大学学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。在此向张老师表示深深的感谢和崇高的敬意。

不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向信息技术系的全体老师表示由衷的谢意,感谢你们三年来的辛勤栽培。

附录(想要源码和安装程序的找我,qq269607488)

1. 安装程序

计算机毕业论文毕业设计范文

2. 源码

计算机毕业论文毕业设计范文

10

11

更多相关推荐:
计算机毕业论文开题报告范文

1.本课题的研究意义在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它…

计算机毕业论文开题报告范文

1.本课题的研究意义在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它…

山西农业大学计算机毕业论文基本要求

信息科学与工程学院计算机科学与技术专业本科生毕业论文基本规范要求毕业设计教学过程是教学计划的重要组成部分,此项工作对培养学生综合运用多学科的理论、知识与技能,解决实际问题的能力,树立严肃认真的科学态度和严谨求实…

如何来计算机毕业论文选题

众所周知,撰写毕业论文是本科各专业学生毕业前必须进行的一项重要工作,也是自考学生在毕业之前最后的一项学习任务。毕业论文的撰写要求学生综合使用在自学考试中学到的知识,解决实际间题或讨论实践中的话题。它主要考查大家…

计算机毕业论文提纲

计算机毕业论文提纲发布时间:20xx-09-15来源:应届毕业生求职网一、本科学生毕业论文的目的和内容本科学生在毕业之前必须做毕业论文,其目的是通过毕业论文,让学生独立开发一个具体的计算机应用项目,系统地进行分…

计算机毕业论文范文

计算机毕业论文范文摘要:计算机课程是一门独立的知识性与技能性相结合的基础性学科。计算机学科教学应在培养学生能力、全面提高学生素质方面发挥其独特的优势。本文结合实际对于其中的一些问题提出了解决方案。关键词:计算机…

计算机毕业论文

从自然灾害通信需求看无线电台站的应用前景来源:www.zdlunwen.com通信在抢险救灾工作中起着关键作用。是确保灾区信息及时联络的重要手段是救灾工作指挥协调、组织的重要保障。正是由于通信作用非常关键。往往…

计算机毕业论文任务书范文

大学毕业论文任务书论文题目指导教师专业学生年月日

摘要谈计算机毕业论文范文

摘要本文从信息时代对人才素质结构的要求网络及网络教学的特点出发分析了学校开展网络教学的重要意义分析了网络教学的开展给学校教学带来的新变化新特点最后提出了目前开展网络教学的迫切需要关注的几个问题有人说多媒体与信息...

11计算机专业毕业论文范文

东北师范大学网络教育本科论文论文题目计算机网络信息系统安全问题的分析与对策学生姓名XXX指导教师XXX学科专业XXX学号XXXXXXXXXXXXXX学习中心XXXXXXXXXXXXXX东北师范大学远程与继续教育...

计算机毕业论文范文

人才招聘管理系统的设计与实现【摘要】当今,人类社会已经进入信息全球化和全球信息化、网络化的高速发展阶段。丰富的网络信息已经成为人们工作、生活、学习中不可缺少的一部分。人们正在逐步适应和习惯于网上贸易、网上购物、…

20xx计算机应用本科毕业设计范本(开题报告)

本文档由中南大学计算机系张旭嵊提供博客地址本科毕业设计论文开题报告题目中小企业办公自动化设计与实现系部名称专业班级学生姓名学号指导教师填表时间20xx3年3月30日本文档由中南大学计算机系张旭嵊提供博客地址本文...

计算机毕业论文(40篇)