毕业论文(设计):基于python开发的图像采集器之Airppt.doc

上传人:文****钱 文档编号:42146 上传时间:2018-05-09 格式:DOC 页数:21 大小:418.56KB
下载 相关 举报
毕业论文(设计):基于python开发的图像采集器之Airppt.doc_第1页
第1页 / 共21页
毕业论文(设计):基于python开发的图像采集器之Airppt.doc_第2页
第2页 / 共21页
毕业论文(设计):基于python开发的图像采集器之Airppt.doc_第3页
第3页 / 共21页
毕业论文(设计):基于python开发的图像采集器之Airppt.doc_第4页
第4页 / 共21页
毕业论文(设计):基于python开发的图像采集器之Airppt.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、河北大学工商学院2013届本科生毕业论文(设计)本科生毕业论文(设计)题目基于PYTHON开发的图像采集器之AIRPPT学部学科门类专业装订线河北大学工商学院河北大学工商学院2013届本科生毕业论文(设计)基于PYTHON开发的图像采集器之AIRPPT摘要本文设计了一个基于PYTHON开发的图像采集器,该设计通过普通的USB数字摄像头来捕捉和获取实时图像,利用LINUX系统下的PYTHON脚本中的OPENCV图像处理模块和HUIGUI摄像头识别模块实现了采集图像信息并对图像信息进行分析的功能,该设计具有可靠性高、灵活稳定、低成本的特点,基于PYTHON开发的图像采集器将采集到的数据输入到PYT

2、HON脚本进行分析处理,并从外部引入C编程,根据不同的处理结果,系统将会调用不同的C程序,从而实现对PPT的翻页。本文系统介绍了用PYTHON开发的图像采集器基本满足设计要求。关键词图像采集器;PYTHON语言;PYTHONC扩展;混合语言编程装订线河北大学工商学院2013届本科生毕业论文(设计)河北大学工商学院2013届本科生毕业论文(设计)DEVELOPMENTTHEIMAGEACQUISITIONBASEDONPYTHONABSTRACTDESIGNONEBASEDONPYTHONDEVELOPMENTOFIMAGECAPTUREDEVICE,THEDESIGNBYORDINARYUSB

3、DIGITALCAMERAHEADTOCAPTUREANDACCESSTOREALTIMEIMAGEUSINGPYTHONSCRIPTINLINUXSYSTEMOPENCVIMAGEPROCESSINGMODULEANDHUIGUICAMERAHEADIDENTIFICATIONMODULETOACHIEVETHECAPTUREIMAGEINFORMATIONANDIMAGEINFORMATIONANALYSISFUNCTION,THEDESIGNHASHIGHRELIABILITY,FLEXIBLEANDSTABLE,LOWCOST,WILLBECOLLECTEDBASEDONTHETHEP

4、YTHONDEVELOPMENTOFIMAGEACQUISITIONDATAINPUTTOAPYTHONSCRIPTANALYSISANDPROCESSING,FROMTHEOUTSIDETOTHEINTRODUCTIONOFTHECPROGRAMMING,DEPENDINGONTHEPROCESSINGRESULTS,THESYSTEMWILLCALLTHECPROGRAM,INORDERTOACHIEVETHENEXTPAGEOFPPTWEINTRODUCETHEBASICMEETTHEDESIGNREQUIREMENTSWITHTHETHEPYTHONDEVELOPMENTOFIMAGE

5、ACQUISITIONKEYWORDSIMAGEACQUISITION;PYTHON;PYTHONCEXTENSION;MIXEDLANGUAGEPROGRAMMING河北大学工商学院2013届本科生毕业论文(设计)目录1前言错误未定义书签。2PYTHON语言介绍321PYTHON语言简介322PYTHON语言特性43设计思路和编程531设计思路532设计流程图533编程6331OPENCV模块引用6332HIGHGUI模块引用6333IMAGE模块引用6334OS模块引用634PYTHON与C混合编程接口问题64功能和可行性分析95结论11参考文献12致谢13附录14河北大学工商学院2013

6、届本科生毕业论文(设计)11引言信息和网络技术的飞速发展,使得图像信息量激增,人们对检索图像信息的需求也日益增加。作为一种纯面向对象的动态脚本语言,PYTHON已经在网络应用软件、系统配置软件及科学研究领域获得了广泛的使用,因此本文介绍了一种基于PYTHON的利用LINUX平台下PYTHON与C/C语言的两种OSSYSTEAM接口,实现了PYTHON与VC的混合语言编程,并将这种软件结构应用于一套图像采集器系统。实际应用表明,这种结构可以充分发挥PYTHON编程的灵活简单和VC执行效率高的优点,克服PYTHON执行效率低和VC开发效率低的缺点,实现了软件开发效率和执行效率的双赢。当今社会,科技

7、发达成长了人们的懒惰性,利用各种机器设备做家务,利用远程监控来遥控远在千里之外的东西,总之一切事务趋于自动化。图像采集器IMAGEACQUISITION,是指通过摄像头采集图像信息,批量获取图像信息,能够根据图像信息获取到物体运动的位移和执行的动作,这样采集到的图像信息分析更加的准确,可靠性更强。本文设计了一种不用点击鼠标,不用按下键盘,只需要轻轻的挥挥手就可以操纵PPT的翻页的软件AIRPPT,解决了以往操作PPT的繁琐性,满足了人们对方便快捷生活的向往,并且提升了宣讲效率。有了AIRPPT,老师上课讲课就不用总在电脑旁用鼠标控制PPT,这样就加大了老师与学生的互动性。AIRPPT利用的原理

8、就是图像采集器,它在国内外应用广泛,并且发展迅速,在国外它应用于军事,医疗,监控等领域。在国内还没有太多的应用,据目前了解到的在国内一般应用于监控的比较多,还有运用于娱乐的,通过采集器将用户的身形采集到屏幕中并且可以采集到你的动作与里面的事物发生互动。本文通过对模块应用环境及功能的认证,确定了应用OPENCV模块处理图像,HUIGUI模块来识别并调用摄像头采集信息,IMAGE模块处理采集到的图像大小等,OS模块引入外部C扩展,在利用PYTHON代码将这些功能连接起来,最终实现了AIRPPT的相关协议所设定的功能。本文主要研究内容如下(一)OPENCV模块的安装调用及作用;(二)IMAGE模块的

9、用法安装;(三)HUIGUI模块的用法及调用;(四)PYTHON外部C扩展的引入;本设计采用PYTHON程序编写,硬件只需一个外置摄像头作为采集信息的工具。河北大学工商学院2013届本科生毕业论文(设计)22PYTHON语言介绍21PYTHON语言简介PYTHON是一种解释型、交互式、纯面向对象的脚本程序设计语言,它结合了多种不同语言最经典的设计原则和思想。自1990年GUIDOVANROSSUM发明PYTHON以来,它的简单、清晰和优雅吸引了广泛的关注,PYTHON社区以每两年翻番的速度迅速扩张。例如PYTHON自GOOGLE创建之初就是其主要网络应用开发工具;美国国家航空航天局使用PYTH

10、ON开发CAD/CAE/PDM资源库,在此基础上建设新一代协作式工程环境NGCEENEXTGENERATIONCOLLABORATIVEENGINEERINGENVIRONMENT美国国家研究推进机构CNRICORPORATIONFORNATIONALRESEARCHINITIATIVES1999年启动的COMPUTERPROGRAMMINGFOREVERYBODYC4PE计划将PYTHON作为未来程序设计语言向教育机构推广MICROSOFT于2005年推出IRONPYTHON的开源项目,在VISUALSTUDIO2005中接纳PYTHON语言作为唯一动态脚本语言开发NET应用程序16。22P

11、YTHON语言特性相比其他任何程序设计语言,PYTHON允许软件设计者更关注于问题本身而不是实现细节,其主要特性有L面向对象PYTHON是一种纯面向对象语言,支持面向对象的所有机制,这使它可以应用于大型软件项目开发。2虚拟机机制PYTHON代码编译为字节码在虚拟机上执行,这种类似JAVA的机制使PYTHON具有平台无关性,并获得比其他脚本语言更快的执行效率。3内置高级数据类型PYTHON中的元组、列表、数组、字典等高级数据类型具有极强的表达能力,几乎任意复杂的对象在PYTHON中均可以以最简单的方式进行描述。4交互式开发方式和单元测试类似FOXPRO和MATLAB,PYTHON提供了内置交互式

12、窗口,可以允许开发者边尝试边书写代码,极大地提高了软件开发效率。另外单元测试机制在每个类代码完成后均可以单独执行、测试。这两种开发方式使得”搭积木”式的软件开发过程成为现实。5动态执行特性类似早期DBASE系统的宏代替、PYTHON允许动态构造程序代码并执行,使得软件中的重复代码得到简化。6高度可扩展性PYTHON语言本身只实现了一个小内核,其强大功能体现在大量的扩展模块。计算机科学领域几乎所有的已知算法均可找到PYTHON语言扩展。不仅C/C编写的程序可以方便地改写成PYTHON扩展模块,而且PYTHON自身也可以被嵌人到口C/C项目中。7平台无关性PYTHON字节码可以不经修改跨平台运行在

13、所有主流操作系统上,甚至包括POCKETPC、PALM等嵌入式系统1。河北大学工商学院2013届本科生毕业论文(设计)33设计思路和编程31设计思路本文的设计思路是(1)编辑器的选择PYTHON固定的编辑器是VIM编辑器,这个编辑器很容易实现脚本的创建保存和运行,能大大提高程序员的编程速度,它还有一个非常强大的功能,在电脑发生意外突然关机的情况下,这个编辑器就会自动保存你之前你没有保存的程序。这样就不会丢失有用的信息(2)图像坐标的产生设计中采用的是判断红点的个数,红点指定义的一个红色RGB色调,当我们动作时就会采集到红点动作的个数,通过判断红点的个数,来判断鼠标是否要动作,通过动作的位移来判

14、断鼠标动作的方向。(3)图像的处理图像的处理是用IMAGE模块处理的,可改变图像的大小,像素等,这样就可以把采集到的图像信息处理成所需要的。(4)摄像头接口的处理这里用的是OPENCV模块来实现图像的坐标的采集,OPENCV的设计意图是为用户提供简单易用的图形用户接口。(5)动作的反馈当你用手在摄像头前挥动时,该动作就会被程序所识别,然后发出相应的相应。(6)功能的设定这些功能是由C语言写的,然后引入OS模块,通过OS模块将写好的C功能引入到脚本语言中去。然后再用判断语句,当程序符合哪种条件是就会执行哪些C功能。2软件编程思想本文的软件编程思想是摄像头要采集手指运动的图像,来判断执行什么样的动

15、作,那么摄像头怎么样才能识别你的手指呢本文在这里是用颜色(R,G,B)来解决的,本设计把手指用(R,G,B)定义成红点,现在红点就代表手指,应用指令控制摄像头来采集红点。这是本设计的第一步打算。第二步,需要采集的目标已经确定,接下来就是判断红点的运动方向和位移,我这里是通过判断红点运动的方向来确定对AIRPPT执行什么样的动作;通过红点的位移和个数来确定AIRPPT是否要执行该动作,本设计在这里定义的是位移大于70MM,红点个数大于20个时AIRPPT才会执行相应的动作。因为动画都是由一张张图片组成的,假如不判断位移,当你不动作时它也会自动采集红点,进而发生动作反应,这样就出错了。这里的中心思

16、想就是IF判断语句,事件处理系统和FOR循环语句。32设计流程图本文定义的参照物是一个用代码编写的RGB红点。并且分析每张图片的红点数,当红点数达到70个时将该图片列为有效图片,否则无效。河北大学工商学院2013届本科生毕业论文(设计)4图31设计全局架构结构图图31是本设计的全局架构结构图,是本设计得以实现的最重要部分,对获取到的图片分析是否有效,接下来则是细节部分,分析两张最近的有效图片中心点位置来判断左翻页还是右翻页还是不翻页。图32有效图片筛选架构图有效图片无效图片抛弃红点数目是否大于70判断图像中红点数目通过摄像头采集图片遍历该图片中每个坐标点开始NY位移的正负有效动作,PPT动作开

17、始找到有效图片中所有红点坐标的中心坐标对比两张最近的有效图片中心坐标得到两次对比的位移大小位移大小是否大于5CM无效动作,PPT不动作NY左翻页右翻页负正河北大学工商学院2013届本科生毕业论文(设计)5图32实现的是对有效图片进行分析,通过判断最近两张有效图片的中心位置点的位置关系来决定PPT是否执行动作,执行动作时是左翻页还是右翻页等一系列功能。完成这一步所需的程序如下IFLENLIST220如果列表中坐标个数大于20个IFLENLIST220TN3LIST210LIST200将横坐标的长度赋值给TN3TN4LIST211LIST201将纵坐标的长度赋值给TN4WHILELENLIST23

18、LIST2POP0PRINT,TN3PRINTTN4IFTN450ANDTN350ANDTN350ANDTN3100OSSYSTEM/AX113PRINTLEFTTIMESLEEP08每次判断完一张图片后,就把列表中的红点数目与坐标等都删除。这样就不会对下一张图片造成影响。33编程在开始编程之前要先确定编程工具,本设计用的是VIM编辑器。这个编辑器的最大优势就是,在意外情况下可以自动保存代码。当代码错误时,会提示错误信息,能够及时进行修改。以下是本设计的部分代码/USR/BIN/PYTHON这是解释PYTHON语言在电脑中的位置CODINGUTF8这是PYTHON脚本中的中文解释器河北大学工商

19、学院2013届本科生毕业论文(设计)6331OPENCV模块IMPORTOPENCV从外部引入OPENCV模块本设计用到的OPENCV代码如下CAMHIGHGUICVCREATECAMERACAPTURE0定义摄像头端口位置TN1OPENCVADAPTORSIPL2PILIM采集到的图像定义为TN1OPENCV的全称是OPENSOURCECOMPUTERVISIONLIBRARY,是一个跨平台的计算机视觉库。OPENCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OPENCV可用于开发对实时的图像处理、计算机视觉以及模式识别程序。OPENCV用C语言编

20、写,它的主要接口也是C语言,但是依然保留了大量的C语言接口。该库也有大量的PYTHON,JAVAANDMATLAB/OCTAVE的接口。这些语言的API接口函数可以通过在线文档获得。现在也提供对于C,CH,RUBY的支持。安装OPENCV所需的依赖工具CMAKE,GTK,FFMPEG,GSTREAMER编译安装CDDIRMKDIRRELEASECMAKEDCMAKE_BUILD_TYPERELEASEDCMAKE_INSTALL_PREFIX/USR/LOCALDBUILD_PYTHON_SUPPORTONMAKEJMAKEINSTALL332HIGHGUI模块FROMOPENCVIMPORT

21、HIGHGUI从OPENCV图形处理模块中引入HIGHGUI模块。HIGHHGUI只是用来建立快速软件原形或是试验用的。它的设计意图是为用户提供简单易用的图形用户接口。本设计用到的HIGHGUI模块如下IMHIGHGUICVQUERYFRAMECAM;这里HIGHGUI用来采集图像OPENCV为了用于生产级别的应用而设计的。HIGHHGUI只是用来建立快速软件原形或是试验用的。它的设计意图是为用户提供简单易用的图形用户接口。通常,你需要读入源图像到你的程序或者输出结果图像到磁盘。此外,需要用简单的方法显示图像到监视器并河北大学工商学院2013届本科生毕业论文(设计)7且向用户提供输入如果你试图

22、创建最终用户的应用,请不要使用HIGHGUI。相对来说,应当为你的目标系统参考特定的函数库。比如HIGHGUI中的摄像头输入方法(CVCREATECAMERACAPTURE)是为了易用而设计的。然而,并不意味着它能够对热插拔作出反应等等2。333IMAGE模块IMPORTIMAGE引入图像模块,对采集到的图像进行处理本设计用到的IMAGE模块代码TN1TN1RESIZE160,160重新设置采集到的图像的大小SIZE1TN1SIZE将重新设置的图像的大小值定义位SIZE1PBBTN1LOAD载入图像PYTHONWARE公司提供了免费的图像处理工具包PILPYTHONIMAGELIBRARY,该

23、软件包提供了基本的图像处理功能,如改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是PYTHON的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发。在PIL中,任何一副图像都是用一个IMAGE对象表示,而这个类由和它同名的模块导出,因此,要加载一副图像,最简单的形式是这样的IMPORTIMAGEIMGIMAGEOPEN“DIPJPG”注意第一行的IMAGE是模块名;第二行的IMG是一个IMAGE对象;IMAGE类是在IMAGE模块中定义的。关于IMAGE模块和

24、IMAGE类,切记不要混淆了。现在,我们就可以对IMG进行各种操作了,所有对IMG的操作最终都会反映到到DIPIMG图像上。这个模块提供了一个常用的图像增强工具箱。可以用来进行色彩增强、图像叠加、改变图像大小、亮度增强、对比度增强、图像尖锐化等等增强操作。所有操作都有相同形式的接口通过相应类的ENHANCE方法实现色彩增强通过COLOR类的ENHANCE方法实现;亮度增强通过BRIGHTNESS类的ENHANCE方法实现;对比度增强通过CONTRAST类的ENHANCE方法实现;尖锐化通过SHARPNESS类的ENHANCE方法实现。所有的操作都需要向类的构造函数传递一个IMAGE对象作为参数

25、,这个参数定义了增强作用的对象。同时所有的操作都返回一个新的IMAGE对象。如果传给ENHANCE方法的参数是10,则不对原图像做任何改变,直接返回原图像的一个拷贝。334OS模块IMPORTOS引入OS模块,OS模块提供了一个统一的操作系统接口函数本设计引用OS模块所实现的代码如下河北大学工商学院2013届本科生毕业论文(设计)8OSSYSTEM/FAKEMOUSEMOVEX0STRMSTRN引入用C语言编写的程序PYTHONC扩展一个C源程序中的算法开发测试完毕后,可以改写为PYTHONC扩展暴露给PYTHON程序使用。例如将C源程序中的FOO函数转换为PYTHON语言的扩展,需要以下步骤

26、L包含PYTHONH的头文件,连接PYTHONXXLIBXX是PYTHON版本号,其中PYTHONH定义了所有PYTHON的内部数据结构和C的API函数原型。2定义一个此扩展模块的异常对象。3实现一个客户端函数,这个函数负责将传入的PYTHON对象参数转换为C对象并用这些参数调用FOO函数,最后将结果转换为PYTHON对象返回,如果出现错误,则设置异常对象并返回NULL。这个客户端函数充当PYTHON和C程序之间的参数调度者。4填写一个扩展模块定义的所有函数名与客户端函数对应关系表,实现PYTHON程序和C程序的映射。5完成扩展模块的初始化函数11。34C语言与PYTHON语言混合编程的接口问

27、题整个软件编程主要是用PYTHON语言,C语言只占了一小部分,因此设计中,将用C语言编的求解器做成一个扩展模块,嵌入到PYTHON语言中。下面给出了在本软件中的接口设计方法。第一步,将用C语言编写的代码在C编译器中编译调试成功第二步,在C代码中加入INCLUDE“PYTHONC”这条语句,告诉C编译器将要调用PYTHON库函数。第三步,在C代码中的主函数加上“PYOBJECTMODULE_FUNC“PYTHON打包器,此打包器的作用是把接受到的PYTHON类型的值转换成C语言数据类型的值,并用这些值做为实参,放到相关的函数中去计算,计算完成后,如果要将结果输出到PYTHON编写处理器中,必须由

28、打包器接受计算结果并把它们转换成PYTHON语言数据。经过以上步骤即可完成C语言和PYTHON语言的混合编程。PYTHON中将这些步骤封装成了一个方法,即OSSYSTEM,但是PYTHON中识别C代码需要这样的格式OSSYSTEM/8。河北大学工商学院2013届本科生毕业论文(设计)94功能分析及预期效果一、功能分析利用手指控制PPT实现的功能有左翻页,右翻页,开启全屏,退出全屏系统主要由PYTHON开发,由于它自带的模块较多,所以要根据需求来调用其中对我们开发AIRPPT有用的模块,需要熟悉PYTHON中各个模块的作用和用法。AIRPPT的原理是根据坐标和像素来采集图像信息,然后返回到程序中

29、,通过图像处理工具对采集到的图像进行处理,最后形成动作,来实现AIRPPT的功能。本设计首先要用到图像处理工具是OPENCV,从OPENCV图形处理模块中引入HIGHGUI模块。HIGHHGUI只是用来建立快速软件原形或是试验用的。它的设计意图是为用户提供简单易用的图形用户接口;引入图像模块IMAGE对采集到的图像进行处理,引入OS模块提供一个统一的操作系统接口函数;引入时间模块来获取本地时间。其次要熟悉PYTHON的编程方法和获取坐标的原理,以及解决接口问题,这样就需要多看PYTHON方面的资料,并且要选择编辑器来进行代码编写。代码编写要求掌握PYTHON的基本概念和基本的理论知识;熟练编程

30、工具的使用方法;对程序进行初步的编写和调试。现在我只是初步实现了AIRPPT的部分功能,接下来还要对它进行调试、整合,扩充它的功能,直至其能实现手动控制PPT。二、预期效果通过测试,摄像头可以获取到手指的信息,光标并且会跟随手指的运动而动作,目前还没有实现虚拟点击的效果,而且这个版本的光标动作不太稳定,会在光标附近晃动,所以本设计开发了第二个版本,第二个版本不能显示光标动作的痕迹,但是能控制PPT动作,识别效果不太明显,经分析这与摄像头像素有关。不过还好,本设计的预期功能基本都实现了。以后还会增加在新功能,优化已有的功能。下面是程序运行截图,图41是执行代码后的截图,图42是操作PPT翻页的程

31、序运行截图。图41程序运行截图河北大学工商学院2013届本科生毕业论文(设计)10图42程序执行操作截图河北大学工商学院2013届本科生毕业论文(设计)115结论在此次毕设中,我学到了很多东西,并且让我疯狂的喜欢上了编程,这段时间感觉的过的特别充实,这几个月比大学四年学的东西都多,当然也有一些值得改进以借鉴的地方,现总结如下1、需求设计在前期查阅了相关的资料,对PYTHON的原理有一定的了解之后,就开始着手对设计进行需求分析。并且试着画需求的流程图,可是经几番修改再修改,还是没能如愿,这说明自己在这方面还有很多需要提高的地方。于是就画出了双面板,但是我没有充分的考虑到这些功能的实际情况,使得做

32、出的需求很不好实现,但是最后还是做出了切合实际的需求分析流程,在老师的教导下学会了制作需求分析流程的方法。2、环境配置在做出了需求分析后,将相应的软件下载之后,有的软件却怎么也装不上,也不能引入到程序中。用PRINT来分行检查代码,我发现有的安装包需要依赖关系,或者是有的需要源码安装,非常费事,最后还是有一两个包装不上,终于在老师的帮助下所有包都装上了,原来需要外源才可以安装。我想到了可能是这个原因,但是不知道怎么去配置外源,这也让我认识到要运用合理有效的方法去迎难而上,而不是想当然,问题很有可能就是出在这上面。3、代码编写查阅了大量的资料,有了这方面的思路后就开始编写代码了,获取摄像头设置,

33、接收采集信息的设置,但是意外的情况的判断都让我觉得有些难以实现,特别是判断参照物是否动作了,是向那个方向动作的等,获取与处理的联调实现起来确实不难么容易,还需要对编程思路进一步的认识。河北大学工商学院2013届本科生毕业论文(设计)12参考文献1(丘恩CHUN)(WJ)PYTHON核心编程(第2版)M人民邮电出版社20082DOUGHELLMANNPYTHON标准库M机械工业出版社20123PAULGRIESPYTHON编程实践M机械工业出版社20114MARKLUTZPROGRAMMINGPYTHONM出版社20115赫特兰著PYTHON基础教程(第2版M人民邮电出版社20106鲁特兹PYT

34、HON学习手册(第3版M机械工业出版社20119李艳红,李海华传感器原理及其应用M北京北京理工大学出版社,201010谭浩强C程序设计北京M北京清华大学出版社,199911霍顿C语言入门经典第4版M北京清华大学出版社,200812张若愚PYTHON科学计算M清华大学出版社,201213JAMESPAYNEPYTHON编程入门经典M清华大学出版社,201114巴里深入浅出PYTHONM北京东南大学出版社,201115YDANIELLIANGPYTHON语言程序设计M机械工业出版社,201316GUIDOVANROSSUMPYTHONTUTORIALJPYTHONSOFTWAREFOUNDATIO

35、N,2006河北大学工商学院2013届本科生毕业论文(设计)13致谢这次在实验室的经历是我在大学最后一次了,想想从大一开始,有过多少次的实验课上看着同学都快走完了,自己还没什么头绪的焦头烂额,现在想起来竟是那么的可笑,却又带着几分回忆和伤感。我很珍惜这次做毕设的机会,不仅仅是我要交出大学阶段的学习成果,更是对自己能力与知识的检测。在此,衷心地感谢我的指导教师。在我做毕业设计阶段,他自始至终给予了我精心的指导和严格的要求,为本论文的顺利完成倾注了大量的心血。老师为人谦逊,热心帮助学生,在我们做毕设遇到问题的时候总能够不厌其烦的耐心予以指导,在此我要衷心的对老师说声谢谢。在她的热心指导下,我学到的

36、不仅仅是知识,还有做人上的严谨、独立,用科学的头脑武装自己。回首大学四年的时光,我要感谢那些帮助过我的人,也要感谢那些伤害过我的人,是他们让我对自我有了更为清醒的认识,不再沉醉于自我满足之中,这又何尝不是这一种收获呢。其实,最应该感谢的还是自己,因为路是自己走出来的,有美景,也有荆棘,但重要的是,我会以更加稳健的步伐,朝着未来勇敢的走下去。反思这一阶段,体会最深的一点就是,编程就是要有清晰的思路,这样编起来才有目的性,思维的不灵活导致有很多本该轻松理解的东西走了弯路,这并不是我理想中的状态。硬件也好,软件也罢,都需要系统的理论知识的支撑。徒有皮毛而不深入是不行的,只有有科学理性的方法去对待,遇

37、到问题能镇定的去沿着正确的轨道去思考进而解决问题是在今后的学习和工作中要时常提醒自己的,这也是毕设给我带来的最大收获。感谢我敬爱的老师给我这次机会。河北大学工商学院2013届本科生毕业论文(设计)14附录从毕设中得到了一些课外新知识,虚拟机不能用真机自带的摄像头。这也是我毕设中遇到的最棘手的问题,我最后的解决方法是给虚拟机安装USB然后外置一个摄像头,这样才把问题解决了。我认为这是一个很有价值的知识点,所有我把它记录在这里。以下是本设计的完整代码IMPORTTIMELIST2定义一个空列表CAMHIGHGUICVCREATECAMERACAPTURE2定义摄像头端口位置WHILETRUEIMH

38、IGHGUICVQUERYFRAMECAMTN1OPENCVADAPTORSIPL2PILIM采集到的图像定义位TN1TN1TN1RESIZE160,160重新设置采集到的图像的大小SIZE1TN1SIZE将重新设置的图像的大小值定义位SIZE1PBBTN1LOAD加载重新设置大小后的图像TN1C0D0定义位置初值C横坐标,D纵坐标E0定义红点的初始值为0FORIINRANGESIZE10FORJINRANGESIZE11遍历图像中的每个像素点IFPBBI,J0100ANDPBBI,J02PBBI,J1ANDPBBI,J02PBBI,J2定义动作的参照物,这里我将它定义为红点CIDJ如果该像素

39、点符合我们所定义的红点的特征,则将此位置加到横纵坐标上E1同时像素点数加1可求出我们采集到的这张图片中所有的红点数PRINT,E如果红点数大于70个IFE70如果红点数大于70个LIST2APPENDC/E,D/E将横纵坐标的平均值加入先前定义的空列表中M160LIST2101280/140100鼠标移动NLIST2111024/140100PRINTM,NOSSYSTEM/FAKEMOUSEMOVEX0STRMSTRN引入用C语言编写的程序河北大学工商学院2013届本科生毕业论文(设计)15IFLENLIST220如果列表中坐标个数大于20个IFLENLIST220TN3LIST210LIS

40、T200将横坐标的长度赋值给TN3TN4LIST211LIST201将纵坐标的长度赋值给TN4WHILELENLIST23LIST2POP0PRINT,TN3PRINTTN4IFTN450ANDTN350ANDTN350ANDTN3100OSSYSTEM/AX113PRINTLEFTTIMESLEEP08ELIFLENLIST21TN3LIST210LIST200TN4LIST211LIST201LIST2PRINT,TN3PRINTTN4IFTN450ANDTN350OSSYSTEM/AX71IFTN450OSSYSTEM/AX9IFTN3100河北大学工商学院2013届本科生毕业论文(设计)16OSSYSTEM/AX113PRINTLEFTTIMESLEEP08DELTN1DELPBBDELIMDELCDELEDELD

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。