三帧差法 matlab
如何进行视频分析的Matlab实现

如何进行视频分析的Matlab实现引言:在当今数字化的时代,视频数据蕴含着丰富的信息。
而对这些信息进行准确、高效的分析,对于科学研究、商业决策、社会治理等领域具有重要意义。
Matlab作为一种强大且广泛使用的科学计算软件,为我们提供了丰富的工具和函数,使得视频分析变得更加容易和高效。
本文将介绍如何利用Matlab实现视频分析,并探讨其中的一些关键技术和方法。
一、视频读取与展示:首先,我们需要将视频数据导入到Matlab环境中,并展示给用户观看。
Matlab 提供了一个视频读取函数`VideoReader`,可以方便地读取本地视频文件或者从摄像头实时采集视频流。
读取视频后,我们可以使用图形界面工具箱中的`Video Visualizer`来展示视频内容,同时提供一些基本的视频控制功能,如播放、暂停、快进、快退等。
通过这些功能,用户可以直观地了解视频的内容和特征。
二、视频预处理与特征提取:在进行视频分析之前,通常需要对视频数据进行预处理,以提取其关键特征。
其中一个关键的预处理步骤是视频的帧差分析。
帧差分析可以帮助我们检测出视频中的动态变化区域,并提取出关键的运动信息。
Matlab提供了一些相关的函数,如`imabsdiff`来计算图像差分。
通过将相邻两帧图像进行差分运算,我们可以得到图像的差分图,进而根据差分图的像素值来检测出物体的运动轨迹。
此外,我们还可以利用Matlab提供的图像处理工具箱,对视频数据进行一系列的处理操作,如图像滤波、边缘检测、图像增强等。
这些处理操作有助于提取视频中的关键特征,并帮助我们更好地理解视频的内容。
三、目标检测与跟踪:视频目标检测与跟踪是视频分析领域的重要研究方向,也是实际应用中的一个关键问题。
通过目标检测与跟踪,我们可以实时地追踪视频中的目标对象,并获取其位置、速度、大小等信息。
在Matlab中,可以利用计算机视觉工具箱提供的函数和算法来实现目标检测与跟踪。
对于目标检测,常用的方法包括基于背景建模的前景检测、基于颜色或纹理特征的目标分割、基于形状的目标检测等。
opencv运动检测三帧差法

opencv运动检测三帧差法三帧差法优点:实时性高缺点:1、运动物体本身颜色相近时,会出现较大的空洞。
2、无法应对光照骤变的情况理论上:三帧差法比二帧差法更好一些(可在一定程度上消除帧间差分法的“双影”现象),但是也要结合实际情况而用。
1. 帧差法基本原理帧差法的实现非常简单:如图可见,由目标运动引起的运动变化区域,包括运动目标在前后两帧中的共同位置(图中黑色区域)、在当前帧中新显露出的背景区域和新覆盖的背景区域三部分。
数学原理:三帧差法的流程:1 结果1 = (第二幅图像 - 第一幅图像) ∩ (第三幅图像 - 第二幅图像)2结果2 = 滤波(结果1)3 结果3 = 形态学处理(结果2)4结果4 = 二值化(结果3)第一步:第二幅图像减去第一幅图像的值与第三幅图像减去第二幅图像的值作交集运算.对第一步产生的结果做滤波处理.对第二步产生的结果做形态学处理.对第三步产生的结果做二值化处理.直接上代码:1.#include <opencv2/opencv.hpp>ing namespace std;ing namespace cv;4.5.int main()6.{7.//读入视频8.VideoCapture capture("1.avi"); //Laboratory_raw.avi9.//VideoCapture capture(0);10.11.Mat tempframe, currentframe, previousframe, difframe,s3;12.Mat difframe2, difframe3;13.Mat frame;14.int framenum = 0;15.//读取一帧处理16.while (true)17.{18.if (!capture.isOpened())19.{20.cout << "read video failure" << endl;21.return -1;22.}23.//tempframe = capture.read(frame);24.capture >> frame;25.imshow("原视频", frame);26.previousframe = frame.clone(); //第一帧27.28.capture >> frame;29.currentframe = frame.clone(); //第二帧30.31.capture >> frame;32.s3 = frame.clone(); //第三帧33.34.cvtColor(previousframe, previousframe, CV_BGR2GRAY);35.cvtColor(currentframe, currentframe, CV_BGR2GRAY);36.cvtColor(s3,s3, CV_BGR2GRAY);37.38.39.absdiff(currentframe, previousframe, difframe);//做差求绝对值 1-240.absdiff(previousframe, s3, difframe2);//做差求绝对值 2-341.42.43.//准备做与运算,difframe3= difframe2^difframe44.// void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src245.bitwise_and(difframe, difframe2, difframe3); //46.47.48.threshold(difframe3, tempframe, 20, 255.0, CV_THRESH_BINARY);49.dilate(tempframe, tempframe, Mat());//膨胀50.erode(tempframe, tempframe, Mat());//腐蚀51.52.imshow("运动目标", tempframe);53.54.waitKey(50);55.}//end while56.}运行结果:希望对你有帮助。
【目标追踪】三帧差法原理及实现

【目标追踪】三帧差法原理及实现三帧差法原理及实现•(一)帧差法原理及实现:•(二)帧差法存在的问题:•(三)三帧差法的原理:•(四)三帧差法的实现代码:•(五)视频中的目标追踪效果:(一)帧差法原理及实现:这里可以看一下我的这篇博客,这里就不赘述了:【目标追踪】python帧差法原理及其实现(二)帧差法存在的问题:运动物体本身颜色相近时,会出现较大的空洞。
位置变化缓慢时,难以检测到目标。
对光线非常敏感。
(三)三帧差法的原理:三帧差法的关键是,不再仅仅采用相邻的两帧图片作差查找运动目标,而是在相邻三帧图片的两张帧差图中取“与”操作,即:(四)三帧差法的实现代码:(具体处理和代码解析还是推荐看一下我的上一篇博客:【目标追踪】python帧差法原理及其实现)代码:import cv2import numpy as npfrom nms import py_cpu_nmsfrom time import sleepclass Detector(object):def __init__(self, name='my_video', frame_num=10, k_size=7, color=(0, 255, 0)): = nameself.color = colorself.nms_threshold = 0.3self.time = 1/frame_num # 频率self.es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (k_size, k_size))def catch_video(self, video_index=0, k_size=7,iterations=3, threshold=20, bias_num=1,min_area=360, show_test=True, nms=True,logical='or'):# video_index:摄像头索引(数字)或者视频路径(字符路径)# k_size:中值滤波的滤波器大小# iteration:腐蚀+膨胀的次数,0表示不进行腐蚀和膨胀操作# threshold:二值化阙值# bias_num:计算帧差图时的帧数差# min_area:目标的最小面积# show_test:是否显示二值化图片# nms:是否进行非极大值抑制# logical:三帧差取or或andlogical = logical.lower()if not bias_num > 0:raise Exception('bias_num must > 0')if isinstance(video_index, str):is_camera = False# 如果是视频,则需要调整帧率else:is_camera = Truecap = cv2.VideoCapture(video_index) # 创建摄像头识别类if not cap.isOpened():# 如果没有检测到摄像头,报错raise Exception('Check if the camera is on.')frame_num = 0previous = []while cap.isOpened():catch, frame = cap.read() # 读取每一帧图片if not catch:raise Exception('Unexpected Error.')if frame_num < bias_num:value = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) previous = [value]*bias_numframe_num += 1raw = frame.copy()gray1 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)gray1 = cv2.absdiff(gray1, previous[0])gray1 = cv2.medianBlur(gray1, k_size)_, mask1 = cv2.threshold(gray1, threshold, 255, cv2.THRESH_BINARY)gray2 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)gray2 = cv2.absdiff(gray2, previous[1])gray2 = cv2.medianBlur(gray2, k_size)_, mask2 = cv2.threshold(gray2, threshold, 255, cv2.THRESH_BINARY)if logical == 'or':mask = (np.logical_or(mask1, mask2) + 0)elif logical == 'and':mask = (np.logical_and(mask1, mask2) + 0)else:raise Exception('Logical must be \'OR\' or \'AND\'')mask = (mask * 255).astype(np.uint8)mask = cv2.dilate(mask, self.es, iterations)mask = cv2.erode(mask, self.es, iterations)_, cnts, _ = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)bounds = self.nms_cnts(cnts, mask, min_area, nms=nms)for b in bounds:x, y, w, h = bthickness = (w*h)//min_areathickness = thickness if thickness <= 3 else 3thickness = thickness if thickness >= 1 else 1cv2.rectangle(frame, (x, y), (x+w, y+h), self.color, thickness) if not is_camera:sleep(self.time)cv2.imshow(, frame) # 在window上显示图片if show_test:cv2.imshow(+'_frame', mask) # 边界value = cv2.cvtColor(raw, cv2.COLOR_BGR2GRAY)previous = self.pop(previous, value)cv2.waitKey(10)if cv2.getWindowProperty(, cv2.WND_PROP_AUTOSIZE) < 1:# 点x退出breakif show_test and cv2.getWindowProperty(+'_frame', cv2.WND_PROP_AUTOSIZE) < 1:# 点x退出break# 释放摄像头cap.release()cv2.destroyAllWindows()def nms_cnts(self, cnts, mask, min_area, nms=True):# 对检测到的边界框使用非极大值抑制bounds = [cv2.boundingRect(c) for c in cnts if cv2.contourArea(c) > min_area]if len(bounds) == 0:return []if not nms:return boundsscores = [self.calculate(b, mask) for b in bounds]bounds = np.array(bounds)scores = np.expand_dims(np.array(scores), axis=-1)keep = py_cpu_nms(np.hstack([bounds, scores]), self.nms_threshold)return bounds[keep]def calculate(self, bound, mask):x, y, w, h = boundarea = mask[y:y+h, x:x+w]pos = area > 0pos = pos.astype(np.float)# 得分应与检测框大小也有关系score = np.sum(pos)/(w*h)return scoredef pop(self, l, value):l.pop(0)l.append(value)return lif __name__ == "__main__":detector = Detector(name='test')detector.catch_video('./test.avi', bias_num=2, iterations=1,k_size=5, show_test=True, min_area=360, nms=False) (五)视频中的目标追踪效果:。
基于matlab的运动目标检测

1绪论1.1 课题研究背景及意义运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。
在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。
它可以减轻人的负担,并且提高了可靠性。
概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。
运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。
1.2 国内外研究现状运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后 ,与国外还有较大差距。
传统的视频目标提取大致可以分两类 ,一类以空间同性为准则 ,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。
如光流算法、主动轮廓模型算法。
此类方法结果较为准确但是运算量相对较大。
另一类算法主要以时间变化检测作为准则 ,这类算法主要通过帧差检测图像上的变化区域和不变区域 ,将运动物体与静止背景进行分割。
此类方法运算量小,提取结果不如前类方法准确。
此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。
本文将围绕以时间变化监测为基础的方法展开分析和讨论。
1.3 本文结构第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。
2 运动目标检测的一般过程2.1 背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。
Matlab命令大全

cplxpa ir 复数共轭成对排列cs c 余割csch双曲余割cum sum 元素累计和cumt rapz累计梯形积分cy linde r 创建圆柱D d dblq uad 二重数值积分dea l 分配宗量de blank删去串尾部的空格符dec2base十进制转换为X进制dec2bin十进制转换为二进制dec2hex 十进制转换为十六进制deco nv 多项式除、解卷del aunay Dela unay三角剖分del2离散La placi an差分demo Matl ab演示det行列式diag矩阵对角元素提取、创建对角阵diar y Mat lab指令窗文本内容记录d iff 数值差分、符号微分digit s 符号计算中设置符号数值的精度di r 目录列表di sp 显示数组d ispla y 显示对象内容的重载函数dlinm od 离散系统的线性化模型dmper m 矩阵D ulmag e-Men delso hn 分解dos执行DO S 指令并返回结果doub le 把其他类型对象转换为双精度数值drawn ow 更新事件队列强迫Matl ab刷新屏幕ds olve符号计算解微分方程Eee cho M文件被执行指令的显示edi t 启动M文件编辑器eig求特征值和特征向量eig s 求指定的几个特征值en d 控制流FOR等结构体的结尾元素下标eps浮点相对精度er ror 显示出错信息并中断执行err ortra p 错误发生后程序是否继续执行的控制erf 误差函数erfc误差补函数erf cx 刻度误差补函数erf inv 逆误差函数erro rbar带误差限的曲线图etree plot画消去树eval串演算指令ev alin跨空间串演算指令exist检查变量或函数是否已定义exit退出Mat lab环境exp指数函数exp and 符号计算中的展开操作expi nt 指数积分函数expm常用矩阵指数函数expm1 Pad e法求矩阵指数e xpm2Taylo r法求矩阵指数e xpm3特征值分解法求矩阵指数ey e 单位阵ezc ontou r 画等位线的简捷指令ez conto urf 画填色等位线的简捷指令ezg raph3画表面图的通用简捷指令e zmesh画网线图的简捷指令ezm eshc画带等位线的网线图的简捷指令ezpl ot 画二维曲线的简捷指令ezplo t3 画三维曲线的简捷指令ezpol ar 画极坐标图的简捷指令ezsur f 画表面图的简捷指令ez surfc画带等位线的表面图的简捷指令F f fact or 符号计算的因式分解f eathe r 羽毛图fee dback反馈连接fev al 执行由串指定的函数f ft 离散Fouri er变换fft2二维离散Fouri er变换fftn高维离散Fouri er变换ffts hift直流分量对中的谱field names构架域名fig ure 创建图形窗fill3 三维多边形填色图fin d 寻找非零元素下标fin dobj寻找具有指定属性的对象图柄finds tr 寻找短串的起始字符下标find sym 机器确定内存中的符号变量fi nvers e 符号计算中求反函数fi x 向零取整fl ag 红白蓝黑交错色图阵f liplr矩阵的左右翻转flipu d 矩阵的上下翻转flip dim 矩阵沿指定维翻转f loor向负无穷取整fl ops 浮点运算次数flo w Mat lab提供的演示数据fmi n 求单变量非线性函数极小值点(旧版)fmin bnd 求单变量非线性函数极小值点f mins单纯形法求多变量函数极小值点(旧版)fminu nc 拟牛顿法求多变量函数极小值点f minse arch单纯形法求多变量函数极小值点fnde r 对样条函数求导fnin t 利用样条函数求积分fn val 计算样条函数区间内任意一点的值fnpl t 绘制样条函数图形fop en 打开外部文件for构成for环用f ormat设置输出格式f ourie r Fou rier变换f plot返函绘图指令fp rintf设置显示格式f read从文件读二进制数据fsol ve 求多元函数的零点fu ll 把稀疏矩阵转换为非稀疏阵fun m 计算一般矩阵函数fun tool函数计算器图形用户界面fz ero 求单变量非线性函数的零点G g gamm a 函数gamm ainc不完全函数ga mmaln函数的对数gc a 获得当前轴句柄gcbo获得正执行"回调"的对象句柄gcf获得当前图对象句柄gco获得当前对象句柄geom ean 几何平均值get获知对象属性ge tfiel d 获知构架数组的域get frame获取影片的帧画面ginp ut 从图形窗获取数据gl obal定义全局变量gp lot 依图论法则画图gr adien t 近似梯度gr ay 黑白灰度g rid 画分格线gridd ata 规则化数据和曲面拟合gtex t 由鼠标放置注释文字gu ide 启动图形用户界面交互设计工具H hha rmmea n 调和平均值h elp 在线帮助helpw in 交互式在线帮助hel pdesk打开超文本形式用户指南h ex2de c 十六进制转换为十进制h ex2nu m 十六进制转换为浮点数h idden透视和消隐开关hilbHilbe rt矩阵hist频数计算或频数直方图hi stc 端点定位频数直方图histf it 带正态拟合的频数直方图hold当前图上重画的切换开关h orner分解成嵌套形式hot 黑红黄白色图hsv饱和色图I iif-el se-el seif条件分支结构if ft 离散Fouri er反变换iff t2 二维离散Fou rier反变换i fftn高维离散F ourie r反变换ifft shift直流分量对中的谱的反操作ifour ier F ourie r反变换i, j缺省的"虚单元"变量il aplac e Lap lace反变换i mag 复数虚部image显示图象ima gesc显示亮度图象im finfo获取图形文件信息imre ad 从文件读取图象imw rite把im write把图象写成文件ind2s ub 单下标转变为多下标i nf 无穷大in fo Ma thWor ks公司网点地址inlin e 构造内联函数对象inm em 列出内存中的函数名i nput提示用户输入in putna me 输入宗量名int 符号积分int2s tr 把整数数组转换为串数组inte rp1 一维插值inter p2 二维插值i nterp3 三维插值in terpn N维插值int erpft利用FF T插值intro Matl ab自带的入门引导inv求矩阵逆invh ilb H ilber t矩阵的准确逆i permu te 广义反转置isa 检测是否给定类的对象isch ar 若是字符串则为真is equal若两数组相同则为真ise mpty若是空阵则为真i sfini te 若全部元素都有限则为真isfi eld 若是构架域则为真i sglob al 若是全局变量则为真i shand le 若是图形句柄则为真i shold若当前图形处于保留状态则为真isi eee 若计算机执行IEEE规则则为真isin f 若是无穷数据则为真is lette r 若是英文字母则为真is logic al 若是逻辑数组则为真i smemb er 检查是否属于指定集i snan若是非数则为真i snume ric 若是数值数组则为真isobj ect 若是对象则为真is prime若是质数则为真isrea l 若是实数则为真issp ace 若是空格则为真is spars e 若是稀疏矩阵则为真is struc t 若是构架则为真isst udent若是Ma tlab学生版则为真izt rans符号计算Z反变换J j , Kkj acobi an 符号计算中求Jacob ian 矩阵je t 蓝头红尾饱和色jord an 符号计算中获得 Jord an标准型key board键盘获得控制权kronKrone cker乘法规则产生的数组L lla place Lapl ace变换las terr显示最新出错信息lastw arn 显示最新警告信息l easts q 解非线性最小二乘问题(旧版)le gend图形图例ligh ting照明模式line创建线对象li nes 采用plot画线色linm od 获连续系统的线性化模型linm od2 获连续系统的线性化精良模型l inspa ce 线性等分向量ln 矩阵自然对数loa d 从MA T文件读取变量l og 自然对数l og10常用对数log2底为2的对数l oglog双对数刻度图形logm矩阵对数logs pace对数分度向量lo okfor按关键字搜索M文件low er 转换为小写字母lsq nonli n 解非线性最小二乘问题l u LU分解M m mad平均绝对值偏差m agic魔方阵maple &nb, sp;运作 Ma ple格式指令m at2st r 把数值数组转换成输入形态串数组m ateri al 材料反射模式max找向量中最大元素mbuil d 产生E XE文件编译环境的预设置指令mcc创建MEX或EXE文件的编译指令me an 求向量元素的平均值m edian求中位数men uedit启动设计用户菜单的交互式编辑工具m esh 网线图m eshz垂帘网线图mes hgrid产生"格点"矩阵meth ods 获知对指定类定义的所有方法函数mex产生MEX文件编译环境的预设置指令m funli s 能被m fun计算的MAPL E经典函数列表m help引出 Ma ple的在线帮助min 找向量中最小元素m kdir创建目录mkpp逐段多项式数据的明晰化m od 模运算mo re 指令窗中内容的分页显示movi e 放映影片动画movie in 影片帧画面的内存预置mtayl or 符号计算多变量Taylo r级数展开N nndims求数组维数Na N 非数(预定义)变量na rgchk输入宗量数验证nargi n 函数输入宗量数narg out 函数输出宗量数nd grid产生高维格点矩阵newpl ot 准备新的缺省图、轴n extpo w2 取最接近的较大2次幂nnz 矩阵的非零元素总数nonze ros 矩阵的非零元素no rm 矩阵或向量范数nor mcdf正态分布累计概率密度函数n ormes t 估计矩阵2范数norm inv 正态分布逆累计概率密度函数n ormpd f 正态分布概率密度函数n ormrn d 正态随机数发生器not ebook启动Ma tlab和Word的集成环境null零空间num2str 把非整数数组转换为串numd en 获取最小公分母和相应的分子表达式nzma x 指定存放非零元素所需内存Ooo de1 非Stiff微分方程变步长解算器od e15sStiff微分方程变步长解算器od e23t适度Sti ff 微分方程解算器ode23tbStiff微分方程解算器ode45非Sti ff 微分方程变步长解算器odefi le OD E 文件模板od eget获知ODE选项设置参数o depha s2 OD E 输出函数的二维相平面图odeph as3 O DE 输出函数的三维相空间图odep lot O DE 输出函数的时间轨迹图odepr int 在Matla b指令窗显示结果odese t 创建或改写 OD E选项构架参数值ones全1数组opti mset创建或改写优化泛函指令的选项参数值o rient设定图形的排放方式ort h 值空间正交化P ppa ck 收集Matla b内存碎块扩大内存page dlg 调出图形排版对话框patch创建块对象pa th 设置Matla b搜索路径的指令patht ool 搜索路径管理器pa use 暂停pc ode 创建预解译P码文件pcolo r 伪彩图pea ks Ma tlab提供的典型三维曲面permu te 广义转置p i (预定义变量)圆周率p ie 二维饼图p ie3 三维饼图pink粉红色图矩阵pi nv 伪逆plo t 平面线图pl ot3 三维线图plotm atrix矩阵的散点图p lotyy双纵坐标图po issin v 泊松分布逆累计概率分布函数poi ssrnd泊松分布随机数发生器po l2car t 极或柱坐标变为直角坐标polar极坐标图pol y 矩阵的特征多项式、根集对应的多项式poly2str以习惯方式显示多项式pol y2sym双精度多项式系数转变为向量符号多项式poly der 多项式导数poly fit 数据的多项式拟合p olyva l 计算多项式的值poly valm计算矩阵多项式p ow2 2的幂p pval计算分段多项式p retty以习惯方式显示符号表达式print打印图形或SIMU LINK模型pr intsy s 以习惯方式显示有理分式prism光谱色图矩阵p rocre ad 向M APLE输送计算程序pro file函数文件性能评估器prop edit图形对象属性编辑器pwd显示当前工作目录Q qqu ad 低阶法计算数值积分q uad8高阶法计算数值积分(QUADL) qu it 推出Matla b 环境quiv er 二维方向箭头图qui ver3三维方向箭头图R rran d 产生均匀分布随机数ra ndn 产生正态分布随机数randp erm 随机置换向量ran ge 样本极差r ank 矩阵的秩rats有理输出rcon d 矩阵倒条件数估计rea l 复数的实部r eallo g 在实数域内计算自然对数realp ow 在实数域内计算乘方r ealsq rt 在实数域内计算平方根realm ax 最大正浮点数real min 最小正浮点数rec tangl e 画"长方框" rem 求余数r epmat铺放模块数组r eshap e 改变数组维数、大小re sidue部分分式展开r eturn返回ribbo n 把二维曲线画成三维彩带图rmfi eld 删去构架的域roo ts 求多项式的根rose数扇形图rot90 矩阵旋转90度rot ate 指定的原点和方向旋转rota te3d启动三维图形视角的交互设置功能rou nd 向最近整数圆整rre f 简化矩阵为梯形形式rs f2csf实数块对角阵转为复数特征值对角阵r sumsRiema nn和S ssav e 把内存变量保存为文件s catte r 散点图sca tter3三维散点图se c 正割sech双曲正割sem ilogx X轴对数刻度坐标图sem ilogy Y轴对数刻度坐标图ser ies 串联连接set 设置图形对象属性s etfie ld 设置构架数组的域se tstr将ASCI I码转换为字符的旧版指令s ign 根据符号取值函数s ignum符号计算中的符号取值函数sim 运行SIMU LINK模型si mget获取SIM ULINK模型设置的仿真参数simp le 寻找最短形式的符号解simpl ify 符号计算中进行简化操作sim set 对SIMUL INK模型的仿真参数进行设置simu link启动SIM ULINK模块库浏览器si n 正弦sinh双曲正弦siz e 矩阵的大小s lice立体切片图sol ve 求代数方程的符号解s pallo c 为非零元素配置内存sp arse创建稀疏矩阵sp conve rt 把外部数据转换为稀疏矩阵spd iags稀疏对角阵spf un 求非零元素的函数值s ph2ca rt 球坐标变为直角坐标s phere产生球面spi nmap色图彩色的周期变化spli ne 样条插值s pones用1置换非零元素spra ndsym稀疏随机对称阵spran k 结构秩spr ing 紫黄调春色图spr intf把格式数据写成串spy 画稀疏结构图sqr t 平方根sqr tm 方根矩阵s queez e 删去大小为1的"孤维" sscan f 按指定格式读串stai rs 阶梯图st d 标准差ste m 二维杆图st ep 阶跃响应指令str2doubl e 串转换为双精度值str2mat创建多行串数组s tr2nu m 串转换为数s trcat接成长串str cmp 串比较s trjus t 串对齐str match搜索指定串st rncmp串中前若干字符比较str rep 串替换s trtok寻找第一间隔符前的内容s truct创建构架数组s truct2cell把构架转换为元胞数组st rvcat创建多行串数组sub2i nd 多下标转换为单下标s ubexp r 通过子表达式重写符号对象subp lot 创建子图subs符号计算中的符号变量置换s ubspa ce 两子空间夹角sum元素和summe r 绿黄调夏色图super iorto设定优先级su rf 三维着色表面图sur face创建面对象sur fc 带等位线的表面图su rfl 带光照的三维表面图surfn orm 空间表面的法线sv d 奇异值分解s vds 求指定的若干奇异值switc h-cas e-oth erwis e 多分支结构s ym2po ly 符号多项式转变为双精度多项式系数向量sy mmmd对称最小度排序s ymrcm反向Cu thill-McKe e排序syms创建多个符号对象T tta n 正切tanh双曲正切tay lorto ol 进行Taylo r逼近分析的交互界面tex t 文字注释tf创建传递函数对象tic启动计时器tit le 图名toc关闭计时器tr apz 梯形法数值积分tr eelay out 展开树、林tree plot画树图tril下三角阵trim求系统平衡点t rimes h 不规则格点网线图tri surf不规则格点表面图t riu 上三角阵t ry-ca tch 控制流中的T ry-ca tch结构 type显示M文件Uuui conte xtmen u 创建现场菜单uicon trol创建用户控件ui menu创建用户菜单un mkpp逐段多项式数据的反明晰化u nwrap自然态相角up per 转换为大写字母V v var方差v ararg in 变长度输入宗量var argou t 变长度输出宗量vect orize使串表达式或内联函数适于数组运算v er 版本信息的获取vie w 三维图形的视角控制vo ronoi Voro noi多边形vp a 任意精度(符号类)数值W wwa rning显示警告信息w hat 列出当前目录上的文件what snew显示Mat lab中Readm e文件的内容wh ich 确定函数、文件的位置whil e 控制流中的Whi le环结构whi te 全白色图矩阵whit ebg 指定轴的背景色wh o 列出内存中的变量名wh os 列出内存中变量的详细信息win ter 蓝绿调冬色图wor kspac e 启动内存浏览器Xx , Y y ,Z z xlab el X轴名xo r 或非逻辑ye sinpu t 智能输入指令ylabe l Y轴名zer os 全零数组z label Z轴名zoom图形的变焦放大和缩小zt rans符号计算Z变换。
matlab中常用的函数

matlab中常⽤的函数Aabs 绝对值、模、字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象⼏何位置排列⼯具all 所有元素⾮零为真angle 相⾓ans 表达式计算结果的缺省变量名any 所有元素⾮全零为真area ⾯域图argnames 函数M⽂件宗量名asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦assignin 向变量赋值atan 反正切atan2 四象限反正切atanh 反双曲正切autumn 红黄调秋⾊图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的⾼层指令Bbar ⼆维直⽅图bar3 三维直⽅图bar3h 三维⽔平直⽅图barh ⼆维⽔平直⽅图base2dec X进制转换为⼗进制bin2dec ⼆进制转换为⼗进制blanks 创建空格串bone 蓝⾊调⿊⽩⾊图阵box 框状坐标轴break while 或for 环中断指令brighten 亮度控制Ccapture ;3版以前?捕获当前图形cart2pol 直⾓坐标变为极或柱坐标cart2sph 直⾓坐标变为球坐标cat 串接成⾼维数组caxis ⾊标尺刻度cd 指定当前⽬录cdedit 启动⽤户菜单、控件回调函数设计⼯具cdf2rdf 复数特征值对⾓阵转为实数块对⾓阵ceil 向正⽆穷取整cell 创建元胞数组cell2struct 元胞数组转换为构架数组celldisp 显⽰元胞数组内容cellplot 元胞数组内部结构图⽰char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数chi2rnd 分布随机数发⽣器chol Cholesky分解clabel 等位线标识cla 清除当前轴class 获知对象类别或创建对象clc 清除指令窗clear 清除内存变量和函数clf 清除图对象clock 时钟colorcube 三浓淡多彩交叉⾊图矩阵colordef 设置⾊彩缺省值colormap ⾊图colspace 列空间的基close 关闭指定窗⼝colperm 列排序置换向量comet 彗星状轨迹图comet3 三维彗星轨迹图compass 射线图compose 求复合函数cond ;逆?条件数condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计conj 复数共轭contour 等位线contourf 填⾊等位线contour3 三维等位线contourslice 四维切⽚等位线图conv 多项式乘、卷积cool 青紫调冷⾊图copper 古铜调⾊图cos 余弦cosh 双曲余弦cot 余切cplxpair 复数共轭成对排列csc 余割csch 双曲余割cumsum 元素累计和cumtrapz 累计梯形积分cylinder 创建圆柱Ddblquad ⼆重数值积分deal 分配宗量deblank 删去串尾部的空格符dec2base ⼗进制转换为X进制dec2bin ⼗进制转换为⼆进制dec2hex ⼗进制转换为⼗六进制deconv 多项式除、解卷delaunay Delaunay 三⾓剖分del2 离散Laplacian差分demo Matlab演⽰det ⾏列式diag 矩阵对⾓元素提取、创建对⾓阵diary Matlab指令窗⽂本内容记录diff 数值差分、符号微分digits 符号计算中设置符号数值的精度dir ⽬录列表disp 显⽰数组display 显⽰对象内容的重载函数dlinmod 离散系统的线性化模型dmperm 矩阵Dulmage-Mendelsohn 分解dos 执⾏DOS 指令并返回结果double 把其他类型对象转换为双精度数值drawnow 更新事件队列强迫Matlab刷新屏幕dsolve 符号计算解微分⽅程Eecho M⽂件被执⾏指令的显⽰edit 启动M⽂件编辑器eig 求特征值和特征向量eigs 求指定的⼏个特征值end 控制流FOR等结构体的结尾元素下标eps 浮点相对精度error 显⽰出错信息并中断执⾏errortrap 错误发⽣后程序是否继续执⾏的控制erf 误差函数erfc 误差补函数erfcx 刻度误差补函数erfinv 逆误差函数errorbar 带误差限的曲线图etreeplot 画消去树eval 串演算指令evalin 跨空间串演算指令exist 检查变量或函数是否已定义exit 退出Matlab环境expand 符号计算中的展开操作expint 指数积分函数expm 常⽤矩阵指数函数expm1 Pade法求矩阵指数expm2 Taylor法求矩阵指数expm3 特征值分解法求矩阵指数eye 单位阵ezcontour 画等位线的简捷指令ezcontourf 画填⾊等位线的简捷指令ezgraph3 画表⾯图的通⽤简捷指令ezmesh 画⽹线图的简捷指令ezmeshc 画带等位线的⽹线图的简捷指令ezplot 画⼆维曲线的简捷指令ezplot3 画三维曲线的简捷指令ezpolar 画极坐标图的简捷指令ezsurf 画表⾯图的简捷指令ezsurfc 画带等位线的表⾯图的简捷指令Ffactor 符号计算的因式分解feather ⽻⽑图feedback 反馈连接feval 执⾏由串指定的函数fft 离散Fourier变换fft2 ⼆维离散Fourier变换fftn ⾼维离散Fourier变换fftshift 直流分量对中的谱fieldnames 构架域名figure 创建图形窗fill3 三维多边形填⾊图find 寻找⾮零元素下标findobj 寻找具有指定属性的对象图柄findstr 寻找短串的起始字符下标findsym 机器确定内存中的符号变量finverse 符号计算中求反函数fix 向零取整flag 红⽩蓝⿊交错⾊图阵fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 矩阵沿指定维翻转floor 向负⽆穷取整flops 浮点运算次数flow Matlab提供的演⽰数据fmin 求单变量⾮线性函数极⼩值点;旧版?fminbnd 求单变量⾮线性函数极⼩值点fmins 单纯形法求多变量函数极⼩值点;旧版?fminunc 拟⽜顿法求多变量函数极⼩值点fminsearch 单纯形法求多变量函数极⼩值点fnder 对样条函数求导fnint 利⽤样条函数求积分fnval 计算样条函数区间内任意⼀点的值fnplt 绘制样条函数图形fopen 打开外部⽂件format 设置输出格式fourier Fourier 变换fplot 返函绘图指令fprintf 设置显⽰格式fread 从⽂件读⼆进制数据fsolve 求多元函数的零点full 把稀疏矩阵转换为⾮稀疏阵funm 计算⼀般矩阵函数funtool 函数计算器图形⽤户界⾯fzero 求单变量⾮线性函数的零点Ggamma 函数gammainc 不完全函数gammaln 函数的对数gca 获得当前轴句柄gcbo 获得正执⾏"回调"的对象句柄gcf 获得当前图对象句柄gco 获得当前对象句柄geomean ⼏何平均值get 获知对象属性getfield 获知构架数组的域getframe 获取影⽚的帧画⾯ginput 从图形窗获取数据global 定义全局变量gplot 依图论法则画图gradient 近似梯度gray ⿊⽩灰度grid 画分格线griddata 规则化数据和曲⾯拟合gtext 由⿏标放置注释⽂字guide 启动图形⽤户界⾯交互设计⼯具Hharmmean 调和平均值help 在线帮助helpwin 交互式在线帮助helpdesk 打开超⽂本形式⽤户指南hex2dec ⼗六进制转换为⼗进制hex2num ⼗六进制转换为浮点数hidden 透视和消隐开关hilb Hilbert矩阵hist 频数计算或频数直⽅图histc 端点定位频数直⽅图histfit 带正态拟合的频数直⽅图hold 当前图上重画的切换开关horner 分解成嵌套形式hot ⿊红黄⽩⾊图hsv 饱和⾊图Iif-else-elseif 条件分⽀结构ifft 离散Fourier反变换ifft2 ⼆维离散Fourier反变换ifftn ⾼维离散Fourier反变换ifftshift 直流分量对中的谱的反操作ifourier Fourier反变换i, j 缺省的"虚单元"变量ilaplace Laplace反变换imag 复数虚部image 显⽰图象imagesc 显⽰亮度图象imfinfo 获取图形⽂件信息imread 从⽂件读取图象imwrite 把imwrite 把图象写成⽂件ind2sub 单下标转变为多下标inf ⽆穷⼤info MathWorks公司⽹点地址inline 构造内联函数对象inmem 列出内存中的函数名input 提⽰⽤户输⼊inputname 输⼊宗量名int 符号积分int2str 把整数数组转换为串数组interp1 ⼀维插值interp2 ⼆维插值interp3 三维插值interpn N维插值interpft 利⽤FFT插值intro Matlab⾃带的⼊门引导inv 求矩阵逆invhilb Hilbert矩阵的准确逆ipermute ⼴义反转置isa 检测是否给定类的对象ischar 若是字符串则为真isequal 若两数组相同则为真isempty 若是空阵则为真isfinite 若全部元素都有限则为真isfield 若是构架域则为真isglobal 若是全局变量则为真ishandle 若是图形句柄则为真ishold 若当前图形处于保留状态则为真isieee 若计算机执⾏IEEE规则则为真isinf 若是⽆穷数据则为真isletter 若是英⽂字母则为真islogical 若是逻辑数组则为真ismember 检查是否属于指定集isnan 若是⾮数则为真isnumeric 若是数值数组则为真isobject 若是对象则为真isprime 若是质数则为真isreal 若是实数则为真isspace 若是空格则为真issparse 若是稀疏矩阵则为真isstruct 若是构架则为真isstudent 若是Matlab学⽣版则为真iztrans 符号计算Z反变换J , Kjacobian 符号计算中求Jacobian 矩阵jet 蓝头红尾饱和⾊jordan 符号计算中获得Jordan标准型keyboard 键盘获得控制权kron Kronecker乘法规则产⽣的数组Llaplace Laplace变换lasterr 显⽰最新出错信息lastwarn 显⽰最新警告信息leastsq 解⾮线性最⼩⼆乘问题;旧版?legend 图形图例lighting 照明模式line 创建线对象lines 采⽤plot 画线⾊linmod 获连续系统的线性化模型linmod2 获连续系统的线性化精良模型linspace 线性等分向量ln 矩阵⾃然对数load 从MAT⽂件读取变量log ⾃然对数log10 常⽤对数log2 底为2的对数loglog 双对数刻度图形logm 矩阵对数logspace 对数分度向量lookfor 按关键字搜索M⽂件lower 转换为⼩写字母lsqnonlin 解⾮线性最⼩⼆乘问题lu LU分解Mmad 平均绝对值偏差magic 魔⽅阵maple &nb, sp; 运作Maple格式指令mat2str 把数值数组转换成输⼊形态串数组material 材料反射模式max 找向量中最⼤元素mbuild 产⽣EXE⽂件编译环境的预设置指令mcc 创建MEX或EXE⽂件的编译指令mean 求向量元素的平均值median 求中位数menuedit 启动设计⽤户菜单的交互式编辑⼯具mesh ⽹线图meshz 垂帘⽹线图meshgrid 产⽣"格点"矩阵methods 获知对指定类定义的所有⽅法函数mex 产⽣MEX⽂件编译环境的预设置指令mfunlis 能被mfun计算的MAPLE经典函数列表mhelp 引出Maple的在线帮助min 找向量中最⼩元素mkdir 创建⽬录mkpp 逐段多项式数据的明晰化mod 模运算more 指令窗中内容的分页显⽰movie 放映影⽚动画moviein 影⽚帧画⾯的内存预置mtaylor 符号计算多变量Taylor级数展开Nndims 求数组维数NaN ⾮数;预定义?变量nargchk 输⼊宗量数验证nargin 函数输⼊宗量数nargout 函数输出宗量数ndgrid 产⽣⾼维格点矩阵newplot 准备新的缺省图、轴nextpow2 取最接近的较⼤2次幂nnz 矩阵的⾮零元素总数nonzeros 矩阵的⾮零元素norm 矩阵或向量范数normcdf 正态分布累计概率密度函数normest 估计矩阵2范数norminv 正态分布逆累计概率密度函数normpdf 正态分布概率密度函数normrnd 正态随机数发⽣器notebook 启动Matlab和Word的集成环境null 零空间num2str 把⾮整数数组转换为串numden 获取最⼩公分母和相应的分⼦表达式nzmax 指定存放⾮零元素所需内存Oode1 ⾮Stiff 微分⽅程变步长解算器ode15s Stiff 微分⽅程变步长解算器ode23t 适度Stiff 微分⽅程解算器ode23tb Stiff 微分⽅程解算器ode45 ⾮Stiff 微分⽅程变步长解算器odefile ODE ⽂件模板odeget 获知ODE 选项设置参数odephas2 ODE 输出函数的⼆维相平⾯图odephas3 ODE 输出函数的三维相空间图odeplot ODE 输出函数的时间轨迹图odeprint 在Matlab指令窗显⽰结果odeset 创建或改写ODE选项构架参数值ones 全1数组optimset 创建或改写优化泛函指令的选项参数值orient 设定图形的排放⽅式orth 值空间正交化Ppack 收集Matlab内存碎块扩⼤内存pagedlg 调出图形排版对话框patch 创建块对象path 设置Matlab搜索路径的指令pathtool 搜索路径管理器pause 暂停pcode 创建预解译P码⽂件pcolor 伪彩图peaks Matlab提供的典型三维曲⾯permute ⼴义转置pi ;预定义变量?圆周率pie ⼆维饼图pie3 三维饼图pink 粉红⾊图矩阵pinv 伪逆plot 平⾯线图plot3 三维线图plotmatrix 矩阵的散点图plotyy 双纵坐标图poissinv 泊松分布逆累计概率分布函数poissrnd 泊松分布随机数发⽣器pol2cart 极或柱坐标变为直⾓坐标polar 极坐标图poly 矩阵的特征多项式、根集对应的多项式poly2str 以习惯⽅式显⽰多项式poly2sym 双精度多项式系数转变为向量符号多项式polyder 多项式导数polyfit 数据的多项式拟合polyval 计算多项式的值polyvalm 计算矩阵多项式pow2 2的幂ppval 计算分段多项式pretty 以习惯⽅式显⽰符号表达式print 打印图形或SIMULINK模型printsys 以习惯⽅式显⽰有理分式prism 光谱⾊图矩阵procread 向MAPLE输送计算程序profile 函数⽂件性能评估器propedit 图形对象属性编辑器pwd 显⽰当前⼯作⽬录Qquad 低阶法计算数值积分quad8 ⾼阶法计算数值积分(QUADL)quit 推出Matlab 环境quiver ⼆维⽅向箭头图quiver3 三维⽅向箭头图R rrand 产⽣均匀分布随机数randn 产⽣正态分布随机数randperm 随机置换向量range 样本极差rank 矩阵的秩rats 有理输出rcond 矩阵倒条件数估计real 复数的实部reallog 在实数域内计算⾃然对数realpow 在实数域内计算乘⽅realsqrt 在实数域内计算平⽅根realmax 最⼤正浮点数realmin 最⼩正浮点数rectangle 画"长⽅框"rem 求余数repmat 铺放模块数组reshape 改变数组维数、⼤⼩residue 部分分式展开return 返回ribbon 把⼆维曲线画成三维彩带图rmfield 删去构架的域roots 求多项式的根rose 数扇形图rot90 矩阵旋转90度rotate 指定的原点和⽅向旋转rotate3d 启动三维图形视⾓的交互设置功能round 向最近整数圆整rref 简化矩阵为梯形形式rsf2csf 实数块对⾓阵转为复数特征值对⾓阵rsums Riemann和Ssave 把内存变量保存为⽂件scatter 散点图scatter3 三维散点图sec 正割sech 双曲正割semilogx X轴对数刻度坐标图semilogy Y轴对数刻度坐标图series 串联连接set 设置图形对象属性setfield 设置构架数组的域setstr 将ASCII码转换为字符的旧版指令sign 根据符号取值函数signum 符号计算中的符号取值函数sim 运⾏SIMULINK模型simget 获取SIMULINK模型设置的仿真参数simple 寻找最短形式的符号解simplify 符号计算中进⾏简化操作simset 对SIMULINK 模型的仿真参数进⾏设置simulink 启动SIMULINK模块库浏览器sin 正弦sinh 双曲正弦size 矩阵的⼤⼩slice ⽴体切⽚图solve 求代数⽅程的符号解spalloc 为⾮零元素配置内存sparse 创建稀疏矩阵spconvert 把外部数据转换为稀疏矩阵spdiags 稀疏对⾓阵spfun 求⾮零元素的函数值sph2cart 球坐标变为直⾓坐标sphere 产⽣球⾯spinmap ⾊图彩⾊的周期变化spline 样条插值spones ⽤1置换⾮零元素sprandsym 稀疏随机对称阵sprank 结构秩spring 紫黄调春⾊图sprintf 把格式数据写成串spy 画稀疏结构图sqrt 平⽅根sqrtm ⽅根矩阵squeeze 删去⼤⼩为1的"孤维" sscanf 按指定格式读串stairs 阶梯图std 标准差stem ⼆维杆图step 阶跃响应指令str2double 串转换为双精度值str2mat 创建多⾏串数组str2num 串转换为数strcat 接成长串strcmp 串⽐较strjust 串对齐strmatch 搜索指定串strncmp 串中前若⼲字符⽐较strrep 串替换strtok 寻找第⼀间隔符前的内容struct 创建构架数组struct2cell 把构架转换为元胞数组strvcat 创建多⾏串数组sub2ind 多下标转换为单下标subexpr 通过⼦表达式重写符号对象subplot 创建⼦图subs 符号计算中的符号变量置换subspace 两⼦空间夹⾓sum 元素和summer 绿黄调夏⾊图superiorto 设定优先级surf 三维着⾊表⾯图surface 创建⾯对象surfc 带等位线的表⾯图surfl 带光照的三维表⾯图surfnorm 空间表⾯的法线svd 奇异值分解svds 求指定的若⼲奇异值switch-case-otherwise 多分⽀结构sym2poly 符号多项式转变为双精度多项式系数向量symmmd 对称最⼩度排序symrcm 反向Cuthill-McKee排序syms 创建多个符号对象Tttan 正切tanh 双曲正切taylortool 进⾏Taylor逼近分析的交互界⾯text ⽂字注释tf 创建传递函数对象tic 启动计时器title 图名toc 关闭计时器trapz 梯形法数值积分treelayout 展开树、林treeplot 画树图tril 下三⾓阵trim 求系统平衡点trimesh 不规则格点⽹线图trisurf 不规则格点表⾯图triu 上三⾓阵try-catch 控制流中的Try-catch结构type 显⽰M ⽂件Uuicontextmenu 创建现场菜单uicontrol 创建⽤户控件uimenu 创建⽤户菜单unmkpp 逐段多项式数据的反明晰化unwrap ⾃然态相⾓upper 转换为⼤写字母V vvar ⽅差varargin 变长度输⼊宗量varargout 变长度输出宗量vectorize 使串表达式或内联函数适于数组运算ver 版本信息的获取view 三维图形的视⾓控制voronoi Voronoi多边形vpa 任意精度;符号类?数值Wwarning 显⽰警告信息what 列出当前⽬录上的⽂件whatsnew 显⽰Matlab中Readme⽂件的内容which 确定函数、⽂件的位置while 控制流中的While环结构white 全⽩⾊图矩阵whitebg 指定轴的背景⾊who 列出内存中的变量名whos 列出内存中变量的详细信息winter 蓝绿调冬⾊图workspace 启动内存浏览器X x , Y y , Z zxlabel X轴名xor 或⾮逻辑yesinput 智能输⼊指令ylabel Y轴名zeros 全零数组zlabel Z轴名zoom 图形的变焦放⼤和缩⼩ztrans 符号计算Z变换。
基于matlab的运动目标检测

1 绪论1.1 课题研究背景及意义运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。
在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。
它可以减轻人的负担,并且提高了可靠性。
概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。
运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。
1.2 国内外研究现状运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后,与国外还有较大差距。
传统的视频目标提取大致可以分两类,一类以空间同性为准则,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。
如光流算法、主动轮廓模型算法。
此类方法结果较为准确但是运算量相对较大。
另一类算法主要以时间变化检测作为准则,这类算法主要通过帧差检测图像上的变化区域和不变区域,将运动物体与静止背景进行分割。
此类方法运算量小,提取结果不如前类方法准确。
此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。
本文将围绕以时间变化监测为基础的方法展开分析和讨论。
1.3 本文结构第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。
2运动目标检测的一般过程2.1 背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。
此时,图像中的背景区域固定不动。
第五章光电信息处理技术成像目标探测与跟踪技术

VSAM
• 使用架设在高处多方位旋转云台上的单个摄像机,可以全方位地实施视 频监控。系统首先有规律地初始化一系列背景图像,然后利用基于特征区域的 方法将实际摄录的视频图与相应的背景图作匹配,再利用背景减除法检测运动 目标。
VSAM
• 由于传统的卡尔曼滤波方法只能处理单峰问题,该系统对传统的卡尔曼滤 波思想进行了扩展,并使用了带目标模板更新的相关匹配算法实现了多目标的 跟踪。
➢ Step5 使用卡尔曼滤波器预测车辆在下一帧中的可能 位置。
➢ Step6 在预测区域周围对各个车辆进行匹配跟踪。转 Step2,进行下一轮跟踪。
实验结果
(a)遮挡模型
(b)原始遮挡图像
(c)分割处理后 (d)遮挡模型与运动目标匹配
夜晚车辆检测结果
普通路面检测结果
(a)序列某一帧
(b)混合高斯模型检测结果
分片跟踪
遮挡下的跟踪
分片跟踪
目标表现模型的变化时的跟踪
目标尺度发生变化
应用举例:车辆检测与跟踪
智能交通系统: ( Intelligent Transport Systems, ITS)
车辆检测与跟踪概述
影响车辆检测和跟踪的主要因素: (1)车辆自身阴影; (2)车辆间相互遮挡或车辆被背景中物体遮挡; (3)同车型车辆之间具有较大的相似性; (4)光线突变; (5)夜晚和雨、雪等恶烈天气等。 主要针对(1)、(2)两种情况开展研究
将顶层金字塔求得的参数集隐射到金字塔的中间层,并对 该层进行全局运动估计,求得相应的运动参数;
将金字塔中间层的参数集映射到金字塔的底层, 对该层进行 全局运动估计,求得该层的运动参数集。
利用求得的最终参数集,对图像进行运动补偿,将运动补 偿后的图像与前一帧图像进行差值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三帧差法(Three-Frame Difference Method)是一种常用的视频处理算法,用于检测视频序列中的运动目标。
其基本思想是利用连续三帧图像之间的差异来提取运动物体的信息。
下面是一个简单的MATLAB实现示例:
matlab复制代码
% 读取视频文件
video = VideoReader('your_video_file.mp4');
% 初始化变量
prev_frame = readFrame(video);
curr_frame = readFrame(video);
next_frame = readFrame(video);
% 转换帧为灰度图像
prev_gray = rgb2gray(prev_frame);
curr_gray = rgb2gray(curr_frame);
next_gray = rgb2gray(next_frame);
% 计算帧间差异
diff1 = abs(double(curr_gray) - double(prev_gray));
diff2 = abs(double(next_gray) - double(curr_gray));
% 三帧差法
motion_map = diff1 & diff2;
% 显示结果
imshow(motion_map);
% 循环处理视频帧
while hasFrame(video)
prev_frame = curr_frame;
curr_frame = next_frame;
next_frame = readFrame(video);
% 转换帧为灰度图像
prev_gray = rgb2gray(prev_frame);
curr_gray = rgb2gray(curr_frame);
next_gray = rgb2gray(next_frame);
% 计算帧间差异
diff1 = abs(double(curr_gray) - double(prev_gray));
diff2 = abs(double(next_gray) - double(curr_gray));
% 三帧差法
motion_map = diff1 & diff2;
% 显示结果
imshow(motion_map);
% 暂停以便观察结果
pause(0.01);
end
% 释放视频文件
release(video);
在这个示例中,我们首先使用VideoReader对象读取视频文件,并将连续的三帧转换为灰度图像。
然后,我们计算当前帧与前一帧以及下一帧与当前帧之间的差异,并使用逻辑与操作将两个差异图像合并为一个运动映射图像。
最后,我们使用imshow函数显示运动映射图像,并使用pause函数暂停以便观察结果。
请注意,这只是一个简单的示例,可能需要根据具体的应用场景进行调整和优化。
例如,您可能需要调整阈值以过滤掉噪声,或者使用形态学操作来平滑运动映射图像。
此外,您还可以使用MATLAB的Video Processing Toolbox中的其他函数来增强运动检测的效果。