基于OPENCV的视频播放器设计

基于OPENCV的视频播放器设计
基于OPENCV的视频播放器设计

摘要

本文旨在通过VC++6.0开发平台开发一个基于OpenCV的视频播放器。OpenCV是计算机视觉库,基于OpenCV的视频播放器可以更简单的实现AVI视频的播放。

首先,本文简单介绍了VC++6.0软件开发平台,OpenCV计算机视觉库的特点和应用领域,计算机视频技术的发展,以及各种视频格式的分类等;其次选择在微软的Microsoft Visual Studio 6.0开发平台上使用C++语言进行开发,编写出基于OpenCV的功能简单实用方便的视频播放器。主要包括以下几个方面:开发本软件所使用的开发平台与技术;功能模块;功能设计;功能实现等。

关键词:Microsoft Visual Studio 6.0;OpenCV;C++;视频播放器;AVI格式

Abstract

This paper aims to develop a VC + + 6.0 development platform based on the video player OpenCV, OpenCV is based on computer vision, the video player can OpenCV more simple realization video playback. AVI.

Firstly, the paper simply introduces vc + + 6.0 software development platform under OpenCV, computer vision, the characteristics and application fields of the library, computer video technology development, as well as various video format of classification, Second choice at Microsoft Microsoft Visual Studio 6.0 development platform using c + + language development, and write a simple and practical OpenCV based on the function of video player convenience. Mainly includes the following aspects: the development of the software development platform and technology of use, Function module, Functional design, Functions, etc.

Keywords: Microsoft Visual Studio 6.0; OpenCV; C++;Video Player; AVI format

目录

1 绪论 (1)

1.1概述 (1)

1.2OPENCV简介 (2)

1.2.1 OpenCV (2)

1.2.2 OpenCV的应用领域 (3)

1.2.3 计算机视觉 (4)

1.3论文主要研究内容及研究意义 (6)

1.4论文组织结构 (6)

2 视频技术概述 (7)

2.1多媒体技术 (7)

2.2视频格式及视频流播放回放 (13)

2.2.1 视频格式分类 (13)

2.2.2视频流播放与回放 (17)

3 OPENCV库使用 (18)

3.1在VC下安装O PEN CV (18)

4 VC开发环境 (22)

4.1VC++的组件工具 (22)

4.1.1编译器工具 (23)

4.1.2VC++库 (23)

4.1.3VC++开发环境 (24)

5 视频播放器的设计与实现 (25)

5.1模块划分 (25)

5.1.1播放器功能模块图 (25)

5.2详细设计 (26)

5.2.1 主界面的实现 (26)

5.2.2 文件控制的实现 (28)

5.2.3 播放控制的实现 (30)

5.2.4 进度控制的实现 (34)

5.2.5 系统声明 (34)

6 程序运行结果及分析 (35)

6.1运行结果测试 (35)

6.2结果分析 (37)

结论 (38)

致谢 (39)

参考文献 (40)

附录A 英文原文 (41)

附录B 汉语翻译 (47)

附录C 程序源代码 (52)

1 绪论

1.1 概述

C++语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C++以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性。[1]

C++程序设计语言是由来自AT&T Bell Laboratories的Bjarne Stroustrup设计和实现的,它兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言设施。C++最初的版本被称作“带类的C(C with classes)”[Stroustrup,1980],在1980年被第一次投入使用;当时它只支持系统程序设计和数据抽象技术。支持面向对象程序设计的语言设施在1983年被加入C++;之后,面向对象设计方法和面向对象程序设计技术就逐渐进入了C++领域。在1985年,C++第一次投入商业市场。在1987至1989年间,支持范型程序设计的语言设施也被加进了C++。[2]

随着若干独立开发的C++实现产品的出现和广泛应用,正式的C++标准化工作在1990年启动。标准化工作由ANSI(American National Standard Institute)以及后来加入的ISO(International Standards Organization)负责。1998年正式发布了C++语言的国际标准[C++,1998]。

而VC是基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC 在Windows平台无所不能。[3]

AVI(Audio Video Interleave)是一种音频视像交插记录的数字视频文件格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(Video for Windows)。在AVI 文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。AVI可以算是Windows操作系统上最基本的也是最常用的一种媒体文件格式,兼容性比较好。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。

OpenCV是Intel公司支持的开源计算机视觉库。它轻量级而且高效——由一系列C 函数和少量C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

计算机视觉市场巨大而且持续增长,且这方面没有标准API,目前的计算机视觉软件大概有以下三种:

1.研究代码(慢,不稳定,独立并与其他库布兼容)

2.耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)

3.依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)

这是目前的现状。而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV 致力于成为这样的标准API。

本文在此基础上设计一个基于OpenCV的视频播放器,可以更简捷的实现avi格式视频文件的播放,暂停,停止等操作。

1.2 OPENCV简介

1.2.1 OpenCV

OpenCV是Intel资助的开源计算机视觉库。它由一系列C 函数和少量C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 拥有包括300 多个C/C++函数的跨平台的中、高层API。它不依赖与其它的外部库,尽管也可以使用某些外部库。

OpenCV 对非商业应用和商业应用都是免费的。另外OpenCV 也为Intel公司的Integrated Performance Primitives (IPP) 提供了透明接口。这意味着如果有为特定处理器(INTEL的处理器)优化的的IPP 库,OpenCV 将在运行时自动加载这些库。

OpenCV的一个目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。OpenCV包含的函数有500多个,覆盖了计算机视觉的许多应用领域,如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人等。因为计算机视觉和机器学习密切相关,所以OpenCV还提供了MLL(Machine Learning Library)机器学习库。该机器学习库侧重于统计方面的模式识别和聚类(clustering)。MLL除了用在视觉相关的任务中,还可以方便地应用于其他的机器学习场合。

开发OpenCV的目的是为了促进CPU密集型应用。为了达到这一目的,Intel启动了多个项目,包括实时光线追踪和三维显示墙。一个在Intel工作的OpenCV作者在访问一些大学时,注意到许多顶尖大学中的研究组(如MIT媒体实验室)拥有很好的内部使用的开放计算机视觉库—— (在学生们之间互相传播的代码),这会帮助一个新生从高的起点开始他/她的计算机视觉研究。这样一个新生可以在以前的基础上继续开始研究,而不用从底层写基本函数。

因此,OpenCV的目的是开发一个普遍可用的计算机视觉库。在Intel的性能库团队的帮助下,OpenCV实现了一些核心代码以及算法,并发给Intel俄罗斯的库团队。这就是OpenCV的诞生之地:在与软件性能库团队的合作下,它开始于Intel的研究中心,并在俄罗斯得到实现和优化。

1.2.2 OpenCV的应用领域

大多数计算机科学家和程序员已经意识到计算机视觉的重要作用。但是很少有人知道计算机视觉的所有应用。例如,大多数人或多或少地知道计算机视觉可用在监控方面,也知道视觉被越来越多地用在网络图像和视频方面。少数人也了解计算机视觉在游戏界面方面的应用。但是很少有人了解大多数航空和街道地图图像(如Google的Street View)也大量使用计算机定标和图像拼接技术。一些人知道安全监控、无人飞行器或生物医学分析等方面的应用,但是很少人知道机器视觉是多么广泛地被用在工厂中:差不多所有的大规模制造的产品都在流水线上的某个环节上自动使用视觉检测。

OpenCV所有的开放源代码协议允许用户使用OpenCV的全部代码或者OpenCV的部分代码生成商业产品。使用了OpenCV后,用户不必对公众开放自己的源代码或改善后的算法,虽然Intel公司非常希望用户能够开放源代码。许多公司(IBM,Microsoft,,SONY,Siemens和Google等其他公司)和研究单位(例如斯坦福大学、MIT、CMU、剑桥大学和INRIA)中的人都广泛使用OpenCV,其部分原因是OpenCV采用了这个宽松的协议。Yahoo groups里有一个OpenCV论坛(https://www.360docs.net/doc/828210677.html,/group/OpenCV),用户可以在此发帖提问和讨论;该论坛大约有20 000个会员。OpenCV在全世界广受欢迎,在中国、日本、俄罗斯、欧洲和以色列都有庞大的用户群。

自从OpenCV在1999年1月发布alpha版本开始,它就被广泛用在许多应用领域、产品和研究成果中。相关应用包括卫星地图和电子地图的拼接,扫描图像的对齐,医学

图像去噪(消噪或滤波),图像中的物体分析,安全和入侵检测系统,自动监视和安全系统,制造业中的产品质量检测系统,摄像机标定,军事应用,无人飞行器,无人汽车和无人水下机器人。将视觉识别技术用在声谱图上,OpenCV可以进行声音和音乐识别。在斯坦福大学的Stanley机器人项目中,OpenCV是其视觉系统的关键部分。Stanley在DARPA机器人沙漠挑战赛中,赢得了二百万美元奖金[Thrun06]。[4]

1.2.3 计算机视觉

计算机视觉是将来自静止图像或视频的数据转换成一个决策或者一种新的表达方式的过程,所有的这些转换都是为了达到某个目标。输入数据可以包含一些辅助信息,如“摄像机架在汽车上”或“激光扫描仪在1米处发现一个物体”。最终的决策可能是“场景中有一个人”或“在这个切片中有14个肿瘤细胞”。一种新的表达方式可以是将一张彩色照片转为灰度照片,或者从图像序列中去除摄像机晃动影响。

因为人类是视觉动物,所以会误以为可以很容易地实现计算机视觉。当人们凝视图像时,就会很容易从中找到一辆汽车。人们凭直觉会觉得很容易。人脑将视觉信号划分入很多个通道,将各种不同的信息输入了大脑。大脑有一个关注系统,会根据任务识别出图像的重要部分,并做重点分析,而其他部分则分析得较少。在人类视觉流中存在大量的反馈,但是目前我们对之了解甚少。肌肉控制的传感器以及其他所有传感器的输入信息之间存在广泛的关联,这使得大脑可以依赖从出生以来所学到的信息。大脑中的反馈在信息处理的各个阶段都存在,在传感器硬件(眼睛)中也存在。在眼睛中通过反馈来调节通过瞳孔的进光量,以及调节视网膜表面上的接收单元。

在计算机视觉系统中,计算机接接收到的是来自摄像机或者磁盘文件的一个数值矩阵。一般来说,没有内置的模式识别系统,没有自动控制的对焦和光圈,没有多年来经验的积累。视觉系统通常很低级。

实际上,计算机视觉问题比前面我们提到的更糟糕,它是不可解的。给出三维世界的二维视图,是没有固定方法来重建出三维信息的。在理论上,此类病态问题没有惟一和确定的解。即使数据很完美,同一张二维图像也可以表示多种三维场景。然而,如前面提到的,数据会被噪声和形变影响。这些影响来自真实世界的变化(天气、光线、反射、运动),镜头和机械结构的不完美,传感器上的长时间感应(运动模糊),传感器上和

其他电子器件上的电子噪声,以及图像采集后的图像压缩引入的变化。都是很令人头疼的问题。

设计实际系统时,为了克服视觉传感器的限制,通常会使用一些其他的上下文知识。考虑这样一个例子,移动机器人在室内寻找并捡起订书机。机器人可以利用这个先验知识:可在办公室内发现桌子,订书机最可能在桌子上被找到。这给出了一个隐含的尺寸参考或参照,也就是订书机能够放在桌子上。这也可以用于消除在不可能的地方(例如在天花板或者窗户上)错误识别出订书机的可能性。机器人也完全可以忽略一个200英尺大小的跟订书机形状类似的广告飞艇,因为飞艇周围没有桌子的木纹背景。与之相反,在图像检索中,数据库中的所有订书机图像都是对真正的订书机拍摄的,而且尺寸很大和形状不规划的订书机图像一般不可能被拍到。也就是拍摄者一般只拍摄真正的、普通大小的订书机图像。而且人们拍照时一般会将被拍物体置于中心,且将物体放在最能表现其特征的方向上。因此在由人拍摄的图像中,具有相当多的隐含信息。[5]人们也可以使用机器学习技术对上下文信息进行显式建模。隐含的变量(例如物体大小、重力方向及其他变量)都可以通过标记好的训练数据里的数值来校正。或者,也可以通过其他的传感器来测量隐含的变量。使用激光扫描仪可以精确测量出一个物体的大小。计算机视觉面临的另一个难题是噪声问题。我们一般使用统计的方法来克服噪声。例如,一般来说不可能通过比较一个点和它紧密相邻的点来检测图像里的边缘。但是如果观察一个局部区域的统计特征,边缘检测会变得容易些。由局部区域卷积的响应连成的点串,构成边缘。另外可以通过时间维度上的统计来抑制噪声。还有一些其他的技术,可以从数据中学习显式模型,来解决噪声和畸变问题。例如镜头畸变,可以通过学习一个简单多项式模型的参数来描述这种畸变,然后可以几乎完全校正这种畸变。

计算机视觉拟根据摄像机数据来采取行动或者做出决策,这样的行动或决策是在一个指特定目的或任务的环境中来解决。我们从图像去除噪声和损坏区域,可以让监控系统在有人爬过栅栏时给出报警,或者在一个游乐园里监控系统能够数出总共有多少人通过了某个区域。在办公室巡游的机器人的视觉软件所采用的方法与固定摄像机的不同,因为这两个系统有不同的应用环境和目标。通用的规律是:对计算机视觉应用环境的约束越多,则越能够使用这些约束来简化问题,从而使最终的解决方案越可靠。[6] OpenCV的目标是为解决计算机视觉问题提供基本工具。在有些情况下,它提供的高层函数可以高效地解决计算机视觉中的一些很复杂的问题。当没有高层函数时,它提供的基本函数足够为大多数计算机视觉问题创建一个完整的解决方案。对于后者,有几

个经过检验且可靠的使用OpenCV的方法;所有这些方法都是首先大量使用OpenCV函数来解决问题。一旦设计出解决方案的第一个版本,便会了解它的不足,然后可以使用自己的代码和知识来解决(更为广知的一点是“解决实际遇到的问题,而不是我们想像出来的问题”)。解决方案所存在的不足可以通过系统所用的环境限制来解决。[7]

1.3 论文主要研究内容及研究意义

本课题主要是在VC6.0开发环境下,通过调用OpenCV API(计算机视觉库),实现一个基于OpenCV的视频播放器的设计。该视频播放器需要实现的基本功能有:有用户界面,avi格式视频文件的播放,暂停,停止,进度拖动等。最后,对本软件的开发过程进行简要总结,并介绍一下本人的体会和感想。

通过本次课题设计可使更多的人们了解Microsoft Visual Studio 6.0的发展背景,掌握基本的VC++6.0软件开发平台的应用,熟悉VC++6.0编程环境,学习基本操作;同时还可以更广泛的推广计算机视觉库(即OpenCV)的应用,使人们对其有较深的认识,深入了解OpenCV的发展历史,主要特点。

1.4 论文组织结构

本文主要包括了背景介绍,多媒体介绍,VC++6.0软件开发平台和OpenCV的应用,模块设计,系统设计,测试结果及分析等内容。

第一章主要介绍了课题研究的背景及本设计的主要内容;

第二章主要是对视频技术进行了简单介绍,包括多媒体技术及视频的格式等;

第三章是对OpenCV函数库做了一些相关介绍包括特点及主要应用等;

第四章是对VC6.0的开发环境做了较详细的介绍包括Microsoft Visual Studio 6.0的发展过程,组件工具(编译器工具、VC++库、VC++开发环境)等;

第五章详细的介绍了视频播放器的设计与实现,包括模块划分与系统设计,流程图及详细的的程序编码等;

第六章介绍了程序的运行结果,播放器功能的实现及对设计结果的分析,找出设计过程中存在的不足之处,以便加以改正。

2 视频技术概述

对于视频,我们并不陌生,日常生活中经常看的电影、电视就是视频的典型应用。人类接收的信息中约有70%来自视觉,周围景物在人眼视网膜上的映像是人类最有效、最重要的信息交流方式。视频具有确切、直观、具体生动、真实和高效的特点,这正是视频技术的无穷魅力所在。

简介动态图像传输在电信领域被称为视频业务或视讯业务,在计算机界常常称为多媒体通信、流媒体(下载像流水)通信等。视频通信技术是实现和完成视频业务的主要技术。

其压缩标准是MPEG(动态图像专家小组),它提出了一种电视图像和声音编码的国际标准,用在数据传输率为1.5Mb/s。对于视频业务应用而言,主要是宽带网络技术。

随着计算机软硬件技术的迅猛发展,视频技术也得到了飞速发展。现在,数字娱乐、多媒体通信、高清晰度电视、数字电视、宽带网络等都是围绕如何有效地交流视频信息而展开研究的。但是,由于视频信息十分丰富且信息量大,故对视频信号的处理、传输、存储和显示等都提出了新的要求。因此,视频技术的研究和应用是目前信息技术领域最热门的话题之一。

2.1 多媒体技术

多媒体究竟是什么?通常,每个人对此都有自己的观点。多媒体曾经被用来描述很多东西,从复杂的新型交互式艺术到摇滚音乐会中闪烁的彩色聚光灯。但是多媒体是一种真正的媒体,不能局限于一个简单的,有框架的定义。今天,这个词可能会更加模糊,就象“数字化”这个词,在它的全盛时期也让入迷惑一样。

“多媒体”一词译自英文“Multimedia”,媒体(medium)原有两重含义,一是指存储信息的实体,如磁盘、光盘、磁带、半导体存储器等,中文常译作媒质;二是指传递信息的载体,如数字、文字、声音、图形等,中文译作媒介。从字面上看,多媒体就是由单媒体复合而成的。多媒体技术从不同的角度有着不同的定义。有人定义多媒体计算机是一组硬件和软件设备;结合了各种视觉和听觉媒体,能够产生令人印象深刻的视听效果。在视觉媒体上,包括图形、动画、图像和文字等媒体,在听觉媒体上,则包括语言、

立体声响和音乐等媒体。用户可以从多媒体计算机同时接触到各种各样的媒体来源。也有人定义多媒体是“文字、图形、图像以及逻辑分析方法等与视频、音频以及为了知识创建和表达的交互式应用的结合体”。概括起来就是:多媒体技术是以数字技术为基础,把通信技术(电话和传真),广播技术(电台和电视)和计算机技术融于一体,能够对文字,图形,图像,声音,视频等多种媒体信息进行存储,传送和处理的综合性高新技术。简言之,多媒体技术就是具有集成性、实时性和交互性的计算机综合处理声文图信息的技术。在人类信息科学技术史上,它是继活字印刷,无线电-电视技术,计算机技术之后的又一次新的技术革命,在信息社会中占有重要的地位。多媒体技术的发明,终于使人和机器从原来的对立中摆脱出来,人性化的局面、虚拟现实的出现,直到人工智能的进步,语音的输入使我们刹时感到PC已不再冰冷,芯片上已能出现人的情感,而且是高智能的集成。

众所周知,早期的计算机仅处理数值或文字信息,其输入和输出信息只能以“文本”的形式出现。20世纪80年代问世的图形用户界面,使计算机可用图形来参与人-机交互,从此令用户界面面目一新。从20世纪90年代以来,多媒体技术逐步成熟,先后发布了MPC 1.0,MPC2.0,MPC3.0等多媒体个人计算机技术规范,推动了多媒体计算机的性能不断提高。

但是,多媒体技术的应用并不限于多媒体计算机。在现代生活中,从VCD光盘的播放到电子出版物的制作,从多媒体万维网到电视会议的运行,处处都包含了多媒体技术的应用。多媒体技术和计算机网络技术,已成为当代计算机应用中最热门的两个主题。

多媒体技术不仅集成了多媒体,而且集成可多种技术,包括计算机技术,通信技术,电视技术和其他音像处理技术。通过在一个文件中把来自多个通道的信息同一获取,组织,存储和合成,使文字,图像,声音等各种信息能在播放时同步的作用于我们的听觉,视觉等感官,从而取得最佳的效果。在多媒体系统中,声音和活动着的视频图像都是与时间轴密切相关的。随着多媒体技术的进步,多媒体系统已经具备对多媒体信息进行实时处理的能力。可视电话,电视会议,远程教学,远程医疗,使千里之外的人物与场景犹如近在咫尺,可面对面地实现对话。交互性是多媒体技术的关键特性之一。传统电视中也包含了多媒体的信息,但它缺乏交互性,用户只能被动的收看。在多媒体系统中,用户借助交互活动可控制信息的传播,甚至参与信息的组织过程,使之能够对感兴趣的画面或内容进行记录或者专门的研究。[8]

我们知道,多媒体技术是建立在计算机技术的基础之上的,而计算机只能识别“0”,“1”这两种二进制数据。因此在多媒体系统中,所有的多媒体信息都是用数字信号表示。与传统电视使用的模拟信号相比,数字信号不仅易于进行加密,压缩等数值运算,因而可提高信息的安全与处理速度;而且由于它只有“0”,“1”这两种状态,所以抗干扰能力强,在信号存储和复制中能够达到更高的保真度,尤其是用于远程距离的无失真传输。

多媒体技术的无限发展需要计算机硬件的支持,早期的PC只能处理文本和数字,借助键盘和显示器用文本媒体进行人-机交互。多媒体个人计算机(MPC)的诞生,使计算机能够集声音,文,图,像的处理于一身,同时把人-机交互扩充到声音和图像等媒体。所谓多媒体个人电脑(Multimedia Personal Computer, MPC)就是具有了多媒体处理功能的个人计算机,它的硬件结构与一般所用的个人机并无太大的差别,只不过是多了一些软硬件配置而已。一般用户如果要拥有MPC大概有两种途径:一是直接够买具有多媒体功能的PC机;二是在基本的PC机上增加多媒体套件而构成MPC 。其实,现在最近用户所购买的个人电脑绝大多都具有了多媒体应用功能。[9]

一般的多媒体系统主要由四个部分的内容组成:多媒体硬件系统、多媒体操作系统、媒体处理系统工具和用户应用软件。

(1)多媒体硬件系统:包括计算机硬件、声音/视频处理器、多种媒体输入/输出设备及信号转换装置、通信传输设备及接口装置等。其中,最重要的是根据多媒体技术标准而研制生成的多媒体信息处理芯片、光盘驱动器等

(2)多媒体操作系统:也称为多媒体核心系统(Multimedia kernel system),具有实时任务调度、多媒体数据转换和同步控制对多媒体设备的驱动和控制,以及图形用户界面管理等。

(3)媒体处理系统工具:或称为多媒体系统开发工具软件,是多媒体系统重要组成部分。

(4)用户应用软件:根据多媒体系统终端用户要求而定制的应用软件或面向某一领域的用户应用软件系统,它是面向大规模用户的系统产品。

一般来说,多媒体个人计算机(MPC)的基本硬件结构可以归纳为七部分:

①至少一个功能强大、速度快的中央处理器(CPU);

②可管理、控制各种接口与设备的配置;

③具有一定容量(尽可能大)的存储空间;

④高分辨率显示接口与设备;

⑤可处理音响的接口与设备;

⑥可处理图像的接口设备;

⑦可存放大量数据的配置等;

这样提供的配置是最基本MPC的硬件基础,它们构成MPC的主机。除此以外,MPC能扩充的配置还可能包括如下几个方面:

光盘驱动器:包括可重写光盘驱动器(CD-R)、WORM光盘驱动器和CD-ROM驱动器。其中CD-ROM驱动器为MPC带来了价格便宜的650M存储设备,存有图形、动画、图像、声音、文本、数字音频、程序等资源的CD-ROM早已广泛使用,因此现在光驱对广大用户来说已经是必须配置的了。

音频卡:又称声卡,声卡用处理音频信息。它可以把话筒、唱机(包括激光唱机)、录音机、电子乐器等输入的声音信息进行模数转换、压缩处理,也可以把经过计算机处理的数字化的声音信号通过还原(解压缩)、数模转换后用扬声器放出或记录下来。声卡和多媒体计算机中所处理的数字化声音信息通常有多种不同的采样频率和量化精度可以选择,以适应不同应用场合的质量要求。采样频率越高,量化位数越多,质量越高。

图形加速卡:图文并茂的多媒体表现需要分辨率高,而且同屏显示色彩丰富的显示卡的支持,同时还要求具有Windows的显示驱动程序,并在Windows下的像素运算速度要快。所以现在带有图形用户接口GUI加速器的局部总线显示适配器使得Windows 的显示速度大大加快。

视频卡:可细分为视频捕捉卡、视频处理卡、视频播放卡以及TV编码器等专用卡,其功能是连接摄像机、VCR影碟机、TV等设备,以便获取、处理和表现各种动画和数字化视频媒体。

扫描卡:它是用来连接各种图形扫描仪的,是常用的静态照片、文字、工程图输入设备。

打印机接口:用来连接各种打印机,包括普通打印机、激光打印机、彩色打印机等,打印机现在已经是最常用的多媒体输出设备之一了。

交互控制接口:它是用来连接触摸屏、鼠标、光笔等人机交互设备的,这些设备将大大方便用户对MPC的使用。

网络接口:是实现多媒体通信的重要MPC扩充部件。计算机和通信技术相结合的时代已经来临,这就需要专门的多媒体外部设备将数据量庞大的多媒体信息传送出去或接收进来,通过网络接口相接的设备包括视频电话机、传真机、LAN和ISDN等。

多媒体计算机的具体应用除了要具有一定的硬件设备外,更重要的是软件系统的开发和应用。自从多媒体计算机问世以来,许多国家和部门都在软件的的开发和应用上下了很大功夫。Microsoft 、IBM、和Apple等公司相继推出了在基本功能上旗鼓相当的多媒体软件平台,而其特点又都是在已有的操作系统上追加实现多媒体功能的扩充模块而形成的,这就为用户提供了较为方便和实用的使用环境。在多媒体语言中,对存放在CD--ROM上的多媒体应用软件产品,称作多媒体CD-ROM节目(Multimedia CD-ROM Title)。在多媒体节目中包含了文本、图形、声音、动画和影视等视听媒体。这些多媒体节目大致上可分为下列几个方面的应用:教育、商业、电子出版、娱乐、游戏以及通信工程中的多媒体终端和多媒体通信系统。

多媒体技术主要应用于多媒体个人计算机、多媒体信息管理系统、多媒体通信、多媒体电子出版物等,近期以来,运用多媒体手段来对学术科技期刊进行编辑加工、行政管理和发行宣传,也成为一种显著的趋向。多媒体技术的应用将引发传统编辑手段的全面变革。传统编辑方法与手段同多媒体技术结合后,将给未来学术科技期刊的编辑工作带来全新的变化。

多媒体技术与计算机、网络技术、通信技术、数字技术的结合,使期刊出版工作过程和学术科研信息传播不受时间、地点、国界、环境等影响,这将有利于提高世界信息的流通速度,促进远隔重洋的各民族文化科技的及时交流。多媒体综合了报纸、广播、电视等功能,将文字、声音、图像、动画等要素结合起来,这一结合也成为学术期刊编辑、发行的一种全新形式,给受众以全方位的、多维的信息,光纤通道将电视网、电话网、计算机网三网合一,使三大传统媒介开始走向高度的综合。充分利用多媒体文、图、声、像的优势,有利于全面提高学术期刊编辑工作效率和刊物质量,促进电脑多媒体编辑技术的有的放矢地发展,并为今后计算机技术的普及、繁荣打下良好基础。

多媒体编辑要处理大量的3D图形、数字音频和视频信息,还有从Web网络传来的高带宽信息。加速图形端口(AGP)即将大量投入应用,这是一种用来连接CPU和图形加速器、比PCI更快的总线,AGP 同时还提供图形适配器与系统内存之间的连接,有了这种连接,在3D应用程序中就可以将大量的纹理贴图保存在系统内存中。近期出版的一些专业电子排版系统,已集文字处理与图形图像处理功能于一身。不仅大大降低了此前许多排版软件在文稿中植入特定图像时的繁琐操作和不便,而且可以利用软件提供的多种绘图、制图功能,使非美工专业人员也能方便地制作出具有专业水准的图形图

像,并通过手写板或扫描仪顺利实现图文混排。使数学、化学、物理等科学公式的排版简便规范,同时提供各种流程图、电子电路以及各类图库。

IBM公司分别推出中、英文语音识别系统的语音录入软件,它们以声音接收装置为媒介,将阅读文稿的语音直接转化成计算机上文本的版面,尽管目前此类软件在配置、环境、程序设计等方面有不少尚待完善之处,但随着新的优化软件的不断问世,它必将极大地提高文字输入的速度,从而最大限度地改变期刊计算机排版采用键盘输入的格局。可以预见在不久的将来,我们真的可以与计算机进行交谈,正如一些科幻电影中描述的一样,计算机可以听懂我们话语,并按我们所说的去做。

计算机辅助教学系统在教学上的运用,标志着教学媒体质的飞跃。计算机的应用,使教学手段更加丰富,将对教学效果的提高起到促进作用。由于计算机是人脑的延伸,是人脑思维活动的模拟,是对人类思维活动的结构、功能及其规律的把握,因此,其在教学上的运用十分有利于学生的发展,符合现代化教学规律的要求。多媒体技术是信息领域的又一次革命,在教学上,它既能向学生快速提供丰富多彩的集图、文、声于一体的教学信息,又能为学生提供生动、友好、多样化的交互方式。

多媒体教学可产生优良的视听效果。因为人的视觉、听觉是接收信息的主要渠道,获得的信息也最大。多媒体教学有利于信息传递和学生对信息的接受、储存。其特有的优势对学生产生一定强度的刺激,引起学生的注意。如果没有注意,感知就不会产生强烈观察力。而观察力是在感知过程中并以感知为基础形成起来的,离开了感知也就没有了观察。利用多媒体的优势引人入胜,可以不断提高学生注意的品质,使学生心理活动处于积极状态。

多媒体能克服时间和空间的限制。教学中常有一些宏观的自然现象、逝去的景色或者需长时间才能感知的事物,因受时间和空间的制约,无法让学生亲眼看见;一些微观的事物和微小的变化,无法通过仪器设备让学生进行观察,这些都是课堂教学难点。多媒体的运用,为学生提供了形象生动、内容丰富、直观具体、感染力强的感性认识材料,使学生看到了事物在运动、发展、变化。真情实感取代了凭空想象,难题无须多讲,“百闻不如一见”。学生通过听、视、评、悟充分感知原先较为抽象的教学内容,适应了学生从具体到抽象的认识规律,从而保证了教学活动的顺利进行。

多媒体教学是提高课堂教学效果的先进教学手段。多媒体的恰当运用,使课堂教学活动更加符合学生的心理特点和认识规律,促使学生始终在愉悦的氛围中积极主动地获取知识,学会学习,提高能力。学生当堂学习新知识,当堂消化吸收,无须课上损失课

下补,减轻了学生的学习负担,提高了课堂教学效率。事实表明,许多好课使学生久久不忘,对学生产生深远的影响。

随着计算机网络技术和计算机多媒体技术的发展,可视电话、视频会议系统将为人类提供更全面的信息服务。可视电话可使单身在外的游子通过电视传真,身临其境地参加新年的家庭聚会,也可以让分布在各地的工作人员讲座设计方案,交流经验。实际上,多媒体系统现代商业、通信、艺术等人类工作和生活的各个领域,正改变着人类的生活和工作的方式,描绘着一个绚丽多彩的划时代的多媒体世界。

2.2 视频格式及视频流播放回放

2.2.1 视频格式分类

视频大概有以下几种:本地影像视频;网络影像视频;手机电影视频。其中每类视频又有各自的格式:

1、本地影像视频

AVI格式:它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频,所以我们在进行一些AVI格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题,如果用户在进行AVI格式的视频播放时遇到了这些问题,可以通过下载相应的解码器来解决。

nAVI格式:nAVI是newAVI的缩写,是一个名为ShadowRealm的地下组织发展起来的一种新视频格式(与我们上面所说的AVI格式没有太大联系)。它是由Microsoft ASF压缩算法的修改而来的,但是又与下面介绍的网络影像视频中的ASF视频格式有所区别,它以牺牲原有ASF视频文件视频“流”特性为代价而通过增加帧率来大幅提高ASF视频文件的清晰度。

DV-AVI格式:DV的英文全称是Digital Video Format,是由索尼、松下、JVC等多家厂商联合提出的一种家用数字视频格式。目前非常流行的数码摄像机就是使用这种格式记录视频数据的。它可以通过电脑的IEEE 1394端口传输视频数据到电脑,也可以将电脑中编辑好的的视频数据回录到数码摄像机中。这种视频格式的文件扩展名一般是.avi,所以也叫DV-AVI格式。

MPEG格式:它的英文全称为Moving Picture Expert Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法减少运动图像中的冗余信息,说的更加明白一点就是MPEG的压缩方法依据是相邻两幅画面绝大多数是相同的,把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的(其最大压缩比可达到200:1)。目前MPEG 格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,另外,MPEG-7与MPEG-21仍处在研发阶段。

MPEG-1:制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。

MPEG-2:制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到8GB的大小。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。

MPEG-4:制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最有吸引力的地方在于它能够保存接近于DVD 画质的小体积视频文件。另外,这种文件格式还包含了以前MPEG压缩标准所不具备的比特率的可伸缩性、动画精灵、交互性甚至版权保护等一些特殊功能。这种视频格式的文件扩展名包括.asf、.mov和DivX AVI等。

DivX格式:这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,

同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。

MOV格式:美国Apple公司开发的一种视频格式,默认的播放器是苹果的QuickTimePlayer。具有较高的压缩比率和较完美的视频清晰度等特点,但是其最大的特点还是跨平台性,即不仅能支持MacOS,同样也能支持Windows系列。

2、网络影像视频

ASF格式:它的英文全称为Advanced Streaming format,它是微软为了和现在的Real Player竞争而推出的一种视频格式,用户可以直接使用Windows自带的Windows Media Player对其进行播放。由于它使用了MPEG-4的压缩算法,所以压缩率和图像的质量都很不错(高压缩率有利于视频流的传输,但图像质量肯定会的损失,所以有时候ASF格式的画面质量不如VCD是正常的)。

WMV格式:它的英文全称为Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。WMV格式的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、可伸缩的媒体类型、流的优先级化、多语言支持、环境独立性、丰富的流间关系以及扩展性等。

RM格式:Real Networks公司所制定的音频视频压缩规范称为Real Media,用户可以使用RealPlayer或RealOne Player对符合RealMedia技术规范的网络音频/视频资源进行实况转播并且RealMedia可以根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。这种格式的另一个特点是用户使用RealPlayer或RealOne Player播放器可以在不下载音频/视频内容的条件下实现在线播放。另外,RM作为目前主流网络视频格式,它还可以通过其Real Server服务器将其它格式的视频转换成RM视频并由Real Server服务器负责对外发布和播放。RM和ASF 格式可以说各有千秋,通常RM视频更柔和一些,而ASF视频则相对清晰一些。

RMVB格式:这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图

像质量和文件大小之间就达到了微妙的平衡。另外,相对于DVDrip格式,RMVB视频也是有着较明显的优势,一部大小为700MB左右的DVD影片,如果将其转录成同样视听品质的RMVB格式,其个头最多也就400MB左右。不仅如此,这种视频格式还具有内置字幕和无需外挂插件支持等独特优点。要想播放这种视频格式,可以使用RealOne Player2.0或RealPlayer8.0加RealVideo9.0以上版本的解码器形式进行播放。

QuickTime(MOV)是Apple(苹果)公司创立的一种视频格式,在很长的一段时间里,它都是只在苹果公司的MAC 机上存在。后来才发展到支持WINDOWS 平台的,但平心而论,它无论是在本地播放还是作为视频流格式在网上传播,都是一种优良的视频编码格式。到目前为止,它共有 4 个版本,其中以 4.0 版本的压缩率最好。

3、手机电影视频

AVI,RMVB,WMV适合有存储卡,带操作系统的智能手机。优点:视频质量好;缺点:文件较大。

MP4适合所有手机,特别是带存储卡的手机,优点:图像清晰,文件大小适中。

3GP适合所有手机,特别是内存小的手机。优点:文件小。

很多人都对3GPP有一个误区就是质量差,其实不然。一个视频质量的好坏和很多因素有关,比如源文件的质量,转换时设置的参数。之所以很多3GP的视频音质不好,主要是因为音频设置是“语音”而不是“立体声AAC”的原因。特别是诺基亚的视频转换器根本就没有AAC。所以很多人听到3GP觉得很差。

3GP是通讯业标准协议的格式。最大的优点就是视频文件可以压缩的很小。但同时就会损失它的视频质量,但也不是所有的3GP视频都很差的。

一个视频质量的好坏跟视频文件的大小是成正比的。我举例说明:一个4分钟左右的MTV,转换成音频设置为“语音”的3GP视频,文件大约为3M左右,甚至可以更小(如果视频再设置的低些)。但如果视频设置为MPEG_4,音频为AAC_96k的话,文件大小约为7M,甚至更大。这也就说明视频和音频设置参数越高,视频质量越好,文件也就越大。

至于选择哪种格式的视频传到我们的爱机上,还要根据自己手机的能力和需求而定啦!

其实AVI的格式设置的对的话,文件也不太大,大小和3GP的差不多!如果手机支持AVI格式,我推荐使用AVI格式的影音,手机端也可以用AVI格式的,不一定都得有扩展卡。优点:不光是图象清晰,而且支持全屏播放,快进后退,亮度调节等。

基于OpenCV识别库的面部图像识别系统的设计

基于OpenCV识别库的面部图像识别系统的设计 本系统采用J2EE技术并以OpenCV开源计算机视觉库技术为基础,实现一套具有身份验证功能的面部图像识别信息管理系统。系统使用MySQL数据库提供数据支撑,依托于J2EE的稳定性和Java平台的可移植性使得本系统可以在各个操作系统平台中运行,同时提供在互联网中使用面部识别技术的一套较为完备的解决方案。 标签:OpenCV;人脸识别;生物学特征 引言 随着信息技术的飞速发展以及互联网的深入普及,越来越多的行业和领域使用信息技术产品以提高工作效率和管理水平。但是由于人们隐私信息的保护意识薄弱,出现了许多信息安全的问题。在人们对于信息安全越来越重视的情况下,许多技术被应用到信息安全领域中来。较为先进的技术有虹膜识别技术、遗传基因识别技术以及指纹识别技术等。而论文采用的是当前热点的面部图像识别技术。 1 系统实现算法及功能分析 1.1 面部图像的生物学特征模型的建立 本系统是利用面部图形的生物学特征来识别不同的人。由于每个人的面部图像都有各自的特征但又具有一定的通性,需要应用生物学中相关知识加以解决。可以利用已有的生物学测量手段以及现有的算法构建人的面部图像生物学特征模型(简称:面部模型),并应用于系统中,面部模型的建立为面部图像识别的功能提供实现依据。 1.2 知识特征库及面部识别引擎的建立 在前述面部模型建立完成后,需要建立相应的知识库以及面部识别引擎方可进行身份的识别。可经过大量数据的采集和分析后建立知识库,并根据知识库的特点建立相应的识别引擎。此识别引擎对外开放,在本系统中提供其它外来程序的调用接口,其它系统能够通过本接口实现识别引擎的调用实现对于面部图形的识别,从而达到识别引擎的可复用性。在技术条件允许的情况下,提供知识库的智能训练以及半自动构建支持。 1.3 面部图像的采集与预处理 本系统中采用了预留API接口,利用USB图形捕获设备采集数据图像。经过USB设备的捕获,使用JMF(Java Media Framework)来处理已捕获的图像数据,对捕获的图像进行面部图行检测和实时定位跟踪。

基于OpenCv的图像识别

基于2DPCA的人脸识别算法研究 摘要 人脸识别技术是对图像和视频中的人脸进行检测和定位的一门模式识别技术,包含位置、大小、个数和形态等人脸图像的所有信息。由于近年来计算机技术的飞速发展,为人脸识别技术的广泛应用提供了可能,所以图像处理技术被广泛应用了各种领域。该技术具有广阔的前景,如今已有大量的研究人员专注于人脸识别技术的开发。本文的主要工作内容如下: 1)介绍了人脸识别技术的基础知识,包括该技术的应用、背景、研究方向以及 目前研究该技术的困难,并对人脸识别系统的运行过程以及运行平台作了简单的介绍。 2)预处理工作是在原始0RL人脸库上进行的。在图像的预处理阶段,经过了图 象的颜色处理,图像的几何归一化,图像的均衡化和图象的灰度归一化四个过程。所有人脸图像通过上述处理后,就可以在一定程度上减小光照、背景等一些外在因素的不利影响。 3)介绍了目前主流的一些人脸检测算法,本文采用并详细叙述了Adaboost人脸 检测算法。Adaboost算法首先需要创建人脸图像的训练样本,再通过对样本的训练,得到的级联分类器就可以对人脸进行检测。 4)本文介绍了基于PCA算法的人脸特征点提取,并在PCA算法的基础上应用了 改进型的2DPCA算法,对两者的性能进行了对比,得出后者的准确度和实时性均大于前者,最后将Adaboost人脸检测算法和2DPCA算法结合,不仅能大幅度降低识别时间,而且还相互补充,有效的提高了识别率。 关键词:人脸识别 2DPCA 特征提取人脸检测

2DPCA Face Recognition Algorithm Based on The Research Abstract:Face recognition is a technology to detect and locate human face in an image or video streams,Including location, size, shape, number and other information of human face in an image or video streams.Due to the rapid development of computer operation speed makes the image processing technology has been widely applied in many fields in recent years. This paper's work has the following several aspects: 1)Explained the background, research scope and method of face recognition,and introduced the theoretical method of face recognition field in general. 2)The pretreatments work is based on the original ORL face database. In the image preprocessing stage, there are the color of the image processing, image geometric normalization, image equalization and image gray scale normalization four parts. After united processing, the face image is standard, which can eliminate the adverse effects of some external factors. 3)All kinds of face detection algorithm is introduced, and detailed describing the Adaboost algorithm for face detection. Through the Adaboost algorithm to create a training sample,then Training the samples of face image,and obtaining the cascade classifier to detect human face. 4)This paper introduces the facial feature points extraction based on PCA ,and 2DPCA is used on the basis of the PCA as a improved algorithm.Performance is compared between the two, it is concluds that the real time and accuracy of the latter is greater than the former.Finally the Adaboost face detection algorithm and 2DPCA are combined, which not only can greatly reduce the recognition time, but also complement each other, effectively improve the recognition rate. Key words:Face recognition 2DPCA Feature extraction Face detection

基于opencv对图像的预处理

基于opencv 对图像的预处理 1.问题描述 本次设计是基于opencv 结合c++语言实现的对图像的预处理,opencv 是用于开发实时的图像处理、计算机视觉及模式识别程序;其中图像的预处理也就是利用opencv 对图像进行简单的编辑操作;例如对图像的对比度、亮度、饱和度进行调节,同时还可以对图像进行缩放和旋转,这些都是图像预处理简单的处理方法;首先通过opencv 加载一幅原型图像,显示出来;设置五个滑动控制按钮,当拖动按钮时,对比度、亮度、饱和度的大小也会随之改变,也可以通过同样的方式调节缩放的比例和旋转的角度,来控制图像,对图像进行处理,显示出符合调节要求的图像,进行对比观察他们的之间的变化。 2.模块划分 此次设计的模块分为五个模块,滑动控制模块、对比度和亮度调节模块、饱和度调节模块、缩放调节模块、旋转调节模块,他们之间的关系如下所示: 图一、各个模块关系图 调用 调用 调用 调用 滑动控制模块 对比度和亮度调节模块 饱和度调节模块 缩放调节模块 旋转调节模块

滑动控制模块处于主函数之中,是整个设计的核心部分,通过createTrackbar创建五个滑动控制按钮并且调用每个模块实现对图像相应的调节。 3.算法设计 (1)滑动控制: 滑动控制是整个设计的核心部分,通过创建滑动控制按钮调节大小来改变相应的数据,进行调用函数实现对图像的编辑,滑动控制是利用createTrackbar(),函数中包括了滑动控制的名称,滑动控制显示在什么窗口上,滑动变量的地址和它调节的最大围,以及每个控制按钮应该调用什么函数实现什么功能; (2)对比度和亮度的调节: 对比度和亮度的调节的原理是依照线性理论,它的公式如下所示:g(x)=a* f(x) +b,其中f(x)表示源图像的像素,g(x)表示输出图像的像素,参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度,参数b通常被称为偏置(bias),常常被用来控制图像的亮度; (3)饱和度的调节: 饱和度调节利用cvCvtColor( src_image, dst_image, CV_BGR2HSV )将RGB 颜色空间转换为HSV颜色空间,其中“H=Hue”表示色调,“S=Saturation”表示饱和度,“V=Value ”表示纯度;所以饱和度的调节只需要调节S的大小,H 和V的值不需要做任何的改变; (4)旋转的调节: 旋转是以某参考点为圆心,将图像的个点(x,y)围绕圆心转动一个逆时针角度θ,变为新的坐标(x1,y1),x1=rcos(α+θ),y1=rsin(α+θ),其中r是图像的极径,α是图像与水平的坐标的角度的大小; (5)缩放的调节: 首先得到源图像的宽度x和高度y,变换后新的图像的宽度和高度分别为x1和y1,x1=x*f,y1=y*f,其中f是缩放因子; 4.函数功能描述 (1)主函数main()用来设置滑动控制按钮,当鼠标拖动按钮可以得到相应的数据大小,实现手动控制的功能,当鼠标拖动对比度和亮度调节是,主函数调用

最新基于OpenCV与深度学习框架的物体图像识别

基于OpenCV与深度学习框架Caffe的物体图像识别 摘要:本文主要介绍深度神经网络中的卷积神经的相关理论与技术。研究采用OpenCV深度学习模块DNN与深度学习框架Caffe进行物体识别。采用OpenCV 中的DNN模块加载深度学习框架Caffe模型文件,对物体图像进行识别。实验结果表明,卷积神经网络在物体的识别方面具有较高的准确率。 一.概述 1.1 OpenCV简介 OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV 是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C 函数和少量C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。其最新版本是3.2,于2016年12月23日发布。OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。在其最新版3.2版本中,已经添加了深度神经网络模块,并支持深度学习框架Caffe模型(Caffe framework models)。 1.2 深度学习框架Caffe简介 Caffe(Convolutional Architecture for Fast Feature Embedding)是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清,曾在Google 工作,现任Facebook研究科学家。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换。Caffe的优势

毕业设计:基于OpenCV的人脸识别算法(终稿)-精品

安徽工业大工商学院 毕业学士论文 基于OpenCV的人脸识别算法 姓名:陈滔 申请学位级别:学士专业:测控技术与仪器 指导教师:方挺

摘要 人脸在社会交往中扮演着十分重要的角色,是人类在确定一个人身份时所采用的最普通的生物特征,研究人脸跟踪识别及其相关技术具有十分重要的理论价值和应用价值。彩色图像序列的人脸检测、跟踪与识别技术是随着计算机技术的高速发展和视频监控等应用的需要在近几年才逐渐成为一个研究热点。本文着重构建一套人脸跟踪识别系统,致力于精确实时地对彩色视频中的人脸图像检测跟踪,并可以将跟踪到的人脸图片传输到识别端进行身份识别。系统分为客户端和服务器两部分。针对传统Camshifl跟踪算法进行形态学处理、分配多个跟踪器等改进后的算法应用于客户端进行多人脸的跟踪。服务器端首先将人脸图像按其主要特征进行分块,再对分块图执行Eigenface算法实现人脸身份的识别。这套系统完成了对多人脸的跟踪效果,可广泛的应用于各种安防系统之中如:ATM机监控系统,门禁系统等。

Abstract Human face is 0111"primary focus of attention in social intercourse playingamajor rolei conveying dentity and emotion.Researchonthe face tracking,recognition technology has great theoreticaland practical value.This paper focusesOilbuildingasetofhumanface recognition and trackingsystem tocommitted toaccurate and real-timecolorvideoimages,andcalltransmit the tracked human face image to the recognition part to identify the person’S status.Thesystem is divided into client and server parts.Thetracking algorithm whichcarrieson morphology processing after traditional track algorithm Camshifl and assignments severaltrackingdevices is applied to the client for duplex facetracking.Theserver—side first divides the person face image into blocksaccording to its chief feature,then the blocksuses the Eigenfacealgorithm separately to realize the person’S status recognition.The system implementation for multiple face trackingcallbe widelyused among the various security systems,suchas:ATM machine monitoring system,accesscontrol system.Keywords:Face DetectionFace TrackingFace Recognition Eigenface Camshift

基于OpenCV的图像处理

科技信息 教学中不断探索的课题。 参考文献 [1]陈祝军.分析化学实验专业化初探[J ].安徽职业技术学院学报,2004,3(1):39-40. [2]李祥,黄宁选.无机与分析化学实验课改革探讨[J ].大学化学,2003,18(7):16-18. [3]黄斌.对工学结合人才培养模式若干问题的探究[J ].教育探索, 2008,(3):79-80. [4]沈萍.高职有机化学实验课程改革初探[J ].职业教育研究,2005,(10):143. [5]沈萍.高职有机化学实验课程改革初探[J ].职业教育研究,2005,(10):143. [6]李克安,赵风林.分析化学教学的探讨与实践[J ].大学化学,2003,28(1):26-28. (上接第218页) OpenCV 的全称是Open Source Computer Vision Library ,是一个跨平 台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发, 以BSD 许可证授权发行,可以在商业和研究领域中免费使用,并且源代码是公开的。OpenCV 由一系列C 函数和少量C++类构成,实现了图像处理和 计算机视觉方面的很多通用算法,可用于开发实时的图像处理、 计算机视觉以及模式识别程序,极大方便了图像和视频处理研究者进行二次开发。 1、OpenCV的历史与特点 OpenCV 主要创作人员是Intel 的Performance Library Team 和Intel 俄国的一些专家,OpenCV 的第一个测试版本于2000年的IEEE 机器视 觉和模式识别会议上公布, 2001年到2005年间又发布了5个测试版本。2006年,OpenCV1.0版本正式发布。2009年10月,OpenCV2.0版本发布,功能大幅度增强。 OpenCV 在计算机视觉领域得到广泛应用,与其突出的优点是密不可分的: ●跨平台,可移植性好,无论Windows 、Linux 还是M ac OS 都可以运行; ●支持大多数C /C++编译器,如:VC6.0、https://www.360docs.net/doc/828210677.html,2008、https://www.360docs.net/doc/828210677.html,2005及C++Builder 等,可以轻易在不同平台之间进行移植; ●对个人及商业开发免费,源代码公开;●提供方便灵活的用户接口,采用C 、C++编写,包括300多个C /C++函数,代码效率高;支持中、高层API ;可以使用外部库,也可以独立使用; ●具备强大的图像和矩阵运算能力,减少开发者的工作量,有效提高开发效率和程序运行的可靠性; ●针对Intel 的处理器进行了优化。2、OpenCV的结构和应用 OpenCV 的程序构成了一个完整的系统,并有着自己独特的数据结构。目前OpenCV 主要包含如下几个子库: ●CxCore :该库提供了所有OpenCV 运行时的一些最基本的数据结构,包括矩阵,数组的基本运算,包括出错处理的一些基本函数; ●Cv :图像处理和计算机视觉功能(图像处理、结构分析、运动分析、 物体跟踪、模式识别、摄像机定标);●机器学习:用于分类、回归和数据聚类的类和函数;●CvAux :包括一些三维跟踪、PCA 、HMM 等函数;●HighGUI :用于用户交互(GUI 、图像视频的输入输出)。OpenCV 主要面向图像和视频处理,其主要应用包括:二维和三维 特征提取工具包(2D and 3D feature toolkits)、自运动估计(Egomotion esti-mation )、人脸识别(Face Recognition)、手势识别(Gesture Recognition)、人机 交互(Human-Computer Interface)、 移动机器人(M obile robotics)、运动理解(Motion Understanding)、目标识别(Object Identification)、分割与识别(Seg mentation and Recognition)、 立体视觉(Stereopsis Stereo vision:depth percep-tion from 2cameras)、 运动估计结构(Structure from motion)、运动跟踪(Mo-tion Tracking)等。 另外,OpenCV 包含一些机器学习库,主要有Boosting 、决策树(De-cision Trees)、期望最大化算法(Expectation M aximization)、k-最近邻算法(k-nearest neighbor algorithm)、朴素贝叶斯分类器(Naive Bayes classifier)、 人工神经网络(Artificial neural networks)、随机森林(Random forest)、支持向量机(Support Vector Machine)。 3、利用OpenCV进行人脸检测下面就以人脸检测为例,介绍OpenCV 的应用。人脸检测属于人脸识别(Face Recognition)第一步,人脸大体可以分为以下几种方法:基于神经网络的检测,基于特征的检测,基于颜色的检测等。基于神经网络的检测,需要大量的真假人脸图像来训练神经网络;基于特征的方法是利 用人脸的一些特征,比如眼睛、 鼻子等来检测;基于颜色的方法是通过人脸的颜色如黄色、棕色来检测。 OpenCV 中已经提供了训练好的Haar 级联分类器,使得人脸检测可以很方便的实现。OpenCV 中的Haar 特征的级联表中包含的是boost 分类器。所谓Harr 级联分类器是指由若干个简单boost 分类器级联成的一个大的分类器,被检测的目标依次通过每一个分类器,可以通过所有分类器的即可判定为人脸区域。OpenCV 中的人脸检测主要分为四步,其具体过程如下所示: 利用Harr 级联分类器进行人脸检测的实验图片如下,结果证明利用OpenCV 的Harr 分类器实现人脸检测,速度快、效率高,虽然检测率 不能达到100%, 存在误判现象,但是效果已经很不错了。4、总结 除了OpenCV ,目前比较有代表性的计算机视觉库/软件还有Intel 公司的IPP ,微软公司的visDSK ,MathWorks 公司的Matlab 等。IPP 是Intel 的图像、信号处理的集成开发库,收费并且源代码不公开。Microsoft 公司的visDSK 图象处理库,免费,开源,与OpenCV 功能相似。Matlab 功 能丰富,算法实现方便简单,适合研究、 仿真和演示,但是在开发产品方面效率低,而且软件费用高。 相比之下,跨平台的OpenCV 图象处理库,免费,源代码公开,功能强大,有着突出的优点,使用人数众多,资源丰富,其必将会成为图像视频处理领域的强有力的工具。 参考文献[1]李振伟等.基于OpenCV 的运动目标跟踪及其实现[J ].科学计 算及信息处理, 2008年20期[2]陈健等.一种基于Haar 小波变换的彩色图像人脸检测方法[J ].微计算机信息,2005.1 基于OpenCV 的图像处理 南京信息职业技术学院 阴法明 [摘要]OpenCV 是Intel 公司推出的开源、免费的计算机视觉程序库,利用OpenCV 可以很方便地实现图像和视频处理。本文介绍 了OpenCV 的历史、 特点以及结构和应用,并以人脸检测为例介绍了OpenCV 在图像处理中的应用。[关键词]OpenCV 人脸检测计算机与网络 220——

基于OpenCV的图像轮廓提取方法的实现

基于OpenCV的图像轮廓提取的实现 【摘要】OpenCV是近几年来推出的一个开源的、免费的计算机视觉库.OpenCV的目标是构建一个简单易用的计算机视觉框架,利用它所包含的函数帮助开发人员方便快捷地实现图像处理和视频处理。而图像的轮廓是图像的一种基本特征,携带着一幅图像大部分的信息,经常被应用到较高层次的图像应用中。它在图像分离,图像识别和图像压缩等领域有很广泛的应用,也是图像处理的基础。本文首先阐述了OpenCV的特点和结构,然后采用一系列的可行性算法来获取图像特征参数并通过各种算子(Sobel算子,Laplace算子,Canny算子)对图像的灰度进行分析,调节,用实现对图像的边缘检测和轮廓提取。 【关键词】OpenCV 图像轮廓提取

The realization of the image contour extraction based on OpenCV 【Abstract】OpenCV is launched an open source in recent years.Free computer vision library. OpenCV's goal is to build a simple and easy to use computer vision framework, function to help developers use it contains quick and easy to realize image processing and video processing.And the outline of the image is a basic feature of image, carrying an image, most of the information is often applied to the higher level of the image application.It in image separation, image recognition and image compression, and other fields have a wide range of applications, is also the basis of image processing.At first, this paper expounds the characteristics and structure of OpenCV, then a series of the feasibility of the algorithm is used to obtain image feature parameters and through a variety of operator (Sobel operator, Laplace operator, Canny operator) analysis of image gray level, adjustment, use of image edge detection and contour extraction. 【Key words】OpenCV Image Contour extraction

相关文档
最新文档