1、嵌入式摄像头抓图系统设计与实现学士学位论文嵌入式摄像头抓图系统设计与实现摘 要随着现代科技的飞速发展,我们越来越重视实时通讯,时时刻刻的了解身边发生的一切,这样我们就需要摄像头和Linux来帮助我们实现这一切。本项目以实现嵌入式的摄像头抓图系统为核心,使用V4L2框架完成图像采集。Video4Linux2是基于Linux系统进行图像和影音开发的应用编程接口。本项目的实现过程:服务器端,需要使用C语言,并结合V4L2框架,遵守V4L2的流程,先获取视频设备支持的标准,后设置捕获的视频格式,然后为图像数据分配内存空间,使用mmap将内核空间映射出来,使得应用程序能够访问内核空间,保存捕获的数据,将
2、数据发送到用户空间。使用socket建立网络连接,创建socket,绑定,监听,接受用户请求。使用视频传输 http协议,程序运行时加入JPEG库,通过转换格式将yuv转换成JPEG,并使用huffman函数解码打印图片。客户端方面,使用Qt实现客户端的图形化界面,使用QTcpSocket,建立连接,连接到服务器,不停地发送和接受数据,完成视频显示,图像采集,暂停的功能。最后,本文给出了符合V4L2框架的本机摄像头图像数据采集功能,并转换为JPEG格式保存。最后,本系统可以将捕捉到的画面显示在屏幕上并且可以实现抓图的功能。关键词 Linux;V4L2;图像采集;摄像头;显示Embedded c
3、amera capture system design and implementationAbstractWith the rapid development of modern technology, we are increasing emphasis on real-time communication, understanding everything happening around all the time, so we need a camera and Linux to help us achieve this.The project to implement an embe
4、dded camera capture system as the core, using V4L2 framework of image acquisition.Video4Linux2 is an application programming interface under Linux to develop video and image. Implementation process of the project:The program camera capture system based on the embedded,use c language to achieve the s
5、erver side and use v4l2 framework.First, get the standard of a video device support,Then set the format of the video capture,Then allocate memory for the image,Address translation mappings by using mmap,save data and then sends the data to the user space.Establish a network connection by using socke
6、t,create a socket,binding, listening,and receiving a user request,using the http protocol for video transmission,adding JPEG library in the runing time ,converting yuv into JPEG format by the technology of converting and print pictures by using huffman decoding function.Using Qt creator graphical in
7、terface to achieve client,the client using QTcpSocket to get a connection, and link the server, constantly sending and receiving data,and then complete the fuction of video display, image capture and stop In this paper, it offer the gathering function of camera image that conforms the framework of V
8、4L2 and convert to the JPEG to save.Finally, the system can capture the screen display on the screen and can capture functionality.Key words Linux;V4L2;capture picture;camera;display目录1 绪论1.1 课题背景在当今的世界中,各项技术都有了突飞猛进的发展,而嵌入式相关技术、相关多媒体的技术和各种各样的网络技术有了快速稳步的发展,其中基于嵌入式的视频压缩编码技术和网络的传输控制已经得到了综合应用,已经在数字化网络视频
9、采集监控领域有了立足之地,成为了这种技术的核心。由于系统的实时性,交互性,高速传输性,高质量传输的性能摄像头系统已经得到了广泛的使用,比如现在使用的网络视频聊天,安保监控,网络视频会议系统,视频电话等。由此可见,本课题的研究,对开发简单,简便的视频传输终端设备有一定的价值。这里Linux因为其开源、稳定性高、移植性较好、对网络的强大支持和其对文件系统的支持和操作简易等特点,受到了广大编程人员的青睐,频繁的出现在各种嵌入式设备的开发当中。到目前为止视频监控系统在电信、银行、交通、电力、水利、石化、智能大厦等许多领域都有着广泛的应用。日前,基于PC的传统视频监控系统在上述的这些领域中使用的比较广泛
10、,这种系统虽然功能较强,但是它的稳定性不好、视频前端较为复杂、可靠性较差、功耗高。然而,随着高性能嵌入式处理器和网络技术的快速发展,嵌入式网络视频监控系统将会得到广泛应用,这种系统把图像采集、视频压缩和网络功能集中在一起,可以直接连入以太网,具有体积小、功耗低、稳定性高、成本低等优点。相信在以后随着计算机技术、多媒体技术和网络技术的发展与提高,视频监控系统正向数字化、网络化、集成化和智能化方向发展。Linux是免费使用和开源的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64
11、位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。然而,随着技术的发展,使用Linux开发程序的人们都知道在Linux下最方便的开发工具Qt,它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是一款面向对象的框架,使用特殊的代码生成扩展以及一些宏,易于扩展,允许组件编程。使用Linux和QT最大的优势就是在于,Linux操作系统平台是一款更加接近于底层的一款操作系统平台,Linux以它的高效性和灵活性而著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux可在GNU公共许可权限下免费获得,是一
12、个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。因为它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。并且它具有Unix的全部功能,而且它受到广大计算机爱好者的喜爱,而广大的计算机爱好者也是娱乐休闲游戏的主力军,所以选用Linux操作系统作为软件支持平台。对于编程工具QT而言,本次使用的开发工
13、具叫做QtCreator,QtCreator 这款工具不仅能帮助用户更快速入门并运行项目,还可提高开发人员的工作效率。而且它使用强大的C+ 代码编辑器可快速编写代码,语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。另外,使用浏览工具管理源代码,集成了领先的版本控制软件,包括 Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换。最主要的是为 Qt跨平台开发人员的需求而量身定制,因为它集成了特定于 Qt 的功能,如信号与
14、槽 ,对Qt类结构可一目了然集成Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行Qt项目等有点,使得我们对软件的开发变得简单,易行。因此,在有了图像采集功能的视频监系统,使得这个系统就更加的完善和丰富。这个系统不仅可以起到监控的效果,而且在有需要的时候,将某一画面进行图像采集,这样就可以将视频转化成为图片。在保存方面这个特点就更加的显著了,毕竟视频的所占的空间是比图片要大很多,而且,整个视频不可能全部要保存下来,那么就有你需要的部分和你不需要的部分,也有可能,你需要的部分是不连贯的。那这个时候截图的功能就可以起到这样的效果,既可以节省空间,又可以得到自己需要的东西。 在
15、当今各种各样的图像采集软件层出不穷,说明图像采集软件的功能作用已被大众认可,相信在未来,会有更多的更加实用简洁的图像采集软件面市,更好的服务与大众。本文主要研究基于Linux下的V4L2在惠普HP6450b上实现图像采集系统的开发与实现。1.2 图集系统的研像采究发展在图像采集系统的初始研究,因为大多数所使用的硬件是基于CMOS芯片的摄像头,但是由于CMOS芯片只能捕获模拟信号,所以为了完成使用模拟摄像机的图像采集系统的研究,它也需要额外的处理,以获得数字信号的模拟信号。早在研究过程中需要使用的电路芯片的设计他们自己的图像采集系统,通常这样的一个图像采集系统需要使用图像传感器,信号处理器,以及
16、一个液晶显示帧存储器等硬件,CMOS摄像图像是由图像传感器电路的环境信号得到的,使用用一个信号处理器处理数字信号,其中每个帧的图像信号被存储在帧存储器中,并且最后这些信号是通过LCD技术显示。 随着人们对计算机科学与技术的重视,导致其快速发展,而采集卡已经成为图像采集系统硬件的组成部分,并逐步应用到图像采集系统,采用图像采集卡可以很容易地模拟摄像机的图像信号,处理时,采集卡软件界面非常轻松的应用到图像采集系统中去,所以使用的采集卡和模拟摄像头很容易地融入了图像采集系统中,虽然模拟摄像机的图像采集技术已经非常成熟,易于实现,但图像采集速度慢,抗干扰能力不强,声环境噪声可能会导致图像采集不清楚,而且这种技术不是很容易操作。由于这些技术缺点的致命性,这种技术逐渐被淘汰。后来,相机技术收到巨大动力,飞速发展,开发出了数码摄像机,它采用USB接口,千兆以太网接口可用于高速数字相机,将收集到的信息转换成数字图像信号,你可以去直接连接到电脑上,这种技术不仅简化了系统的运行,而且
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1