基于python开发的图像采集器之Airppt本科毕业设计.pdf
《基于python开发的图像采集器之Airppt本科毕业设计.pdf》由会员分享,可在线阅读,更多相关《基于python开发的图像采集器之Airppt本科毕业设计.pdf(33页珍藏版)》请在咨信网上搜索。
1、河北大学工商学院本科生毕业论文(设计)本科生毕业论文(设计)题目:基于 python 开发的图像 采集器之 Airppt 装 订 线 河北大学工商学院 河北大学工商学院本科生毕业论文(设计)基于 python 开发的图像采集器之 Airppt 摘 要 本文设计了一个基于 python开发的图像采集器,该设计通过普通的 USB 数字摄像头来捕捉和获取实时图像,利用 linux系统下的 python 脚本中的 Opencv 图像处理模块和Huigui摄像头识别模块实现了采集图像信息并对图像信息进行分析的功能,该设计具有可靠性高、灵活稳定、低成本的特点,基于 python开发的图像采集器将采集到的数
2、据输入到python脚本进行分析处理,并从外部引入 C 编程,根据不同的处理结果,系统将会调用不同的 C 程序,从而实现对 ppt的翻页。本文系统介绍了用 python开发的图像采集器基本满足设计要求。关键词:图像采集器;Python语言;Python C扩展;混合语言编程 装 订 线 河北大学工商学院本科生毕业论文(设计)Development the image acquisition based on python ABSTRACT Design one based on python development of image capture device,the design by o
3、rdinary USB digital camera head to capture and access to real-time image using python script in linux system Opencv image processing module and Huigui camera head identification module to achieve the capture image informationand image information analysis function,the design has high reliability,fle
4、xible and stable,low-cost,will be collected based on the the python development of image acquisition data input to a python script analysis and processing,from the outside to the introduction of the C programming,depending on the processing results,the system will call the C program,in order to achi
5、eve the next page of ppt.We introduce the basic meet the design requirements with the the python development of image acquisition.Key words:Image acquisition;Python;Python C extension;Mixed-language programming 河北大学工商学院本科生毕业论文(设计)目 录 1 前言.错误!未定义书签。2 Python 语言介绍.3 2.1 Python 语言简介.3 2.2 Python 语言特性 .4
6、 3 设计思路和编程.5 3.1 设计思路 .5 3.2 设计流程图 .5 3.3 编程 .6 3.3.1 Opencv 模块引用 .6 3.3.2 Highgui 模块引用 .6 3.3.3 Image 模块引用 .6 3.3.4 Os 模块引用 .6 3.4 python 与 C 混合编程接口问题 .6 4 功能和可行性分析.9 5 结论 .11 参考文献.12 致谢 .13 附录.14 1 引 言 信息和网络技术的飞速发展,使得图像信息量激增,人们对检索图像信息的需求也日益增加。作为一种纯面向对象的动态脚本语言,python 已经在网络应用软件、系统配置软件及科学研究领域获得了广泛的使用
7、,因此本文介绍了一种基于Python的利用Linux平台下Python与C+/C+语言的两种Os.systeam 接口,实现了python 与VC 的混合语言编程,并将这种软件结构应用于一套图像采集器系统。实际应用表明,这种结构可以充分发挥Python编程的灵活简单和VC 执行效率高的优点,克服Python执行效率低和VC 开发效率低的缺点,实现了软件开发效率和执行效率的双赢。当今社会,科技发达成长了人们的懒惰性,利用各种机器设备做家务,利用远程监控来遥控远在千里之外的东西,总之一切事务趋于自动化。图像采集器(Image acquisition),是指通过摄像头采集图像信息,批量获取图像信息,
8、能够根据图像信息获取到物体运动的位移和执行的动作,这样采集到的图像信息分析更加的准确,可靠性更强。本文设计了一种不用点击鼠标,不用按下键盘,只需要轻轻的挥挥手就可以操纵 PPT 的翻页的软件-Airppt,解决了以往操作 PPT 的繁琐性,满足了人们对方便快捷生活的向往,并且提升了宣讲效率。有了airppt,老师上课讲课就不用总在电脑旁用鼠标控制 ppt,这样就加大了老师与学生的互动性。Airppt利用的原理就是图像采集器,它在国内外应用广泛,并且发展迅速,在国外它应用于军事,医疗,监控等领域。在国内还没有太多的应用,据目前了解到的在国内一般应用于监控的比较多,还有运用于娱乐的,通过采集器将用
9、户的身形采集到屏幕中并且可以采集到你的动作与里面的事物发生互动。本文通过对模块应用环境及功能的认证,确定了应用 opencv模块处理图像,huigui模块来识别并调用摄像头采集信息,image模块处理采集到的图像大小等,os模块引入外部 C 扩展,在利用 python代码将这些功能连接起来,最终实现了airppt 的相关协议所设定的功能。本文主要研究内容如下:(一)opencv模块的安装调用及作用;(二)Image 模块的用法安装;(三)Huigui模块的用法及调用;(四)Python外部 C 扩展的引入;本设计采用 python程序编写,硬件只需一个外置摄像头作为采集信息的工具。2 Pyth
10、on语言介绍 2.1 Python 语言简介 Python是一种解释型、交互式、纯面向对象的脚本程序设计语言,它结合了多种不同语言最经典的设计原则和思想。自1990年Guido van Rossum 发明Python以来,它的简单、清晰和优雅吸引了广泛的关注,Python 社区以每两年翻番的速度迅速扩张。例如:Python 自google 创建之初就是其主要网络应用开发工具;美国国家航空航天局使用Python开发CAD/CAE/PDM资源库,在此基础上建设新一代协作式工程环境NGCEE(Next Generation Collaborative Engineering Environment)
11、;美国国家研究推进机构CNRI(Corporation for National Research Initiatives)1999年启动的Computer Programming for Everybody(C4PE)计划将Python作为未来程序设计语言向教育机构推广;Microsoft于2005年推出Iron Python 的开源项目,在Visual Studio 2005 中接纳Python语言作为唯一动态脚本语言开发.net 应用程序16。2.2 Python 语言特性 相比其他任何程序设计语言,Python允许软件设计者更关注于问题本身而不是实现细节,其主要特性有:(l)面向对象
12、Python 是一种纯面向对象语言,支持面向对象的所有机制,这使它可以应用于大型软件项目开发。(2)虚拟机机制 Python代码编译为字节码在虚拟机上执行,这种类似Java的机制使Python具有平台无关性,并获得比其他脚本语言更快的执行效率。(3)内置高级数据类型 Python中的元组、列表、数组、字典等高级数据类型具有极强的表达能力,几乎任意复杂的对象在Python中均可以以最简单的方式进行描述。(4)交互式开发方式和单元测试 类似Foxpro 和 Matlab,Python 提供了内置交互式窗口,可以允许开发者边尝试边书写代码,极大地提高了软件开发效率。另外单元测试机制在每个类代码完成后
13、均可以单独执行、测试。这两种开发方式使得”搭积木”式的软件开发过程成为现实。(5)动态执行特性 类似早期Dbase系统的宏代替、Python允许动态构造程序代码并执行,使得软件中的重复代码得到简化。(6)高度可扩展性Python 语言本身只实现了一个小内核,其强大功能体现在 大量的扩展模块。计算机科学领域几乎所有的已知算法均可找到Python语言扩展。不仅c/c+编写的程序可以方便地改写成Python扩展模块,而且Python自身也可以被嵌人到口C/C+项目中。(7)平台无关性Python字节码可以不经修改跨平台运行在所有主流操作系统上,甚至包括Pocket PC、Palm等嵌入式系统1。3
14、设计思路和编程 3.1 设计思路 本文的设计思路是:(1).编辑器的选择:python固定的编辑器是 vim 编辑器,这个编辑器很容易实现脚本的创建保存和运行,能大大提高程序员的编程速度,它还有一个非常强大的功能,在电脑发生意外突然关机的情况下,这个编辑器就会自动保存你之前你没有保存的程序。这样就不会丢失有用的信息 (2).图像坐标的产生:设计中采用的是判断红点的个数,红点指定义的一个红色 RGB色调,当我们动作时就会采集到红点动作的个数,通过判断红点的个数,来判断鼠标是否要动作,通过动作的位移来判断鼠标动作的方向。(3).图像的处理:图像的处理是用 Image 模块处理的,可改变图像的大小,
15、像素等,这样就可以把采集到的图像信息处理成所需要的。(4).摄像头接口的处理:这里用的是 Opencv 模块来实现图像的坐标的采集,opencv的设计意图是为用户提供简单易用的图形用户接口。(5).动作的反馈:当你用手在摄像头前挥动时,该动作就会被程序所识别,然后发出相应的相应。(6).功能的设定:这些功能是由 C 语言写的,然后引入 os模块,通过 os模块将写好的 C 功能引入到脚本语言中去。然后再用判断语句,当程序符合哪种条件是就会执行哪些 C 功能。2 软件编程思想 本文的软件编程思想是:摄像头要采集手指运动的图像,来判断执行什么样的动作,那么摄像头怎么样才能识别你的手指呢?本文在这里
16、是用颜色(R,G,B)来解决的,本设计把手指用(R,G,B)定义成红点,现在红点就代表手指,应用指令控制摄像头来采集红点。这是本设计的第一步打算。第二步,需要采集的目标已经确定,接下来就是判断红点的运动方向和位移,我这里是通过判断红点运动的方向来确定对 airppt 执行什么样的动作;通过红点的位移和个数来确定 airppt 是否要执行该动作,本设计在这里定义的是位移大于70mm,红点个数大于 20 个时 airppt 才会执行相应的动作。因为动画都是由一张张图片组成的,假如不判断位移,当你不动作时它也会自动采集红点,进而发生 动作反应,这样就出错了。这里的中心思想就是 if判断语句,事件处理
17、系统和for循环语句。3.2 设计流程图 本文定义的参照物是一个用代码编写的 RGB红点。并且分析每张图片的红点数,当红点数达到 70 个时将该图片列为有效图片,否则无效。图 3-1 设计全局架构结构图 图 3-1是本设计的全局架构结构图,是本设计得以实现的最重要部分,对获取到的图片分析是否有效,接下来则是细节部分,分析两张最近的有效图片中心点位置来判断左翻页还是右翻页还是不翻页。有效图片 无效图片抛弃 红点数目是否大于 70 判断图像中红点数目 通过摄像头采集图 遍历该图片中每个坐标点 开始 N Y 有效动作,ppt动作 开始 找到有效图片中所有红点坐标的中心坐标 对比两张最近的有效图片中心
18、坐标 得到两次对比的位移大小 位移大小是否大于 5cm 无效动作,ppt不动作 N Y 负 图 3-2 有效图片筛选架构图 图 3-2 实现的是对有效图片进行分析,通过判断最近两张有效图片的中心位置点的位置关系来决定 ppt 是否执行动作,执行动作时是左翻页还是右翻页等一系列功能。完成这一步所需的程序如下:if len(list2)20:#如果列表中坐标个数大于 20 个 if len(list2)20:tn3=list2-10-list200#将横坐标的长度赋值给 tn3 tn4=list2-11-list201#将纵坐标的长度赋值给 tn4 while len(list2)3:#list2
19、.pop(0)#print.,tn3#print tn4 if tn450 and tn3-50 and tn350:os.system(./a.x 71)if tn4-50 and tn350:os.system(./a.x 9)if tn3100:os.system(./a.x 113)#print left#time.sleep(0.8)每次判断完一张图片后,就把列表中的红点数目与坐标等都删除。这样就不会对下一张图片造成影响。3.3 编程 在开始编程之前要先确定编程工具,本设计用的是 vim 编辑器。这个编辑器的最大优势就是,在意外情况下可以自动保存代码。当代码错误时,会提示错误信息,能
20、够及时进行修改。以下是本设计的部分代码:#!/usr/bin/python 这是解释 python 语言在电脑中的位置#-*-coding:UTF-8-*-这是 python 脚本中的中文解释器 3.3.1 opencv 模块 import opencv 从外部引入 opencv 模块 本设计用到的 opencv 代码如下:cam=highgui.cvCreateCameraCapture(0)#定义摄像头端口位置 tn1=opencv.adaptors.Ipl2PIL(im)#采集到的图像定义为 tn1 OpenCV 的全称是 Open Source Computer Vision Libr
21、ary,是一个跨平台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发对实时的图像处理、计算机视觉以及模式识别程序。OpenCV 用 C+语言编写,它的主要接口也是 C+语言,但是依然保留了大量的 C 语言接口。该库也有大量的 Python,Java and MATLAB/OCTAVE 的接口。这些语言的 API 接口函数可以通过在线文档获得。现在也提供对于 C#,Ch,Ruby 的支持。安装 Opencv 所需的依赖工具:cmake,gtk+*,ffmpeg*,gstreamer*编译安装:$cd$
22、DIR$mkdir release$cmake-D CMAKE_BUILD_TYPE=RELEASE-D CMAKE_INSTALL_PREFIX=/usr/local-D BUILD_PYTHON_SUPPORT=ON.$make-j$make install 3.3.2 highgui 模块 from opencv import highgui 从 opencv 图形处理模块中引入 highgui 模块。HighHGUI 只是用来建立快速软件原形或是试验用的。它的设计意图是为用户提供简单易用的图形用户接口。本设计用到的 highgui 模块如下:im=highgui.cvQueryFram
23、e(cam);这里 highgui 用来采集图像 OpenCV 为了用于生产级别的应用而设计的。HighHGUI 只是用来建立快速软件原形或是试验用的。它的设计意图是为用户提供简单易用的图形用户接口。通常,你需要读入源图像到你的程序或者输出结果图像到磁盘。此外,需要用简单的方法显示图像到监视器并且向用户提供输入.如果你试图创建最终用户的应用,请不要使用HighGUI。相对来说,应当为你的目标系统参考特定的函数库。比如:HighGUI 中的摄像头输入方法(cvCreateCameraCapture)是为了易用而设计的。然而,并不意味着它能够对热插拔作出反应等等2。3.3.3 image 模块 i
24、mport Image 引入图像模块,对采集到的图像进行处理 本设计用到的 image模块代码:tn1=tn1.resize(160,160)#重新设置采集到的图像的大小 size1=tn1.size#将重新设置的图像的大小值定义位size1 pbb=tn1.load()#载入图像 PythonWare 公司提供了免费的图像处理工具包 PIL(Python Image Library),该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等 等。虽然在这个软件包上要实现类似 MATLAB中的复杂的图像处理算法并不太适合,但是
25、 Python的快速开发能力以及面向对象等等诸多特点使得它非常适 合用来进行原型开发。在 PIL 中,任何一副图像都是用一个 Image 对象表示,而这个类由和它同名的模块导出,因此,要加载一副图像,最简单的形式是这样的:import Image img=Image.open(“dip.jpg”)注意:第一行的 Image 是模块名;第二行的 img 是一个 Image 对象;Image类是在 Image 模块中定义的。关于 Image 模块和 Image 类,切记不要混淆了。现在,我们就可以对 img 进行各种操作了,所有对 img 的 操作最终都会反映到到dip.img图像上。这个模块提供
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 python 开发 图像 采集 Airppt 本科 毕业设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。