本科毕业论文滤波器的形状和尺寸对图像滤波的影响_第1页
本科毕业论文滤波器的形状和尺寸对图像滤波的影响_第2页
本科毕业论文滤波器的形状和尺寸对图像滤波的影响_第3页
本科毕业论文滤波器的形状和尺寸对图像滤波的影响_第4页
本科毕业论文滤波器的形状和尺寸对图像滤波的影响_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学校代码: 10128学 号: 201020906002 本科毕业论文题 目:滤波器的形状和尺寸对图像 滤波的影响 学生姓名:学 院:理学院系 别:物理系专 业:电子信息科学与技术班 级:电科10-1班指导教师:李维雅 讲师二 一 四 年 五 月摘 要目前,计算机多媒体网络技术的发展,使得人们的大部分知识都由视觉获得。所以,如何才能在众多的视频信息中用最短时间找到自己所需要的内容,已经成了一个亟待解决的事情。镜头边界检测是视频检索的关键性技术之一。当镜头发生转换时,会造成一些明显的变化。例如镜头连续帧之间相应位置像素点差值的变大、颜色分布发生明显改变或者物体边缘的突然出现与消失。镜头边界检测从

2、本质上讲就是检测这些明显特征的变化。由于镜头中的内容有多种描述方法,所以相应的也有多种镜头边界检测方法。尽管如此,镜头边界检测技术还不成熟。本文的主要内容就是使用MATLAB来实现镜头边界检测,即镜头内容的变化,包括突变与渐变。本文主要使用的方法有基于MATLAB连续帧相减的像素差法与直方图相减法。关键词:镜头边界检测;直方图;突变检测;渐变检测; AbstractAt present, the development of computer multimedia network technology, makes the most of the knowledge obtained by t

3、he visual. So, how do we in the video with the shortest time to find the content they need, has become an urgent matter. Shot boundary detection is one of the key technologies for video retrieval. When the the lens conversion occurs, it will cause some significant changes. For example, the differenc

4、e of the lens between consecutive frames corresponding pixel will become larger, color distribution changed significantly or the edges of objects suddenly appear and disappear. In essence, the shot boundary detection is to detect changes in these distinguishing characteristics. Since the contents of

5、 the lens had been variously described method, the corresponding variety of shot boundary detection method. Nevertheless, the shot boundary detection technology is not mature. The main content of this paper is to use MATLAB to achieve the shot boundary detection, changes in the content of the lens,

6、including mutations gradient. In this paper, using the consecutive frames subtraction, histogram subtraction.Keywords:shot boundary detection; histogram; mutation detection; gradient detection;目 录引言 1第一章 视频镜头边界检测概述 21.1 基本概念 21.2 视频镜头边界分类3 1.3 视频镜头边界检测算法分类31.4 视频数据处理过程 41.5 视频镜头边界检测过程5 1.6 主要方法及存在的问

7、题6 1.7 性能指标 7第二章 视频数据结构及MATLAB简介 82.1 视频数据结构 8 2.1.1 视频数据特点8 2.1.2 视频数据的表示8 2.1.3 视频数据处理结构82.2 MATLAB简介 9 2.2.1 MATLAB组成9 2.2.2 MATLAB主要特点9 2.2.3 MATLAB图像处理工具箱10第三章 视频镜头突变检测 113.1 国内外研究现状 113.2 连续帧相减及MATLAB实现 12 3.2.1 MATLAB程序流程图12 3.2.2 连续帧相减原理13 3.2.3 连续帧相减程序实现13 3.2.4 连续帧相减优点与缺点153.3 直方图相减及MATLAB

8、实现 16 3.3.1 MATLAB程序流程图16 3.3.2 直方图相减原理17 3.3.3 直方图相减程序实现17 3.3.4 直方图相减优点与缺点19第四章 视频镜头渐变检测 204.1 国内外研究现状 204.2 连续帧相减及MATLAB实现 214.3 直方图相减及MATLAB实现 24结论 27参考文献 28谢辞 29引 言随着计算机技术的发展、离散数学理论的发展和各领域需求的增长,数字图像处理正成为新兴的学科蓬勃发展。如何使数字视频里的信息得到充分利用,并在最短的时间里找到我们所需要的内容,是急需解决的问题。因此,视频分析及检索技术显得尤为重要。我们在对视频分析处理时必须进行镜头

9、边界检测,以求对视频的进一步处理成为可能。这更说明了镜头边界检测技术的重要性。 视频镜头边界检测已经在近几年得到深入研究,并应用在不同领域。比如视频索引,视频压缩,视频访问和其它几个方面。镜头边界检测一直是一个活跃的研究领域,已经开发了许多自动技术来检测视频序列中的帧转换。测量视频内容不连续性的最简单的方法就是比较两帧之间对应的像素。本文主要使用两种基于MATLAB的方法进行镜头边界检测。分别为连续帧相减和直方图相减。根据视频镜头的特点,将镜头分为两类:突变镜头和渐变镜头。其中大部分是突变镜头。当镜头发生转换时,会造成一些明显的变化。例如镜头连续帧之间相应位置像素点差值的变大、颜色分布发生明显

10、改变或者物体边缘的突然出现与消失。镜头边界检测从本质上讲就是检测这些明显特征的变化。镜头边缘检测的主要目的是提高镜头边缘检测的准确率和降低漏检率,并能对各类不同的镜头进行准确区分和检测,以得到更高的查全率和查准率。本文的主要内容如下:第一章:镜头边界检测概述。本章主要介绍了关于视频的一些基本概念,包括视频、场景、镜头和帧等。还有镜头边界的概念、检测的流程、主要方法及性能指标等。第二章:视频数据结构MATLAB简介。主要分析视频的数据结构。第三章:突变检测。本章主要用MATLAB实现突变镜头边界检测,包括程序流程图和程序代码。其中主要使用了两种方法,基于连续帧相减的像素差法和直方图相减法。并且介

11、绍了两种方法的原理以及优缺点。第四章:渐变检测。本章主要用MATLAB实现渐变镜头边界检测。同样使用了连续帧相减与直方图相减两种方法。检测镜头为溶解渐变镜头。本文研究内容是基于MATLAB针对非压缩域视频的镜头边界检测算法。第一章 视频镜头边界检测概述1.1 基本概念视频:视频一般是由许多个场景拼接而成的,它在时间、空间和图像结构上都具有一定地连续性。从根本上讲,它是一组动态的图像序列,所描述的是一个完整的故事。场景:包含一个或多个镜头,并且这些镜头内容相近,只是从不同的角度对同一个事件进行描述。一般叙述的是一个阶段性的故事。镜头:镜头是视频数据结构中的基本单位,它由若干帧时间上连续的图像组成

12、。在内容上具有很大的相似性。帧:帧作为视频数据结构中的最小单元,从本质上来讲是一幅静态的的图像。连续帧之间会发生变化。镜头边界:两个镜头发生转换的时候,会出现一些明显的变化。例如镜头连续帧之间相应位置像素点差值的变大、颜色分布发生明显的改变或者物体边缘的突然出现与消失。镜头边界是视频镜头相邻帧的内容出现了某种意义上的变化,即镜头边界反映的是视频内容的不连续性。镜头边界检测从本质上讲就是检测这些明显特征的变化。图1.1 视频、场景以及帧关系图1.2 视频镜头边界分类视频镜头边界主要有两种,分别为突变镜头边界与渐变镜头边界。其中突变镜头边界是一个镜头直接转换到另一个镜头,两个镜头之间没有使用任何摄

13、影编辑效果。它的特点是镜头的变换发生在两帧图像之间,这两帧图像分属不同的镜头,两帧图像的最基本特征已发生改变。渐变镜头边界是指一个镜头渐渐过渡到另一个镜头,镜头之间会有一些空间或时间上的编辑效果,包括淡入淡出,溶解等。它的主要特点是渐变过程中相邻两帧图像变化相对较小,所以渐变过程通常为几帧到十几帧。镜头渐变包括许多镜头切换方式,它的主要特点是渐变过程中相邻两帧图像变化相对较小,所以渐变过程通常为几帧到十几帧。与镜头突变只有一种不同的是,渐变包括许多种方式,如淡入淡出、溶解等。目前大部分的视频镜头转换方式为突变镜头,少部分为渐变镜头。镜头突变检测方法已经相对比较成熟,而镜头渐变检测方法还没有一个

14、普遍通用的算法。1.3 视频镜头边界检测算法分类视频镜头边界检测算法依照处理对象的不同可以分为:压缩域镜头边界检测算法和非压缩域镜头边界检测算法。非压缩域镜头边界检测算法是针对未经过压缩的数字视频的,因此可以利用视频帧图像像素域信息,直接对图像进行各种处理,提取图像的特征向量,例如灰度直方图,像素点变化率,边缘改变率等。压缩域镜头边界检测算法是针对经过压缩的数字视频的。由于越来越多的视频是以压缩形式保存的,所以有必要对压缩视频域进行研究。如果先解压,再用非压缩域的方法进行分析,不仅要消耗大量的解压时间,而且需要额外的存储空间。所以近年来出现了直接对压缩视频进行镜头边界检测的算法。本文研究内容是

15、基于MATLAB针对非压缩域视频的镜头边界检测算法。1.4 视频数据处理过程图1.2 视频数据处理过程(1)选择特征向量选择一个合适的特征向量对镜头边界的正确检测有很大的帮助。基于连续帧相减的像素差法对于运动和噪声十分敏感,容易造成误检,而直方图相减方法又丢失了帧图像的位置信息,容易造成漏检测。所以需要找到一个更好的特征或者是特征组合来提高镜头边界的检测的效果。(2)选择阈值如何选择一个合适的阈值是应用帧差法进行镜头边界检测最关键的一个问题,选取的阈值是否合适直接影响着镜头边界检测的结果。如果选取的阈值过大,会造成漏检,而阈值太小又会造成误检。并且不同类型的视频需要选择不同的阈值,很难有一个统

16、一的标准。(3)镜头渐变与镜头运动的区别因为镜头渐变与镜头运动都会使帧间差连续的增大,所以利用基于MATLAB帧间差的方法很难将镜头渐变和镜头运动区分开来。(4)光照变化及闪光引起的误检在镜头中出现的闪光以及光照条件的变化会造成视频帧亮度的变化,从而引起视频帧间差的变化,使得镜头边界检测出现错误,造成误检。1.5 视频镜头边界检测过程本文所用镜头边界检测方法的关键在于计算相邻帧间差,第一步要从视频镜头图像帧中选取合适的特征值,选取的特征值要能准确反映视频内容的变化程度,然后就是对特征值进行计算,获取帧间差。第二步进行镜头边界判断,需要设定一个阈值,然后根据帧间差与阈值的关系判断是否发生了镜头的

17、变换。基于MATLAB解压缩域镜头边界检测过程如图1.3所示,其中F(i)代表视频镜头第i帧图像,D(i)代表i帧和i+1帧图像帧间差,S(k)代表检测到的第k个镜头边界。图1.3 镜头边界检测过程1.6 主要方法及存在的问题视频镜头边界检测的实质就是检测视频镜头连续相邻帧或非相邻帧差的差异度或相似度,当相似度或差异度大于或小于一个阈值时,则判定出现视频镜头突变或渐变边界。(1)利用视频图像相邻帧差检测镜头边界的方法本文所用的利用视频图像相邻帧差进行镜头边界检测的方法主要有连续帧相减法和直方图相减法,它们是最简单的计算帧间差的方法,原理也很简单,基于连续帧相减的像素差方法的主要原理就是判断相邻

18、图像帧中发生变化的像素点的多少。首先统计两幅图像对应像素点变化率超过阈值F1的像素点个数。然后,将变化的像素点个数与第二个预定的阈值F2比较,如果超过范围,则认为这两帧之间发生较大变化,判断其为镜头边界。基于直方图的方法也是利用视频图像帧间差进行镜头边界检测的方法。首先计算连续两帧图像的直方图,然后统计相邻两帧中所有像素在不同灰度上的分布差异,即直方图相减。当差异的累加值超过阈值T时,即检测到镜头边界。还有一种基于块的镜头边界检测算法。这种算法将图像进行分块,然后将相邻帧所对应的块进行比较,统计变化率超过阈值F1的个数。当个数超过阈值F2时,即标为视频镜头边界。这个方法就是根据视频帧间差与阈值

19、的关系达到检测镜头边界的目的,既可以检测突变镜头边界也可以检测渐变镜头边界。因为基于连续帧帧间差的方法有很多,例如本文中所用的基于连续帧相减的像素差法和直方图相减法。检测渐变镜头边界与突变镜头边界唯一不同的是阈值的选取不同。一般来说,只计算相邻帧的帧间差,对于渐变镜头边界的检测来讲,有一种方法就是当帧间差超过阈值F1时,标记为渐变起始帧,然后接下来每一帧都与起始帧作差,以此来判定镜头边界。(2) 利用视频镜头相邻帧相似度检测视频镜头边界方法直方图交集法是利用两个视频图像帧直方图交集来检测视频镜头边界的。与其它利用帧间差检测视频镜头边界方法不同的是,直方图交集是检测连续两个视频图像帧相似度的。它

20、的原理也比较简单,具体实现过程如下,首先计算连续两帧的直方图,然后计算直方图交集,当连续两个视频图像帧的相似度小于阈值F1时,则判定出现镜头边界。在实际中,经常需要将突变镜头与渐变镜头放在一起检测。在进行镜头渐变检测时,用检测镜头突变的方法检测效果并不明显。所以需要一些方法的组合来实现渐变镜头边界检测,例如二次帧差法,利用重复帧差值的计算提高渐变镜头边界检测效率。还可以利用像素差法与直方图法的结合来实现,不仅可以达到好的渐变检测效果,还能消除摄像机及目标运动对结果的影响。或者采用直方图帧差的均值与方差变化来找出渐变镜头边界。现阶段视频镜头边界检测算法有很多,但其中大部分不能普遍适用于不同类型的

21、视频镜头,或者仅仅只针对某一类视频镜头中的某一种镜头变换,而且这些算法大都对摄像机与物体的运动以及闪光比较敏感,容易出现误检与漏检。本文所采用的方法为基于连续帧相减的像素差法和直方图相减法。这两种方法对于阈值的依赖性较强。如何选择一个合适的阈值是应用这两种方法进行镜头边界检测最关键的一个问题,选取的阈值是否合适直接影响着镜头边界检测的结果。如果选取的阈值过大,会造成漏检,而阈值太小又会造成误检。并且不同类型的视频需要选择不同的阈值,很难有一个统一的标准。1.7 性能标准通常,在视频镜头边界检测中,要用查全率和准确率两个概念还衡量检测算法的检测精度,这两个概念定义如下:另外,在镜头边界检测中还有

22、两个参数经常被用到,即漏检率和误检率:(1)漏检率=1-查全率(2)误检率=1-查准率第二章 视频数据结构MATLAB简介在所有的多媒体数据类型中,视频数据是最复杂的。因为它所包含的内容比较多,其中不仅包括每个视频帧图像的内容,还有镜头中目标的运动信息以及随时间变化的信息。正因为视频数据自身特点如此,所以对视频数据的处理显得异常艰难。MATLAB可以实现对数字视频的读取以及将数字视频分离为帧并用数字图像处理工具箱对其进处理。2.1 视频数据结构2.1.1 视频数据特点视频是对于人类来讲,是非常重要的信息源。因为视频是动态帧序列的组合,所以它与普通图像有所不同,除了静态图像可以表示的内容以外,它

23、还包括镜头中目标运动的信息以及目标随时间变化的信息,因此对于视频数据结构的研究很有必要,意义重大。通常来讲,视频所包含的信息量非常大,并且结构也很特殊,例如每一秒视频包含24帧图像,而且内容多种多样,同时每个人对于所看到的内容理解不同,所以对于视频很难有一个确切的描述与解释。2.1.2 视频数据的表示视频数据的信息量非常大,所以需要以多种方式来描述视频数据。视频数据本身就有很多属性,包括像素位置、颜色纹理、形状以及运动等。因为视频是一系列视频图像帧的集合,所以对视频数据的表示与分析从本质上讲也是通过图像特征对视频图像帧进行分析。所以对视频数据的处理也依赖于这些特征,视频数据处理的过程就是对这些

24、视频图像帧特征的提取。灰度直方图也是视频图像的一个重要属性,灰度直方图是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。运动特征、形状和视频图像像素位置对于视频也是非常重要的属性,但是这些属性的提取一般来说比较困难,本文只对视频图像帧的像素位置属性和灰度直方图属性作研究。2.1.3 视频数据处理结构在处理视频数据时,需要将视频数据分成视频、场景、镜头和帧四层结构来表示,便于表示其中内容。其中,视频图像帧是视频结构的最底层。视频图像处理是一个从最底层开始不断对视频进行描述,逐步直到高层表达的过程。而对帧图像的处理达到镜头边界检测,使镜头分割是对视频处理的一个

25、基础操作。2.2 MATLAB简介2.2.1 MATLAB组成1、MATLAB主包(1)MATLAB语言 MATLAB语言是一种面向对象的程序设计语言,其中包含有各种函数、控制语句、数据类型以及数据的输出功能。(2)句柄图形 句柄图形是MATLAB的图形系统。句柄图形中拥有用于处理二维和三维数字图形的各种指令和高低级命令。(3)MATLAB应用程序接口(API) API是MATLAB程序所提供的,以便于和其他的高级语言进行相互连接的一个互动对接函数库,各种语言之间通过对MAT文件的读写来实现数据信息的相互交流。2、MATLAB工具箱 MATLAB工具箱从功能上看,可以将他们分为学科性的工具包和

26、功能性的工具包两大部分。其中和图像处理相关的那些工具箱放在了功能性的工具包中。这些工具能够十分简单快捷的对图像做一些常见的处理工作,例如图像增强和图像复原等操作。2.2.2 MATLAB主要特点1、 工作平台环境友好MATLAB由一系列工具组成。这些工具大多使用图形用户界面,使得用户对MATLAB软件中和各种文件及函数的调用非常方便。2、 程序语言简单易用MATLAB是一种高级语言,用户可以根据实际需要自主的选择将输入语句和执行命令进行同步处理,也可以先单独的编写出每一个应用程序文件,最后再将它们连接起来一起执行以完成一个复杂的程序功能。3、 出色的图形处理功能MATLAB本身具有强大的数据可

27、视化功能,能够方便的将数据矩阵转换成图形表现出来,特别是在本文所研究的视频镜头边界检测应用中,可以方便的使用户看到具体哪一帧为镜头边界。2.2.3 MATLAB图像处理工具箱本文所用的MATLAB为MATLAB R2011a。MATLAB提供的图像处理工具箱提供了很多非常方便的函数。在视频处理方面,MATLAB用于读取视频的函数有好多,例如mmreader,Videoreader,aviread和mpgread。本文所用的是aviread,但是aviread对于视频格式读取有限制,只能读取未经压缩的avi视频和一定压缩格式的avi视频。如本文中使用的视频罗马假日,MATLAB就不能正常读取。需

28、要使用WinAVI进行解压缩,输出为RGB24格式,才能正常读取。在本文中,一个1.5M大小的视频经过解压缩处理后输出大小为260M左右。这同时也暴露了本文所讨论方法的局限性,因为现在大多数视频都是经过压缩处理的,如果先解压,再用本文所讨论方法,容易造成时间的浪费。第三章 视频镜头突变检测3.1 国内外研究现状本文中的镜头突变检测就是检测视频序列中像素点数目变化与直方图帧差变化的峰值点,也就是内容变化程度的最大处。首先介绍一下一些典型的视频镜头突变检测方法。(1)直接利用视频图像帧间像素差的方法它是最简单的计算帧间差的方法,原理也很简单,具体操作过程如下:由于人眼是以像素为单位来辨别图象的相似

29、度或者差异度的,两帧图像在同一位置上相同像素点的个数越多,这两帧图像就越相似。由此,提出基于连续帧相减的像素差法。该方法主要原理就是判断相邻图像帧中发生变化的像素点的多少。首先统计两幅图像对应像素点变化率超过阈值F1的像素点个数。然后,将变化的像素点个数与第二个预定的阈值F2比较,如果超过范围,则认为这两帧之间发生较大变化,判断其为镜头边界。由于考虑到了视频图像帧的像素位置信息,所以对于视频镜头的检测比较精确,但是这种方法的主要缺点是对于摄像机及目标运动比较敏感,容易出现误检与漏检。经常采用的一种方法是:使用滤波器来降低视频图像帧噪声,在比较一帧的每个像素前,用它的邻近区域的平均值来代替,这也

30、过滤了输入图像的一些噪声。(2) 基于连续帧直方图相减的方法基于直方图的方法也是利用视频图像帧间差进行镜头边界检测的方法。具体操作过程如下:首先计算连续两帧图像的直方图,然后统计相邻两帧中所有像素在不同灰度上的分布差异,即直方图相减。当差异的累加值超过阈值T时,即检测到镜头边界。基于直方图的方法虽然对于摄像机及目标运动不敏感,但它忽略了帧内的空间变化,所以有可能造成镜头边界的误检与漏检。因为可能存在两个图像有类似的直方图但却具有完全不同的内容。不过,这种事件的概率是足够低的。(3) 基于块的镜头边界检测算法由于前面两种方法对于摄像机及目标运动比较敏感,所以我们需要一种方法能够提高算法对局部运动

31、的容忍度。基于块的镜头边界检测算法就可以达到这个目的。它的原理与基于连续帧相减像素差法类似,所不同的是,这种算法将图像进行分块,然后将相邻帧所对应的块进行比较,统计变化率超过阈值F1的个数。当个数超过阈值F2时,即标为视频镜头边界。3.2 连续帧相减MATLAB实现3.2.1 MATLAB程序流程图i=i+1k=1jhj=1计算像素点变化率e提取帧x(i)与x(i-1),并灰度转换iframesi=2读取视频序列,获取帧高h,帧宽w,总帧数frames 假j=j+1kw假e25%存入数组mmw*h*7%输出帧号图3.1 MATLAB程序流程图3.2.2 连续帧相减原理由于人眼是以像素为单位来辨

32、别图象的相似度或者差异度的,两帧图像在同一位置上相同像素点的个数越多,这两帧图像就越相似。由此,提出基于连续帧相减的像素差法。该方法主要原理就是判断相邻图像帧中发生变化的像素点的多少。首先统计两幅图像对应像素点变化率超过阈值F1的像素点个数。然后,将变化的像素点个数与第二个预定的阈值F2比较,如果超过范围,则认为这两帧之间发生较大变化,判断其为镜头边界。 3.2.3 连续帧相减程序实现图3.2 视频罗马假日突变镜头部分视频帧程序代码:info=aviinfo(E:Hepburn.avi);%录入AVI视频的相关信息mov=aviread(E:Hepburn.avi);%读入视频frames=s

33、ize(mov,2);%获取视频中的帧总数w=info.Width;%帧宽h=info.Height;%帧高 m=zeros(frames,1);for i=2:frames x=mov(i-1).cdata(:,:,:); y=mov(i).cdata(:,:,:); a=rgb2gray(x); b=rgb2gray(y); %c=im2double(a); %d=im2double(b); e=abs(a-b)./(a+b); for j=1:h for k=1:w if e(j,k)0.25 %对于突变检测,像素点变化率阈值可选范围较大 m(i)=m(i)+1; end end end

34、 if m(i)h*w*0.07%阈值设为总像素点数的7% disp(i-1); end endn=1:frames;plot(n,m);xlabel(帧数,FontWeight,bold);ylabel(像素点变化数,FontWeight,bold);title(连续帧相减,FontSize,12,FontWeight,bold,FontName,隶书)图3.3 连续帧相减运行结果图程序运行结果:程序输出结果为37,110。即第37帧和110帧为镜头突变边界。并且由图3.3可以看出37与38帧与110与111帧像素差远远超出其它相邻帧像素差。将视频打成帧图像,查看第37帧与110帧。程序运行

35、结果正确,第37帧与110帧确实为镜头突变边界。3.2.4 连续帧相减优点与缺点优点: 在计算两视频帧图像的帧间差时考虑到了像素的位置关系,因此计算的图像帧间差较为精确。缺点:对摄像机运动敏感,如放缩、平移。对视频序列内物体的运动同样敏感。解决办法:通过滤波器的使用来降低摄像机及目标运动的干扰,提高算法对于摄像机及目标运动的容忍度。在比较一帧的每个像素前,用它的邻近区域的平均值来代替,这也过滤了输入图像的一些噪声。3.3 直方图相减MATLAB实现3.3.1 MATLAB程序流程图读取视频序列,获取帧高h,帧宽w,总帧数framesi=2iframes 提取帧x(i)与x(i-1),并灰度转换

36、计算x(i)与x(i-1)直方图帧差g(i)计算帧差累积和计算阈值(累积和的11%左右)g(i)thi=i+1 假输出帧号图3.4 MATLAB程序流程图3.3.2 直方图相减原理基于直方图的方法也是利用视频图像帧间差进行镜头边界检测的方法。它的原理也很简单,具体操作过程如下:首先计算连续两帧图像的直方图,然后统计相邻两帧中所有像素在不同灰度上的分布差异,即直方图相减。当差异的累加值超过阈值T时,即检测到镜头边界。3.3.3 直方图相减程序实现图3.5 视频罗马假日突变镜头部分视频帧程序代码:info=aviinfo(E:Hepburn.avi);%录入AVI视频的相关信息mov=avirea

37、d(E:Hepburn.avi);%读入视频frames=size(mov,2);%获取视频中的帧总数w=info.Width;%帧宽h=info.Height;%帧高% for x=1:frames% mov=aviread(E:Hepburn.avi,x);% I=mov.cdata;% J=rgb2gray(I);%转成灰度图% imwrite(J,strcat(int2str(m),.,bmp);%将视频打成帧图像% endfor i=2:frames x=mov(i-1).cdata(:,:,:);%读取视频帧 y=mov(i).cdata(:,:,:); a=rgb2gray(x)

38、;%转成灰度图 b=rgb2gray(y); e=imhist(a); f=imhist(b); g(i)=sum(abs(e-f);%直方图帧差 k=sum(g); th=k*0.11;%阈值设定为差异累加值的11% if g(i)th disp(i-1);%输出帧号 endendh=1:frames;plot(h,g);%直方图帧差图xlabel(帧数,FontWeight,bold);ylabel(直方图帧差,FontWeight,bold);title(直方图相减,FontSize,12,FontWeight,bold,FontName,隶书)图3.6 直方图相减程序运行结果图3.3.

39、4 直方图相减优点与缺点优点:基于直方图的方法对于摄像机及目标运动不是特别敏感,因为它没有考虑图像帧的位置信息,忽略了帧内的空间变化。缺点:这种方法有可能造成漏检,因为有可能出现两个图像有类似的直方图但却是完全不同的内容。然而,这种事件的概率是足够低。第四章 渐变检测4.1 国内外研究现状渐变镜头边界是指一个镜头渐渐过渡到另一个镜头,镜头之间会有一些空间或时间上的编辑效果,包括淡入淡出,溶解等。它的主要特点是渐变过程中相邻两帧图像变化相对较小,所以渐变过程通常为几帧到十几帧。与镜头突变只有一种不同的是,渐变包括许多种方式,如淡入淡出、溶解等。镜头渐变检测可以单独进行,也可以和镜头突变检测同时进

40、行。目前镜头突变检测已经比较成熟,但是镜头渐变检测还存在一些问题。下面对可以进行镜头渐变检测的方法作一简单介绍:(1)双阈值比较法这个方法就是根据视频帧间差与阈值的关系达到检测镜头边界的目的,既可以检测突变镜头边界也可以检测渐变镜头边界。因为基于连续帧帧间差的方法有很多,例如本文中所用的基于连续帧相减的像素差法和直方图相减法。检测渐变镜头边界与突变镜头边界唯一不同的是阈值的选取不同。一般来说,只计算相邻帧的帧间差,对于渐变镜头边界的检测来讲,有一种方法就是当帧间差超过阈值F1时,标记为渐变起始帧,然后接下来每一帧都与起始帧作差,以此来判定镜头边界。(3) 直方图交集法直方图交集法是利用两个视频

41、图像帧直方图交集来检测视频镜头边界的。与其它利用帧间差检测视频镜头边界方法不同的是,直方图交集是检测连续两个视频图像帧相似度的。它的原理也比较简单,具体实现过程如下,首先计算连续两帧的直方图,然后计算直方图交集,当连续两个视频图像帧的相似度小于阈值F1时,则判定出现镜头边界。(3)其它方法的组合在实际中,经常需要将突变镜头与渐变镜头放在一起检测。在进行镜头渐变检测时,用检测镜头突变的方法检测效果并不明显。所以需要一些方法的组合来实现渐变镜头边界检测,例如二次帧差法,利用重复帧差值的计算提高渐变镜头边界检测效率。还可以利用像素差法与直方图法的结合来实现,不仅可以达到好的渐变检测效果,还能消除摄像

42、机及目标运动对结果的影响。或者采用直方图帧差的均值与方差变化来找出渐变镜头边界。4.2 连续帧相减MATLAB实现图4.1 视频罗马假日渐变镜头部分视频帧程序代码:info=aviinfo(E:奥黛丽赫本.avi);%录入AVI视频的相关信息mov=aviread(E:奥黛丽赫本.avi);%读入视频frames=size(mov,2);%获取视频中的帧总数w=info.Width;%帧宽 h=info.Height;%帧高m=zeros(frames,1);for i=2:frames x=mov(i-1).cdata(:,:,:); y=mov(i).cdata(:,:,:); a=rgb

43、2gray(x); b=rgb2gray(y); %c=im2double(a); %d=im2double(b); e=abs(a-b)./(a+b); for j=1:h for k=1:w if e(j,k)0.25 %对于突变检测,阈值可选范围较大(任意) m(i)=m(i)+1; end end end if m(i)h*w*0.02 disp(i-1); end endn=1:frames;plot(n,m);xlabel(帧数,FontWeight,bold);ylabel(像素点变化数,FontWeight,bold);title(连续帧相减,FontSize,12,FontW

44、eight,bold,FontName,隶书)程序运行结果:111,即第111帧为视频镜头边界。图4.2 连续帧相减程序运行结果图4.3 直方图相减MATLAB实现图4.3 视频罗马假日渐变镜头部分视频帧程序代码:info=aviinfo(E:奥黛丽赫本.avi);%录入AVI视频的相关信息mov=aviread(E:奥黛丽赫本.avi);%读入视频frames=size(mov,2);%获取视频中的帧总数w=info.Width;%帧宽h=info.Height;%帧高% for x=1:frames% mov=aviread(E:Hepburn.avi,x);% I=mov.cdata;%

45、 J=rgb2gray(I);%转成灰度图% imwrite(J,strcat(int2str(m),.,bmp);%将视频打成帧图像% endfor i=2:frames x=mov(i-1).cdata(:,:,:);%读取视频帧 y=mov(i).cdata(:,:,:); a=rgb2gray(x);%转成灰度图 b=rgb2gray(y); e=imhist(a); f=imhist(b); g(i)=sum(abs(e-f);%直方图帧差 k=sum(g); th=k*0.03;%阈值设定为差异累加值的3% if g(i)th disp(i-1);%输出帧号 endendh=1:f

46、rames;plot(h,g);%直方图帧差图xlabel(帧数,FontWeight,bold);ylabel(直方图帧差,FontWeight,bold);title(直方图相减,FontSize,12,FontWeight,bold,FontName,隶书)程序运行结果为:111,即第111帧为视频镜头渐变边界。图4.4 直方图相减程序运行结果图结论现在,视频的大量使用,使得视频内容检索成为现阶段的主要问题。所以镜头边界检测算法的研究也越来越重要。大部分镜头边界为突变镜头边界,少部分为渐变镜头边界。突变镜头边界算法已比较成熟,渐变镜头边界检测还没有一个普遍适用的方法。本文主要用基于连续帧

47、相减的像素差法和直方图相减法进行镜头边界检测。本文首先介绍了关于视频镜头边界的一些基本概念,包括场景、镜头以及帧等。紧接着介绍了视频镜头边界的概念,视频镜头边界检测算法的分类,视频镜头边界检测的过程以及主要方法、存在的问题等。还有视频镜头边界检测算法的性能指标等。第二章主要对视频数据结构的特点以及表示作了介绍,并对MATLAB作了简要介绍。本文主要使用的方法为基于MATLAB连续帧相减的像素差法和直方图相减法。第三章主要对解压缩域突变镜头的主要方法及MATLAB实现作了介绍。使用连续帧相减法时,设定当连续帧对应像素值变化率超过25%时,即判定像素点发生变化。当发生变化的像素点数大于总像素点数的

48、7%时,即判定为镜头边界。然后又使用了直方图相减法对突变镜头边界进行检测,当连续帧帧差超过累计直方图帧差和的11%时,即判定为镜头边界。当使用这两种方法对罗马假日进行检测时,检测结果良好,第37帧和第110帧为突变镜头边界,帧间差远远超过阈值。第四章主要对解压缩渐变镜头的主要方法及MATLAB实现作了介绍。本文中渐变镜头边界的检测与突变镜头边界检测唯一的不同就是阈值的不同,基于连续帧相减的像素差法阈值设定为总像素点数的2%,超过这个阈值就判定为镜头边界。利用直方图相减法进行检测时,阈值设定为累积直方图帧差的3%。当超过这个阈值时,即判定为渐变镜头边界。当使用这两种方法对罗马假日进行检测时,检测

49、结果良好,第111帧为渐变镜头边界。最后,对全文进行了总结,以及所使用方法的结果作了一个总结性的讨论。参考文献1 周品,李晓东.MATLAB数字图像处理.北京.清华大学出版社.2012:2 刘文萍,李也白,张常年.视频镜头边缘检测技术.计算机工程与应用.2006.21:3 郭阿弟.镜头边界检测方法的研究.兰州大学.2009.4 孟祥如.视频镜头边界检测的研究.沈阳工业大学.2009.5 韩冰.视频镜头边界检测方法研究.西安电子科技大学.2004.6 杨倩.视频镜头边界检测算法的研究.太原理工大学.2012.7 袁小娟.视频镜头边界检测算法的研究.武汉工业学院.2010.8 葛宝.视频镜头边界检

50、测研究.西北大学.2004.9 刘谦雷,杨绿溪,邹采荣.用于视频镜头突变切换检测的二次差分法和像素点匹配二次差分法.中国图象图形学报.2008.第8卷(A版).第2期.10 冈萨雷斯.数字图像处理中文版课件.11 Jordi Mas and Gabriel Fernandez.VIDEO SHOT BOUNDARY DETECTION BASED ON COLOR HISTOGRAM.12 王沫然.MATLAB与科学计算.北京.电子工业出版社.200313 高展宏,徐文波.基于MATLAB的图像处理案例教程.北京.清华大学出版社.2011.14 赵书兰.MATLABR2008数字图像处理与分析实例教程.北京.化学工业出版社.2009.15 牛颢,丁春利,张明,唐博.视频镜头边缘检测算法研究与比较.计算机应用研究.第30卷第2期.16 刘政凯,汤晓鸥.视频检索中镜头分割方法综述.计算机工程与应用.2002.23.17 王保雄,余松煜.视频检索中的镜头边界检测.红外与激光工程.第29卷第5期.18 印勇,侯海珍.基于直方图帧差的自适应镜头分割算法.计算机工程与应用.2010,46(9).19 丁洪丽,陈怀新.基于累积直方图的视频镜头边界检测方法.电讯技术.第48卷第3期.20 华维东.视频实验报告.谢辞毕业论文终于要定稿了,要感谢的人有很多。在从开始写作到最终完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论