基于MATLAB的人体姿态的检测课程设计
- 格式:doc
- 大小:1.96 MB
- 文档页数:16
matlab人脸签到课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握Matlab基本操作,了解人脸签到系统的基本原理。
技能目标要求学生能够运用Matlab编程实现人脸识别和签到功能,提高实际操作能力。
情感态度价值观目标培养学生的创新意识,激发学生对技术的兴趣,培养学生团队协作和解决问题的能力。
通过分析课程性质、学生特点和教学要求,明确课程目标,将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容根据课程目标,选择和教学内容,确保内容的科学性和系统性。
本课程的教学大纲如下:1.Matlab基础:介绍Matlab的发展历程、界面组成和基本操作,使学生能够熟练使用Matlab进行编程。
2.图像处理基础:讲解图像处理的基本概念、原理和方法,为学生后面学习人脸识别打下基础。
3.人脸检测:介绍人脸检测的方法和算法,让学生掌握如何检测图像中的人脸位置。
4.人脸识别:讲解人脸识别的原理和技术,培养学生运用Matlab实现人脸识别功能。
5.签到系统设计:引导学生结合人脸识别技术设计一套签到系统,提高学生的实际操作能力。
三、教学方法本课程采用多种教学方法,激发学生的学习兴趣和主动性。
主要包括:1.讲授法:讲解Matlab基础、图像处理基础、人脸检测和人脸识别等相关知识。
2.案例分析法:分析实际案例,让学生了解人脸签到系统在实际应用中的优势和特点。
3.实验法:安排实验环节,让学生动手实践,培养学生的实际操作能力。
4.小组讨论法:学生进行小组讨论,分享学习心得,提高学生的团队协作能力。
四、教学资源选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备。
教学资源应该能够支持教学内容和教学方法的实施,丰富学生的学习体验。
1.教材:选用权威、实用的Matlab教材,为学生提供基础知识。
2.参考书:推荐学生阅读相关领域的经典著作,拓宽知识面。
3.多媒体资料:制作精美的PPT,便于学生理解和记忆。
创新性实验研究报告实验项目名称_matlab人脸识别_(3)选定脸部区域:2,3所得图像做andFace and FeaturesFace Region通过眼嘴确定人脸区域:通过肤色概率模型得到源图像概率图: (2)(3)选定脸部区域: (4)将2,3所得图像做通过脸部区域坐标确定人脸区域:,查阅相关书籍;根据课题条件,设计算法流程;算法步骤如下:寻找合适的肤色概率模型。
对概率模型进行阈值选择。
形成二值化图像五、实验结果与分析图1 椭圆圈定人脸图2 矩形圈定人脸另外,程序中还有在图片中定位眼嘴的语句,以方便程序后期调试,现象类似如下:图3 人脸特征标记、对实验现象、数据及观察结果的分析与讨论:本次实验程序对正面人脸的检测率基本能满足快速检测出图片中人脸的需要,也比较让人满意。
实现方法简便有效,如果能进一步增加滤波、光照补偿等步骤,将可以在满足实验要求的前提下进一步提高检测率和检测精度。
六、实验结论七、指导老师评语及得分:附件:源程序等。
clc;clear all;close all;x=imread('f.jpg');y=rgb2ycbcr(x);[a b c]=size(y);cb=double(y(:,:,2));cr=double(y(:,:,3));for i=1:a;for j=1:bw=[cb(i,j) cr(i,j)];m=[117.4316 148.5599];n=[260.1301 12.1430;12.1430 150.4574];p(i,j)=exp((-0.5)*(w-m)*inv(n)*(w-m)');endendz=p./max(max(p));%---------------------------------------------------------comp lextion probabilityimshow(z)%figure;imshow(x);th=0.5;for i=1:afor j=1:bif(z(i,j)>th)z(i,j)=1;elsez(i,j)=0;endendendfigure;imshow(z);title('Setthreshold')%-----------------------------------thresholdse=strel('square',3);f=imopen(z,se);f=imclose(f,se);%figure,imshow(f);%open and close processing;f=imfill(f,'holes');%figure,imshow(f);%fill holes in the Imgse1=strel('square',8);f=imerode(f,se1);f=imdilate(f,se1);%figure,imshow(f);%----------------------------------------------------erosion and expansion;[L,num]=bwlabel(f,4);for i=1:num;%region loop;[r,c]=find(L==i);len=max(r)-min(r)+1;wid=max(c)-min(c)+1;area_sq=len*wid;area=size(r,1);for j=1:size(r,1)%pixel loop;if(len/wid<.8)|(len/wid>2.4)|size(r,1)<200|area/area_sq<0.55L(r(j),c(j))=0;%not zero pixel =0;elsecontinue;endendendfigure;imshow(L);title('FaceRegion')%---------------------------------eliminate NOT face rengion;w=L&z;figure;imshow(w);title('Face and Features')%---------------------------recover the features of face[r c]=find(L~=0);r_min=min(r);r_max=max(r);c_min=min(c);c_max=max(c);figure;imshow(x);hold on%plot(round(.5*(c_max+c_min)),round(.5*(r_max+r_min)),'+')flg=0;for i=round(.5*(r_min+r_max)):-1:round(1/3*(r_max-r_min)+r_min)for j=round(.5*(c_max+c_min)):-1:round(1/3*(c_max-c_min)+c_min)if(w(i,round(j))==0)flg=1;break;endendif(flg==1),break,endendw(i,j)if(w(i,j)==0)e1_x=j;e1_y=i;%plot(j,i,'*')%--------------------------------------------------------Note left eyeflg=0;for i=round(.5*(r_min+r_max)):-1:round(1/3*(r_max-r_min)+r_min)for j=round(.5*(c_max+c_min)):round(2.2/3*(c_max-c_min)+c_min)if(w(i,j)==0)flg=1;break;endendif(flg==1)break,end;endw(i,j)e2_x=j;e2_y=i;%plot(j,i,'*')%--------------------------------------------------------Note right eyefor i=round(1/2*(r_max+r_min)):round(r_min+2/3*(r_max-r_min))if(w(round(i),round(.5*(c_max+c_min)))==0),break,endendw(i,round(.5*(c_max+c_min)))m_x=.5*(c_max+c_min);m_y=i;%plot(round(.5*(c_max+c_min)),i,'*')%-----------------------------------------Note mouthox=(e1_x+e2_x+m_x)/3;oy=(e1_y+e2_y-e1_x+e2_x)/2;a=2*(e2_x-e1_x);c=(e1_y+e2_y)/2-m_y;b=(a*a-c*c)^0.5;t=0:.01:2*pi;x=ox+.65*b*cos(t);y=oy+.8*a*sin(t);plot(x,y,'.')elserectangle('Position',[c_min r_min c_max-c_min r_max-r_min],'EdgeColor','r');title('Test Face Rec-ed')%---------------------------------------------test the face regionend。
基于视频的人体姿态检测一、设计目的和要求1。
根据已知要求分析视频监控中行人站立和躺卧姿态检测的处理流程,确定视频监中行人的检测设计的方法,画出流程图,编写实现程序,并进行调试,录制实验视频,验证检测方法的有效性,完成系统软件设计。
2。
基本教学要求:每人一台计算机,计算安装matlab、visio等软件。
二、设计原理2。
1图像分割中运动的运用(运动目标检测)首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。
噪声的影响,会使检测结果中出现一些本身背景的区域像素点被检测成运动区域,也可能是运动目标内的部分区域被漏检。
另外,背景的扰动,如树枝、树叶的轻微摇动,会使这部分也被误判断为运动目标,为了消除这些影响,首先对上一步的检测结果用形态学的方法进行处理,在找出经过形态学处理的后的连通域,计算每个连通域中的面积,对于面积小于一定值的区域,将其抛弃,不看做是前景运动目标。
2.2bwlabel函数用法:L = bwlabel(BW,n)[L,num] = bwlabel(BW,n),这里num返回的就是BW中连通区域的个数.返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。
n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8.四连通或八连通是图像处理里的基本感念:8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通.2.3 regionprops统计被标记的区域的面积分布,显示区域总数函数regionprops语法规则为:STATS = regionprops(L,properties)该函数用来测量标注矩阵L中每一个标注区域的一系列属性。
标题:基于Matlab的人体动作行为识别源代码摘要:本文将介绍使用Matlab实现人体动作行为识别的源代码,通过对传感器数据进行处理和分析,实现对人体动作的识别和分类。
文章将从数据采集、特征提取、分类模型建立等方面展开讨论,旨在帮助读者了解该领域的相关知识和技术,并为对该方向感兴趣的读者提供参考。
1. 背景介绍人体动作行为识别是一项涉及多个领域知识的交叉性研究,其应用领域包括但不限于健康监测、智能家居、体育训练等。
在本文中,我们将使用Matlab编程语言,结合相关的信号处理和机器学习算法,实现对人体动作行为的识别与分类。
2. 数据采集与处理在进行人体动作行为识别的研究中,首先需要对人体动作过程中的数据进行采集,并对采集到的数据进行预处理。
常用的数据采集设备包括加速度计、陀螺仪和磁力计等传感器,这些传感器可以获取到人体动作时所产生的加速度、角速度和磁场强度等数据。
在Matlab中,我们可以使用相关的工具箱对采集到的数据进行处理和分析,例如通过信号处理工具箱对数据进行滤波、降噪等处理,以保证数据的准确性和可靠性。
3. 特征提取与选择一旦获得了经过预处理的数据,接下来就需要对数据进行特征提取。
特征提取是指从原始数据中提取出具有代表性和区分性的特征,以便用于后续的分类和识别。
常用的特征提取方法包括时域特征、频域特征和时频域特征等。
在Matlab中,我们可以利用相关的函数和工具对数据进行特征提取,并通过数据可视化工具对提取的特征进行可视化展示,以便进一步分析特征的区分性和重要性。
4. 分类模型的建立一旦完成了特征提取,接下来就是建立分类模型。
分类模型是用来对提取的特征进行分类和识别的工具,常用的分类模型包括但不限于支持向量机、随机森林、神经网络等。
在Matlab中,我们可以利用相关的机器学习工具箱和深度学习工具箱对建立各种分类模型,并通过交叉验证和模型评估来评估模型的性能和准确性。
5. 源代码编写与实现基于以上的背景介绍和相关步骤,我们将使用Matlab编程语言来实现人体动作行为识别的源代码。
等级: 课 程 设 计课程名称课题名称 基于Matlab的人体指纹识别程序设计专 业班 级学 号姓 名指导老师年 月 日课程设计任务书课题名称 基于Matlab的人体指纹识别程序设计姓 名 专业 班级 学号指导老师课程设计时间教研室意见 意见: 审核人:一、任务及要求1)根据所学的知识和能力,利用Matlab软件设计程序实现根据指纹的大小、形状等特征,识别出不同的指纹;2)利用按键标志当前指纹识别的状态,例如录入状态、识别状态、清楚状态。
设计要求:1)对指纹识别的过程进行分析,掌握指纹识别系统算法的工作原理;2)进行指纹识别程序的方案设计;3)进行指纹识别程序的模块设计;4)要有必要的算法设计说明;5)写出课程设计报告。
报告中应包括原理框图、参数曲线分析、操作方法、算法分析、软件调试等,调试过程中遇到的问题,改进方法和总结体会;6)答辩。
二、进度安排周一:集中布置课程设计任务和相关事宜,查资料确定指纹识别程序设计总体方案。
周二~周五:完成人体指纹识别程序设计及仿真。
周六~周日:设计报告撰写,周日进行答辩和设计结果检查。
三、参考资料目 录1第1章 绪论............................................................................11.1 Matlab介绍 ......................................................................11.2 Matlab优势特点 ..................................................................11.3 指纹识别.........................................................................11.4 指纹识别技术的主要优点...........................................................2第2章 设计任务及要求...................................................................22.1 设计任务.........................................................................22.2 设计要求.........................................................................第3章 系统方案设计.....................................................................333.1 系统方案设计.....................................................................33.2 系统框图.........................................................................4第4章 系统软件设计.....................................................................44.1 主函数...........................................................................54.2 归一化和切割.....................................................................4.3 二值化...........................................................................794.4 细化.............................................................................4.5 中心点提取.......................................................................4.6 求特征点.........................................................................14164.7 指纹匹配.........................................................................17第5章 系统仿真及调试...................................................................20总 结..................................................................................错误!未定义书签。
matlab笑脸检测课程设计一、课程目标知识目标:1. 掌握MATLAB基本图像处理函数,如 imread、imshow 等;2. 了解人脸检测的基本原理,理解并掌握 Haar 特征分类器的使用方法;3. 学习利用 MATLAB 进行笑脸检测的基本步骤和编程技巧。
技能目标:1. 能够运用 MATLAB 独立读取、显示和保存图像;2. 能够运用 Haar 特征分类器进行人脸检测,并在此基础上实现笑脸检测;3. 能够对笑脸检测程序进行调试和优化,提高检测准确率。
情感态度价值观目标:1. 培养学生对图像处理和计算机视觉领域的兴趣,激发学生探索未知、勇于创新的精神;2. 培养学生的团队协作意识,使学生学会在项目中分工合作,共同解决问题;3. 增强学生的实践能力,让学生认识到理论联系实际的重要性。
分析课程性质、学生特点和教学要求,本课程旨在通过MATLAB笑脸检测项目的实践,使学生在掌握图像处理和笑脸检测基本知识的基础上,提高编程技能和实际应用能力。
课程目标具体、可衡量,有助于教师进行教学设计和评估,同时有助于学生明确学习成果,提高学习积极性。
二、教学内容1. MATLAB图像处理基础知识:- 图像读取、显示和保存(imread、imshow、imwrite);- 图像类型和数据结构;- 基本图像处理函数(如滤波、边缘检测等)。
2. 人脸检测原理及方法:- 人脸检测概述;- Haar特征分类器原理;- Viola-Jones人脸检测算法。
3. 笑脸检测实现:- 基于Haar特征的笑脸检测;- MATLAB编程实现笑脸检测;- 程序调试与优化。
4. 教学内容安排与进度:- 第一周:MATLAB图像处理基础知识学习;- 第二周:人脸检测原理及方法学习;- 第三周:笑脸检测编程实践;- 第四周:程序调试与优化,总结反馈。
5. 教材章节及内容:- 第1章:图像处理基础;- 第2章:人脸检测与识别;- 第3章:MATLAB图像处理与计算机视觉;- 附录:相关案例和源代码。
机器学习概述课程设计报告题目:MATLAB人脸识别系统姓名:**学号:**专业:**时间:2015/8/7目录一、课程设计的目的 ..............................................................................二、设计的内容与要求 ..........................................................................三、详细设计 ..........................................................................................四、课程设计的总结 ..............................................................................五、参考文献 ..........................................................................................一.课程设计的目的人脸识别作为一项新兴的科学研究项目,有着广泛的应用前景,而且随着计算机技术的更新发展,它的科学研究价值也越发凸显。
经过几十年的研发探讨,世界各大研究结构的研发人员的不断努力下,人脸识别技术一已取得丰硕的成果,可在一定限制条件下完成人脸的自动识别。
这些成果的取得更促进了人们对人脸识别这一课题的深入研究。
在电子商务飞速发展的今天,人脸识别系统的范畴一不足以涵括人脸识别的应用范围,在数字图像处理、视频领域、基于内容的检索等方面有着重要的应用价值。
二.设计的内容及要求1、选择KNN,聚类或SVM方法中的一种或其他机器学习方法的一种进行课程设计2、要求能完成具体的识别任务:如图像分割、语音识别、人脸识别3、要求识别的对象中有自己生活元素,比如图像中包括学校的图片或语音时本人的语音等。
基于Matlab的人脸检测实验设计作者:韩乐何烨秋高文华来源:《电脑知识与技术》2016年第22期摘要:人脸检测已经成为计算机视觉和模式识别领域中一个非常活跃的研究方向。
基于Matlab计算机视觉系统工具箱的人脸检测实验,首先介绍了手动检测的Matlab实现及其不足,然后利用计算机视觉系统工具箱实现人脸检测,并在此基础上设计实现了单一人脸视频检测,所有实验均提供了Matlab程序代码,最后提出了如何实现多目标人脸视频检测的思考题。
该实验方案通过实验操作增强学生对人脸检测的理解,激发学生进一步学习和研究的兴趣。
同时,对计算机视觉和模式识别相关课程起到很好的教学辅助作用,有效地改善了教学效果。
关键词:人脸检测;计算机视觉;Matlab;模式识别中图分类号:TP317.4 文献标识码:A 文章编号:1009-3044(2016)22-0165-02Abstract: Face detection has become an active research direction in the field of computer vision and pattern recognition. Based on computer vision system toolbox of Matlab, face detection experiments include three parts. Firstly,the Matlab codes of the manual detection is introduced and the forthcomings are anlysized, and then the computer vision system toolbox is used to achieve face detection, based on the toolbox the experiment of detecting the video images is designed.All the experiments are written in Matlab code.Finally exercises are put forward how to realize the multi object video face detection problems. The experimental program enhances the students' understanding of face detection, stimulate students' interest in further study and research. At the same time, the program plays a good role in teaching the related courses, i.e., computer vision and pattern recognition, and effectively improves the teaching effect.Key words: face detection; computer vision; Matlab; pattern recognition人脸检测的主要目的是在输入的整幅图像上寻找人脸区域,利用计算机把图像分割成人脸区域和非人脸区域两个部分。
基于视频的人体姿态检测一、设计目的和要求1.根据已知要求分析视频监控中行人站立和躺卧姿态检测的处理流程,确定视频监中行人的检测设计的方法,画出流程图,编写实现程序,并进行调试,录制实验视频,验证检测方法的有效性,完成系统软件设计。
2.基本教学要求:每人一台计算机,计算安装matlab、visio等软件。
二、设计原理2.1图像分割中运动的运用(运动目标检测)首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。
噪声的影响,会使检测结果中出现一些本身背景的区域像素点被检测成运动区域,也可能是运动目标内的部分区域被漏检。
另外,背景的扰动,如树枝、树叶的轻微摇动,会使这部分也被误判断为运动目标,为了消除这些影响,首先对上一步的检测结果用形态学的方法进行处理,在找出经过形态学处理的后的连通域,计算每个连通域中的面积,对于面积小于一定值的区域,将其抛弃,不看做是前景运动目标。
2.2 bwlabel函数用法:L = bwlabel(BW,n)[L,num] = bwlabel(BW,n),这里num返回的就是BW中连通区域的个数。
返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。
n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。
四连通或八连通是图像处理里的基本感念:8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通。
2.3 regionprops统计被标记的区域的面积分布,显示区域总数函数regionprops语法规则为:STATS = regionprops(L,properties)该函数用来测量标注矩阵L中每一个标注区域的一系列属性。
L中不同的正整数元素对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。
返回值STATS是一个长度为max(L(:))的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量。
Properties可以是由逗号分割的字符串列表、包含字符串的单元数组、单个字符串'all'或者'basic'。
如果properties等于字符串'all',则表4.1中的度量数据都将被计算;如果properties等于字符串'basic',则属性:'Area','Centroid'和'BoundingBox'将被计算。
'Area'——图像各个区域中像素总个数'BoundingBox' ——包含相应区域的最小矩形'Orientation' 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)三、设计内容3.1理论依据3.1.1应用背景与意义随着监控系统到位,以帮助人们甚至完成监控任务。
可以减少人力和财力的投入,由于就业监视人员进行。
另外,如果长时间不运动图像信息记录,保存几下,就失去了意义和视频监控系统的存储资源浪费存储空间。
因此,传统的监视系统浪费了大量的人力,并有可能引起报警,性能差的实时监控的泄漏。
监控等实时行为分析系统来识别人体,不仅可以替代监控人员的工作的一部分,提高监测系统的自动化水平,同时也提高监视存储的效率,还有一个广泛的应用,并在视频监视系统的潜在经济价值之前。
由于人的行为具有自由的伟大程度,因为身体宽松长裙不同程度和它的外貌和从图像捕获设备位置不同距离的表现风格将是一个很大的分歧,这是人的行为分析,找出了一定的难度。
但是,人类行为的实时分析,智能监控系统,以确定关键技术及其广阔的前景药,安全性,虚拟现实,军事和潜在的经济价值,国内外研究机构和学者越来越多的关注,并在许多全球领先的刊物和会议专题讨论。
美国和欧洲都进行了一些相关的研究项目。
3.1.2运动分割算法首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。
本次采用了基于累积差分和数学形态学处理的运动区域提取算法。
在时域窗口内,首先对图象进行降级处理得到灰度带图象,对灰度带差分图象累积并进行数学形态学处理得到运动目标的轨迹模版,将轨迹模版与当前帧差分图象与运算得到当前帧运动目标象素,最后进行多级数学形态学处理得到当前帧运动区域。
实验结果表明,该算法不仅能够对静止背景序列运动区域有较好的分割结果,而且在没有进行全局运动补偿的情况下,对部分运动背景序列也能成功的提取出运动区域。
3.1.3研究人体姿态的特征描述'BoundingBox' ——包含相应区域的最小矩形'Orientation' 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)3.2方案设计根据设计要求确定视频监控中行人分割和人体姿态识别的方法,选择确定运动目标检测、行人人体姿态特征信息提取实现方法。
画出流程图见附录2并对各部分功能进行说明。
(1)判断是否为人体在目标提取之前,首先要对输入的图片进行检测。
本文通过连通域的面积来检测判断目标是否为人体。
(2)人体目标提取如果是人体导入背景图片与背景图片做差,再通过背景差阈值分割法进行提取。
(4)行为识别在解决了以上的问题之后,接下来就是要选择一种合适的算法来进行人体姿态识别,这也是本文研究的重点和难点。
本文采用人体目标的连通区域的长宽比例和方向角的方法来对人体行为进行识别。
3.3程序设计根据设计要求确定视频中行人检测和人体姿态特征信息提取方法,进行程序设计,编写实现程序,使用matlab等软件。
3.3.1图像分割中运动的运用(运动目标检测)运动目标检测首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。
该段程序读取了视频从100帧到400帧的图像。
先对导入视频采用近似中值滤波背景模型参考图像实现运动目标分割,然后创建边长为3的方形结构元素,用于对分割结果形态学滤波。
原视频、近似中值滤波后的视频以及采用形态学滤波后的视频如图3.3.1—1所示图3.3.1—1原视频、近似中值滤波后的视频以及采用形态学滤波后的结果videoObj = VideoReader('gyz.avi');本程序使用了VideoReader函数,该函数用于读取视频文件对象。
函数调用格式:obj = VideoReader(filename)obj = VideoReader(filename,Name,Value)其中obj为结构体,包括如下成员:Name - 视频文件名Path - 视频文件路径Duration - 视频的总时长(秒)FrameRate - 视频帧速(帧/秒)NumberOfFrames - 视频的总帧数Height - 视频帧的高度Width - 视频帧的宽度se = strel('square',3);本程序通过创建方形结构元素,用于对分割结果形态学滤波。
pixInc = find(Idiff > 0);fmed(pixInc) = fmed(pixInc) + beta;pixDec = find(Idiff < 0);fmed(pixDec) = fmed(pixDec) - beta;背景差分法别名背景减法,背景差分法的原理是将当前的图像与背景图像进行差分来得到目标区域,这种方法能很好的识别和提取运动目标,是目前运动分割中最常用的一种方法。
但是需要构建一幅背景图像,这幅背景图像必须不含要检测的目标或其他不需要检测目标,并且应该能不断的更新来分辨当前背景的变化。
运用阈值法原理进行分割,阈值法是比较简单的图像分割方法,是一种常常运用的并行区域的技术。
阈值是用运在区分目标图片和背景图片的灰度门限。
如果要检测的图像只有目标和背景两类,那么只需要选取一个阈值这种方法称为单阈值分割,这种方法是将图像中每个像素中的灰度值与阈值相对比,灰度值大于阈值的算一种,灰度值小于阈值的为另一种。
如果图像中存在多个检测目标或无关目标,那么就选多个阈值将每个目标及背景区分开,这种方法称为多阈值分割阈值,由于本人只有一个目标则采用单阈值分割。
fg2 = imopen(fg,se);fg2 = imclose(fg2,se);对分割结果进行形态学滤波先进行了开操作,再进行闭操作。
开操作是一般使对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。
闭操作可使轮廓线更光滑,但与开操作相反的是,闭操作通常消弥狭窄的间断和长细的鸿沟,消除小的空洞,并填补轮廓线中的断裂。
3.3.2用bwlabel函数对连通域进行标号,并得到最大连通域[L,num]=bwlabel(fg2,4);%对连通域进行标记,num=6Bwlabel函数的用法:L = bwlabel(BW,n)[L,num] = bwlabel(BW,n),这里num返回的就是BW中连通区域的个数。
返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。
n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。
本程序使用的是4连通。
四连通或八连通是图像处理里的基本感念:8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通。
all = [ img_reg.Area];%求出6个连通域的像素个数[d,ind]=max(all);%得到面积最大的连通域本段bwlabel函数是对连通域进行标号,标完号后利用“Area”属性的参数找到面积最大的连通域,这个连通域即为视频中的人。
3.3.3根据regionprops函数的boundingbox和orientation的阈值分别检测视频中人体的站姿和躺卧两种姿势or = [img_reg.Orientation];函数regionprops语法规则为:STATS = regionprops(L,properties)该函数用来测量标注矩阵L中每一个标注区域的一系列属性。