基于matlab的运动目标检测
基于Matlab的图像边缘检测算法的实现及应用汇总

目录摘要 (1)引言 (2)第一章绪论 (3)1.1 课程设计选题的背景及意义 (3)1.2 图像边缘检测的发展现状 (4)第二章边缘检测的基本原理 (5)2.1 基于一阶导数的边缘检测 (8)2.2 基于二阶导的边缘检测 (9)第三章边缘检测算子 (10)3.1 Canny算子 (10)3.2 Roberts梯度算子 (11)3.3 Prewitt算子 (12)3.4 Sobel算子 (13)3.5 Log算子 (14)第四章MATLAB简介 (15)4.1 基本功能 (15)4.2 应用领域 (16)第五章编程和调试 (17)5.1 edge函数 (17)5.2 边缘检测的编程实现 (17)第六章总结与体会 (20)参考文献 (21)摘要边缘是图像最基本的特征,包含图像中用于识别的有用信息,边缘检测是数字图像处理中基础而又重要的内容。
该课程设计具体考察了5种经典常用的边缘检测算子,并运用Matlab进行图像处理结果比较。
梯度算子简单有效,LOG 算法和Canny 边缘检测器能产生较细的边缘。
边缘检测的目的是标识数字图像中灰度变化明显的点,而导函数正好能反映图像灰度变化的显著程度,因而许多方法利用导数来检测边缘。
在分析其算法思想和流程的基础上,利用MATLAB对这5种算法进行了仿真实验,分析了各自的性能和算法特点,比较边缘检测效果并给出了各自的适用范围。
关键词:边缘检测;图像处理;MATLAB仿真引言边缘检测在图像处理系统中占有重要的作用,其效果直接影响着后续图像处理效果的好坏。
许多数字图像处理直接或间接地依靠边缘检测算法的性能,并且在模式识别、机器人视觉、图像分割、特征提取、图像压缩等方面都把边缘检测作为最基本的工具。
但实际图像中的边缘往往是各种类型的边缘以及它们模糊化后结果的组合,并且在实际图像中存在着不同程度的噪声,各种类型的图像边缘检测算法不断涌现。
早在1965 年就有人提出边缘检测算子,边缘检测的传统方法包括Kirsch,Prewitt,Sobel,Roberts,Robins,Mar-Hildreth 边缘检测方法以及Laplacian-Gaussian(LOG)算子方法和Canny 最优算子方法等。
MATLAB仿真教程

MATLAB仿真教程一、MATLAB的基本操作1.启动MATLAB:在桌面上双击MATLAB图标,即可启动MATLAB软件。
3.基本运算:在命令窗口中输入基本运算表达式,如加减乘除,然后按下回车键即可得到结果。
4.变量的定义和操作:在MATLAB中,可以定义变量,并对其进行各种运算操作。
例如,定义一个变量a,并对其进行加法运算,如a=2+35.矩阵操作:MATLAB中的矩阵操作非常方便。
可以使用矩阵运算符进行矩阵的相加、相乘等操作。
6. 绘图功能:MATLAB提供了丰富的绘图功能,可以绘制曲线、散点图、三维图等。
通过plot函数可以绘制曲线,scatter函数绘制散点图,surf函数绘制三维图。
二、MATLAB的仿真研究1.数值计算:MATLAB可以进行各种数值计算,如解线性方程组、求解微分方程、进行最优化等。
通过编写相应的代码,调用MATLAB提供的函数库,可以实现这些仿真研究。
2.信号处理:MATLAB提供了丰富的信号处理工具箱,可以进行信号的滤波、谱分析、频谱绘制等操作。
通过调用相应的函数库,可以实现这些功能。
3.控制系统仿真:MATLAB提供了强大的控制系统工具箱,可以进行控制系统的建模、仿真和优化。
可以使用MATLAB的控制系统工具箱进行系统的响应、稳定性分析和控制器设计。
4.图像处理与计算机视觉:MATLAB可以进行基本的图像处理操作,如图像的灰度化、二值化、滤波、边缘检测等。
通过调用MATLAB的计算机视觉工具箱,还可以进行目标检测、图像识别等高级图像处理操作。
5.多体动力学仿真:MATLAB提供了多体动力学仿真工具箱,可以进行机械系统的建模、动力学仿真和分析。
可以通过编写相应的代码,定义机械系统的运动方程和控制方程,实现仿真研究。
总结:MATLAB是一种强大的数值计算和编程软件,广泛应用于科学、工程、金融等领域。
本教程介绍了MATLAB的基本操作以及如何进行仿真研究。
通过学习MATLAB,可以提高数值计算和仿真研究的效率,为科研工作提供有力的支持。
基于Coppeliasim与MATLAB的机器人建模与运动仿真

绕 #$ 轴旋转 $5$ "使得 %$ 和 %$5$ 互相平行"因为 !$ 和 !!5都是垂直于 #$ 轴"因此绕 #$ 旋转 $5$ 使它们平行' 并 且共面( % 绕 #$ 轴平移 "$5$ "使得 %$ 和 %$5$ 共线"因为 %$ 和 %$5$ 都是平行并且垂直于 #$ 轴"沿着 #$ 移动则可以使 它们重叠在一起% 绕 %$ 轴平移 "$5$ "使得 %$ 和 %$5$ 的原 点坐标相同% #$ 围绕 %$5$ 旋转 !$5$ "使得 #$ 轴和 #$5$ 轴处 在同一条线上"使得变换前后的坐标系完全重合% 通过上 述变换步骤"得到准确的坐标系变换,$$- %
',O7< J4P0?490?< 02>79R0?S7E@059?01-<D978-/75<456L5D9=9;9702M;90849=05@/=57D7M.4E78< 02-.=75.7D J=405=56-/75<456!&&%%&(
$,L5D9=9;9702T0P09=.D 45EL59711=6759345;24.9;?=56L550H49=05@/=57D7M.4E78< 02-.=75.7D J=405=56-/75<456&&%&(+
,HE$
h
E/-$
% %
lE/-$ ,HE$ ,HE$ ,HE$
E/-$ %
E/-$ E/-$ l,HE$ E/-$
,HE$ %
!$ '()$ !$ E/-$
使用Matlab进行实时雷达信号处理与目标识别的实践指南

使用Matlab进行实时雷达信号处理与目标识别的实践指南引言雷达技术在军事、航空航天、气象等领域中有着广泛的应用。
实时雷达信号处理与目标识别是其中重要的研究方向之一。
Matlab作为一种功能强大的工具,可以帮助我们实现实时雷达信号处理和目标识别的算法。
本文将介绍如何使用Matlab进行实时雷达信号处理与目标识别,并提供实践指南。
一、雷达信号处理的基础知识1.1 雷达系统基本原理雷达系统由发射机、天线、接收机和信号处理模块组成。
发射机将电磁波发送至目标物体并接收反射回来的信号。
天线用于发射和接收信号。
接收机接收和放大返回的信号。
信号处理模块用于提取目标信息。
1.2 雷达信号处理流程雷达信号处理包括信号质量评估、信号预处理、目标检测与跟踪等步骤。
信号质量评估用于分析信号的特点,判断信号质量。
信号预处理包括去噪、增强等操作,以提高信号的质量。
目标检测与跟踪则是通过信号处理算法来识别目标。
二、Matlab在实时雷达信号处理中的应用2.1 信号质量评估Matlab提供了丰富的工具箱和函数,方便我们对信号进行特征提取和质量评估。
例如,我们可以使用MATLAB中的fft函数对信号进行频谱分析,通过观察频谱来评估信号的质量。
2.2 信号预处理信号预处理是提高信号质量的一个重要步骤。
Matlab提供了各种去噪和增强算法,例如小波去噪算法和自适应滤波算法。
我们可以根据具体需求选择适合的算法,并结合实时数据对算法进行调参和优化。
2.3 目标检测与跟踪目标检测与跟踪是雷达信号处理的核心任务之一。
在Matlab中,我们可以使用各种目标检测和跟踪算法来实现目标识别。
例如,常用的算法包括卡尔曼滤波、粒子滤波、模板匹配等。
Matlab提供了相关工具箱和函数,方便我们进行算法的实现和调试。
三、Matlab实时雷达信号处理与目标识别的实践指南3.1 数据获取与处理实时雷达信号处理需要依赖实时采集的雷达信号数据。
我们可以通过硬件设备或仿真数据生成器来获取数据。
如何在Matlab中进行机器人路径规划与运动控制

如何在Matlab中进行机器人路径规划与运动控制如何在 Matlab 中进行机器人路径规划与运动控制机器人技术在现代工业自动化和服务行业中起着重要的作用。
机器人的路径规划和运动控制是机器人系统中至关重要的组成部分。
在本文中,我们将讨论如何使用 Matlab 实现机器人路径规划和运动控制。
1. 引言机器人路径规划是指确定机器人从起始位置到目标位置的最佳轨迹的过程。
运动控制是指控制机器人在规划路径上的运动,包括速度控制、加速度控制和姿态控制等。
路径规划和运动控制的有效实现对提高机器人系统的性能和安全性至关重要。
2. 机器人的建模在进行路径规划和运动控制之前,首先需要对机器人进行建模。
这可以通过使用 Matlab 中的 Robotics System Toolbox 来实现。
Robotic System Toolbox 提供了用于建立机器人模型的功能,包括模型导入、碰撞检测和可视化等。
3. 机器人路径规划机器人路径规划可以分为离线规划和在线规划两种方式。
离线规划是在不考虑环境变化的情况下,通过预先生成的地图来计算最优路径。
Matlab 中的 Robotics System Toolbox 提供了一系列路径规划算法,如 A*、Dijkstra 和 RRT 等。
用户可以根据具体情况选择适合的路径规划算法来实现。
4. 机器人运动控制机器人运动控制是指控制机器人按照路径规划的轨迹进行运动的过程。
在Matlab 中,可以使用 Robotics System Toolbox 提供的运动控制工具箱来实现。
运动控制工具箱包括速度控制、加速度控制和姿态控制等功能,用户可以根据自己的需求选择合适的控制策略。
5. 环境感知和碰撞检测在机器人路径规划和运动控制过程中,准确地感知环境和检测碰撞是至关重要的。
Matlab 提供了一系列传感器模型和碰撞检测算法,可以用于实现环境感知和碰撞检测功能。
用户可以根据机器人系统的具体需求选择合适的传感器模型和碰撞检测算法。
MATLAB读取播放视频截取每帧图像及邻帧检测

matlab读取/播放视频的函数2013-10-08 17:43:12| 分类:MATLAB | 标签:视频|举报|字号订阅1. 可以用mmreader和read这两个函数读取视频帧readerobj = mmreader('xylophone.mpg');vidFrames = read(readerobj);具体参数含义帮助文档里面有。
示例:fileName = 'ntia_wfall-qcif_original.avi'; % .avi必须是无损压缩的.obj = mmreader(fileName);vidFrames = read(obj);% 读取所有的帧数据numFrames = obj.numberOfFrames;% 帧的总数for k = 1 : numFrames% 读取数据mov(k).cdata = vidFrames(:,:,:,k);% mov(k)是一个结构体,mov(k).cdata 实际上就是一个有RGB的帧mov(k).colormap = [];endmovie(mov);% 在matlab中播放视频2. 从AVI视频中提取每一帧,使用 aviinfo,avireadstr='D:\Program Files\MATLAB71\work\1.avi';info=aviinfo(str);fum=info.NumFrames;for i=1:fummov=aviread(str,i);I=mov.cdata;J=rgb2gray(I);imwrite(J,strcat('F:\shiyan\work\',int2str(i),'.bmp'),'bmp');end3. Matlab下读取视频文件并进行基于邻帧差法的视频目标运动检测(原文)videoObj = mmreader('highwayII_raw.avi');%读视频文件nframes = get(videoObj, 'NumberOfFrames');%获取视频文件帧个数for k = 1 : nframescurrentFrame = read(videoObj, k);%读取第i帧subplot(1,2,1),imshow(currentFrame);grayFrame = rgb2gray(currentFrame);%灰度化if(k==1)grayFrame_1 = grayFrame;enddifgrayFrame= grayFrame - grayFrame_1;%邻帧差grayFrame_1 = grayFrame;subplot(1,2,2),imshow(difgrayFrame);end4. 播放视频可使用movie(mov)(使用示例见1中),implay('*.avi')。
基于matlab的课程设计题目

基于matlab的课程设计题目题目:基于matlab的图像处理与分析设计内容:1. 图像读取与显示:使用matlab读取图像文件,并将其显示在matlab界面上。
2. 图像处理:对读取的图像进行处理,包括图像的灰度化、二值化、滤波、边缘检测等操作。
3. 图像分析:对处理后的图像进行分析,包括图像的特征提取、目标检测、图像识别等操作。
4. 图像保存:将处理后的图像保存为新的图像文件。
5. 界面设计:设计一个简单的matlab界面,包括图像读取、处理、分析和保存等功能按钮,方便用户进行操作。
设计步骤:1. 首先,使用matlab的imread函数读取图像文件,并使用imshow函数将其显示在matlab界面上。
2. 对读取的图像进行处理,包括图像的灰度化、二值化、滤波、边缘检测等操作。
可以使用matlab的im2gray函数将图像转换为灰度图像,使用im2bw函数将灰度图像转换为二值图像,使用imfilter函数进行滤波操作,使用edge函数进行边缘检测操作。
3. 对处理后的图像进行分析,包括图像的特征提取、目标检测、图像识别等操作。
可以使用matlab的regionprops函数提取图像的特征,使用imfindcircles函数进行圆形目标检测,使用imread函数读取训练好的图像库进行图像识别。
4. 将处理后的图像保存为新的图像文件。
可以使用matlab的imwrite函数将处理后的图像保存为新的图像文件。
5. 最后,设计一个简单的matlab界面,包括图像读取、处理、分析和保存等功能按钮,方便用户进行操作。
可以使用matlab的GUI设计工具进行界面设计。
设计要求:1. 界面简洁明了,操作方便。
2. 图像处理和分析的算法要求准确可靠。
3. 代码规范,注释清晰,易于理解。
4. 提供详细的使用说明文档。
5. 可以自行选择图像进行处理和分析,也可以使用提供的测试图像进行测试。
基于matlab的车道线检测开题报告

基于matlab的车道线检测开题报告一、问题描述。
车道线检测是自动驾驶汽车技术中的关键问题之一,它是基于镜头设备采集到的图像中,通过图像处理算法识别出车道线的位置和形状,从而实现自动驾驶车辆自动跟踪车道行驶的功能。
本项目旨在使用matlab实现车道线检测的算法,使得车辆能够自动地行驶在道路的正中心,并且在离开车道的情况下能够及时发出警报。
二、项目目标。
1.使用matlab编写车道线检测算法,实现对车道线的精确识别和定位。
2.基于车道线检测算法,实现自动驾驶车辆的自动跟踪功能,使车辆可以自动沿着车道线行驶。
3.增加离线模式,即使用预录像数据测试算法,然后根据算法结果对车辆进行控制与警报测试。
三、技术路线及思路。
车道线检测算法的核心是对图像进行处理,将图像中的车道线与背景分离出来,得到车道线的位置和形状。
具体的技术路线及思路如下:1.图像处理:获取图像并进行灰度化处理,然后进行滤波和二值化处理,得到车道线的二值图像。
2. 边缘检测:通过Canny边缘检测算法,对车道线进行边缘检测,得到车道线的边缘。
3.车道线识别:通过霍夫变换得到车道线的特征参数,如直线的斜率和截距等。
然后根据特征参数,对车道线进行识别。
4.车道线跟踪:对车道线进行改进,将车道线进行拟合,然后对车道线进行跟踪,使车辆一直行驶在车道的正中心。
5.离线测试:使用预录像数据测试车道线检测算法,并根据算法结果对车辆进行控制与警报测试。
四、具体工作计划。
1.第一周:学习图像处理和车道线检测算法的相关知识和技术,构思算法的实现思路和流程。
2.第二周:编写车道线检测算法的主要代码,包括图像处理、边缘检测、车道线识别和跟踪等模块的代码。
3.第三周:对车道线检测算法进行测试和调试,并对算法进行优化和改进,提高算法的准确度和稳定性。
4.第四周:开发离线测试模式,使用预录像数据测试算法,并根据算法结果对车辆进行控制与警报测试。
5.第五周:完成报告撰写工作,并进行算法的验收测试,以确保算法能够在实际应用中得到有效的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 绪论 课题研究背景及意义 运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。它可以减轻人的负担,并且提高了可靠性。概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。
国内外研究现状 运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后 ,与国外还有较大差距。传统的视频目标提取大致可以分两类 ,一类以空间同性为准则 ,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。如光流算法、主动轮廓模型算法。此类方法结果较为准确但是运算量相对较大。另一类算法主要以时间变化检测作为准则 ,这类算法主要通过帧差检测图像上的变化区域和不变区域 ,将运动物体与静止背景进行分割。此类方法运算量小,提取结果不如前类方法准确。此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。本文将围绕以时间变化监测为基础的方法展开分析和讨论。
本文结构 第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。 2 运动目标检测的一般过程 背景提取与更新算法 在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。此时,图像中的背景区域固定不动。在这种情况下,运动目标识别无论是使用背景差法,还是使用背景差法结合帧间差法,质量良好的背景的建立显得及其重要。另外,当涉及到背景的使用时,一旦背景发生一些变化时,如背景中频繁地出现运动物体,或者光照发生变化、树叶等小物体的晃动等等,使得不能准确地提取背景作为参考图像,从而不能正确地分割出视频序列中的运动物体。为了克服上述问题,国内外众多研究人员提出了背景建立和自适应的背景模型,实现了背景模型的实时更新,能够比较准确地识别出运动目标。在能够满足实时性和实用性要求的前提下,讨论并研究下列几种算法[5]。
手动背景法 手动背景法需要人观察到没有前景物体时启动该帧图像,作为背景图像。这种背景提取方法增加了人力和物力的需求,而且在很多情况下很难在没有前景的情况下获得背景图像,比如高速公路的车辆监测系统、小区的门禁系统等等。这种方法不能实现自适应背景更新的功能,需要使用其他方法修正由于光线,亮度等的变化带来的背景误差。
统计中值法 考虑到运动物体较少的情况下,连续多帧图像中背景的像素值占主要部分,这样在一段时间内变化缓慢,取中值便可以认为是背景图像。统计中值算法从统计学的角度统计单个像素点Ai(x,y),(i=1,2,…N)在连续帧图像中的亮度值Bi。在一段时间内对视频序列图像的亮度值(或者色彩信息) Bi进行排序,然后取中值Mi(x,y)作为背景。该算法存在的问题在于:图像帧的像素点大多以数万,数十万的数量级出现,而用于取中值的图像帧数量N也应该比较大。对如此大的数组进行排序取出中值,实现时计算量较大,处理较慢。同时需要占用大量的内存单元用于存储数据。
算术平均法 采用算术平均法提取背景图像,可以总结为在特定的时间段内对像素点的亮度和色彩信息取平均值,用均值作为背景图像对应像素点数值。在读入一段视频时,对某一像素点进行观察,会发现在没有前景的运动目标通过时,该点的灰度值保持稳定,变化很小,只有当前景的运动目标通过时,该点的灰度才会发生剧烈的变化。这样就可以连续读入N帧图像,对图像各点的灰度或色彩信息进行统计的方法,使得变化剧烈的像素点变得平缓,取其平均值作为背景图像像素点的值。这样也可以滤除背景图像中的突变噪声点。其统计公式如下: NiNyxIiyxB11),(),( (2-1)
公式中式中:B (x, y)表示背景图像,Ii(x,y)表示第i帧序列图像,N表示平均帧数。在实际场景中,一段时间内,同一区域很少有可能总是存在运动物体。而通过平均法得到的背景就会消除亮暗分布不均匀的情况。 选取N=120,MATLAB仿真,从序列图像的第1、60、120帧可以看出,在第1帧至第120帧时都存在运动目标,如2-1图。经过对连续120帧计算算术平均值,得到了基本不包含运动目标的背景图像,如2-2图。
(a)第1帧图像 (b)第60帧图像 (c)第120帧图像 图2-1 各帧图像
图2-2 算术法提取的背景图像 由上述仿真实验证明,算术平均法的特点是模型简单,计算方便,可以较好的得到背景图像。但是在仿真过程中,也发现了该方法的一些问题。其中最明显的是,该算法得到背景图像需要获取的图像帧较大。受运动物体数量的影响,随着平均帧数的增加,得到的背景图像的质量越好。由于是求取序列图像的算术平均值,如果N值太小,背景图像中的运动物体不容易被滤除,很容易在背景图像中留下“影子”。而且在运动物体很多,轨迹很固定的情况下,也需要加大N的数值,以使得平均值更加接近与真实的背景图像。在这种情况下,背景的建立就需要较长的时间。本算法也有一定自适应更新功能。随着时间的推移,在背景提取后获取的图像帧也可以作为新的信息量,与背景图像进行统计平均或加权平均,实现背景的自适应更新。因此这种方法也使用于实时背景更新算法。 Surendra算法 Surendra背景更新算法[6][7]能够自适应地获取背景图像,该算法提取背景的思想是对差值图像的亮度值进行判断,如亮度大于阈值,背景图像对应位置的像素点保持不变,否则利用当前帧对背景图像进行替换更新。其算法可以分成以下几个步骤: (1)将第1帧图像I1作为背景B1。 (2)选取阈值T,迭代次数m=1,最大迭代次数MAXSTEP。 (3)求当前帧的帧差分图像 1 |Ii-Ii-1|>T Di= (2-2)
(4)由二值图像Di更新背景图像Bi, Bi-1(x,y) Di=1 Bi= (2-3) αIi(x,y)+(1-α)Ii-1(x,y) Di=0 式中Bi(x,y),Di(x,y)为背景图像和差分二值图像在(x, y)的灰度值,Ii(x,y)为输入的第i帧图像,α为更新速度。 (5)迭代次数m=m+1,进行第(3)步的运算。当迭代次数m=MAXSTEP时结束迭代,此时Bi(x,y)可当作背景图像。 选取MAXSTEP=80,α=,选取固定阈值T=20。在MATLAB中进行仿真
第30帧背景(灰度) 第30帧图像 第80帧背景(灰度) 第80帧图像
0 |Ii-Ii-1|≤T 图2-3 Surendra算法提取的背景图像 在仿真研究中发现,MAXSTEP很大程度地决定了背景建立时的速度,α则决定背景更新的速度。这种背景建模和更新的方法,能够很好地解决物体长时间停留对背景的影响,因为背景的更新会将它逐步地作为背景像素点更新到背景中。但是由于它的基本处理方式是帧间差分,使得它不能将色彩、亮度相似的,大面积的运动物体完整的检测出来。这种情况下,运动物体的某些部分将作为背景区域更新到背景中。
其他算法 国内外已有的背景提取与更新算法远不止上述几种,如混合高斯模型,分块统计算法等也是目前比较常见的算法,其主体思想与算术平均法类似,只是在做法上有区别。由于绝大多数算法都是基于PC机的实现,很少将算法的实时性作为参考要素。
动目标检测算法研究 在实际的安防与监控应用中,大多考虑摄像头固定的情况。因此本文在研究运动目标检测算法时,也做如下假设:摄像头固定,只对视场内的目标进行检测,离开视场后再次进入的物体被视为新目标。目前,大多数的运动目标检测的方法或是基于图像序列中时间信息的,或是基于图像序列中空间信息的。常见的方法有如下3种[8]: (1)光流法 当目标运动时,图像上对应目标的亮度信息(光流)也相应的运动。这样,根据时间上相邻的几帧图像可以计算出各像素点运动的大小和方向,从而利用运动场来区分背景和运动目标。其主要优点在于能检测出独立的运动目标,而不需预知场景的任何信息,对变化的复杂背景情况有较好的适应。但其缺点也很明显,由于要依赖光流估计的准确程度,大多数计算方法相当复杂并且计算量特别大,所以除非有特殊的硬件支持,否则很难实现实时检测。 (2)背景减法 将实时视频流中的图像像素点灰度值与事先已存储或实时得到的视频背景模型中的相应值比较,不符合要求的像素点被认为是运动像素。这是视频监控中最常用的运动检测方法。这种方法虽然能较完整的提取运动目标,但对光照和外部条件造成的环境变化过于敏感,常常会将运动目标的阴影错误的检测为其自身的一部分。同时由于时间流逝,实际场景的多种因素都会发生变化,比如停留物的出现、光线等的变化、运动目标对背景的遮挡等等,背景需要得到实时地更新,这是影响其检测效果的一个重要因素。 (3)帧间差法 帧间差法是根据当前图像与参考图像的差别来获得运动目标轮廓的方法。这种方法对于场景中的光线渐变不敏感,适于动态变化的环境,且运算量相对较小。但一般不能完整的提取运动目标,且在运动实体内易产生空洞现象,从而不利于下一步的分析和处理。