Matlab PCA+SVM人脸识别(二)——GUI界面设计

FreeRTOS中断与同步 FreeRTOS为中断提供了丰富的API(),旨在保持中断服务例程尽量的短小。此时不再在中断服务程序中进行中断的处理,而是告知任务,此时需要某个任务进行中断服务例程的后续处理任务了。缩减中断服务程序出于如下的考虑: 一旦进入中断服务程序,即使最高优先级的任务都不能被执行 中断服务程序会打乱一个任务的开始、执行时间点 一旦进入中断,新的低优先级的中断将不能被响应,过长的中断服务例程会增加这个风险 如果中断处理都放到中断中进行,软件处理人员需要注意单片机的片上资源可能同时被任务/中断服务程序访问,比.. 阅读详情

声明:本文转载自http://blog.youkuaiyun.com/light_lj/article/details/26747269

上一篇介绍了人脸识别的主要算法,为了便于操作和,使界面更加友善,在之前的基础上做了GUI开发,界面如下:


GUI界面的主程序:
保存为faceGUI.m文件,若你已经添加过当前文件所在的路径,那么在Matlab的command window里写入faceGUI即可运行
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. global h_axes1;  
  2. global h_axes2;  
  3. global edit2;  
  4. h_f=figure('name','人脸识别系统','position',[300,200,600,400]);  
  5. clf reset;  
  6. set(h_f, 'defaultuicontrolfontsize' ,12);    
  7. set(h_f, 'defaultuicontrolfontname' , '宋体' );    
  8.   
  9. h_axes1=axes('parent',h_f,'position',[0.2 0.28 0.25 0.56],'Unit','normalized','visible','off');  
  10. h_axes2=axes('parent',h_f,'position',[0.55 0.28 0.25 0.56],'Unit','normalized','visible','off');  
  11.   
  12. figcolor=get(h_f,'color');  
  13. edit2=uicontrol(h_f,'style','text','position',[150,330,300,40],'backgroundcolor',figcolor);  
  14. button_open=uicontrol(h_f,'style','push','string','选择照片','position',[250 50 100 50],'callback','GUIopen');  
  15. button_recg=uicontrol(h_f,'style','push','string','测试准确率','position',[100 50 100 50],'callback','face');  
  16. button_match=uicontrol(h_f,'style','push','string','图像匹配','position',[400 50 100 50],'callback','GUIrecg');  
button_recg即显示为测试准确率的按键的回调函数为face.m,但是为了让程序运行的进程在界面上可以动态显示,需要对原来的程序做一些修改,具体如下:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. clc,clear  
  2. npersons=40;%选取40个人的脸  
  3. global imgrow;  
  4. global imgcol;  
  5. global edit2  
  6. imgrow=112;  
  7. imgcol=92;  
  8.   
  9. set(edit2,'string','读取训练数据......')%显示在句柄为edit2的文本框里  
  10. drawnow     %更新窗口的内容,不然程序结束时才会显示,这样只能看到最后一句  
  11. f_matrix=ReadFace(npersons,0);%读取训练数据  
  12. nfaces=size(f_matrix,1);%样本人脸的数量  
  13.   
  14. set(edit2,'string','训练数据PCA特征提取......')  
  15. drawnow  
  16. mA=mean(f_matrix);  
  17. k=20;%降维至20维  
  18. [pcaface,V]=fastPCA(f_matrix,k,mA);%主成分分析法特征提取  
  19.   
  20. set(edit2,'string','训练数据规范化......')  
  21. drawnow  
  22. lowvec=min(pcaface);  
  23. upvec=max(pcaface);  
  24. scaledface = scaling( pcaface,lowvec,upvec);  
  25.   
  26. set(edit2,'string','SVM样本训练......')  
  27. drawnow  
  28. gamma=0.0078;  
  29. c=128;  
  30. multiSVMstruct=multiSVMtrain( scaledface,npersons,gamma,c);  
  31. save('recognize.mat','multiSVMstruct','npersons','k','mA','V','lowvec','upvec');  
  32.   
  33. set(edit2,'string','读取测试数据......')  
  34. drawnow  
  35. [testface,realclass]=ReadFace(npersons,1);  
  36.   
  37. set(edit2,'string','测试数据特征降维......')  
  38. drawnow  
  39. m=size(testface,1);  
  40. for i=1:m  
  41.     testface(i,:)=testface(i,:)-mA;  
  42. end  
  43. pcatestface=testface*V;  
  44.   
  45. set(edit2,'string','测试数据规范化......')  
  46. drawnow  
  47. scaledtestface = scaling( pcatestface,lowvec,upvec);  
  48.   
  49. set(edit2,'string','SVM样本分类......')  
  50. drawnow  
  51. class= multiSVM(scaledtestface,multiSVMstruct,npersons);  
  52. set(edit2,'string','测试完成!')  
  53. accuracy=sum(class==realclass)/length(class);  
  54. msgbox(['识别准确率:',num2str(accuracy*100),'%。'])  
button_open即显示为”选择照片“的按钮的回调函数是GUIopen.m,其内容如下:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. global h_axes1  
  2. [filename,pathname]=uigetfile({'*.pgm';'*.jpg';'*.tif';'*.*'},'请选择一张用于识别的照片');  
  3. if filename==0  
  4.     msgbox('请选择一张照片文件')  
  5. else  
  6.     filepath=[pathname,filename];  
  7.     axes(h_axes1);  
  8.     imshow(imread(filepath));  
  9. end  
button_recg 即显示为”图像匹配“的按钮的回调函数是GUIrecg.m,其内容如下:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. global h_axes1  
  2. global h_axes2  
  3. global edit2  
  4. load('recognize.mat');  
  5. set(edit2,'string','读取测试数据......')  
  6. drawnow  
  7. disp('读取测试数据...')  
  8. disp('.................................................')  
  9. img=getimage(h_axes1);%获得之前选中的照片的信息  
  10. if isempty(img)  
  11.     msgbox('请先选择一张图片!')  
  12.     break  
  13. end  
  14. testface=img(:)';  
  15. set(edit2,'string','测试数据降维......')  
  16. drawnow  
  17. disp('测试数据特征降维...')  
  18. disp('.................................................')  
  19. Z=double(testface)-mA;  
  20. pcatestface=Z*V;  
  21. set(edit2,'string','测试特征数据规范化......')  
  22. drawnow  
  23. disp('测试特征数据规范化...')  
  24. disp('.................................................')  
  25. scaledtestface=-1+(pcatestface-lowvec)./(upvec-lowvec)*2;  
  26. set(edit2,'string','SVM样本识别......')  
  27. drawnow  
  28. disp('SVM样本识别...')  
  29. disp('.................................................')  
  30. voting=zeros(1,npersons);  
  31. for i=1:npersons-1  
  32.     for j=i+1:npersons  
  33.         class=svmclassify(multiSVMstruct{i}{j},scaledtestface);  
  34.         voting(i)=voting(i)+(class==1);  
  35.         voting(j)=voting(j)+(class==0);  
  36.     end  
  37. end  
  38. [~,class]=max(voting);  
  39. set(edit2,'string','识别完成!')  
  40. drawnow  
  41. axes(h_axes2);  
  42. imshow(imread(['E:\ORL_face\s',num2str(class),'\1.pgm']));  
  43. msgbox(['样本识别为第',num2str(class),'个人'])  

转载请您尊重作者的劳动,完整保留 文章 出处 以及 文章链接 ,谢谢您的支持!
欢迎您参与讨论~让我们共同进步~

基于MATLAB,运用PCA+SVM的特征脸方法人脸识别 概述: 阅读详情

相关推荐

基于PCA的人脸识别_Matlab实现(个人研读之后的一些总结)

以下是我在查阅相关文献之后的一些个人的总结,望大神们指正。基于PCA的人脸识别PCA简介这是百度百科的解析: “对于一个训练集,100个对象模板,特征是10维,那么它可以建立一个100*10的矩阵,作为样本。求这个样本的协方差矩阵,得到一个10*10的协方差矩阵,然后求出这个协方差矩阵的特征值和特征向量,应该有10个特征值和特征向量,我们根据特征值的大小,取前四个特征值所对应的特征向量,构成一个1

peterchan88的专栏 1万+

matlab GUI的设计和研究,并用LPCC+SVM分类做界面展示

第一步 输入GUIDE 然后选择新建一个文档 在界面上选择一个按钮,选择一个图像显示框 那么就可以实现编程处理了 建立一个按钮,在pushbutoopn的下面写入代码 x=1:100 r=sin(x) plot(x,r) 然后就可以运行出来结果了 ...

matlab_python22的博客 335

基于PCA 人脸识别/人脸识别算法/人脸检测程序源码MATLAB ELM+PCA人脸识别 PCA人脸识别matlab代码 基于PCA算法的人脸识别

1、基于PCA的人脸识别代码 2、MATLAB ELM+PCA人脸识别 2、基于PCA的人脸识别(matlab)(采用PCA算法进行人脸识别,通过抽取人脸的主要成 分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与训 练样本库中的人脸图像比较进行识别选择最佳匹配人脸) 3、OpenCV的PCA人脸识别 4、PCA+GUI的人脸识别程序matlab 5、PCA人脸识别matlab代码(包括测试,集归) 6、PCA-SVM人脸识别代码(采用PCA进行人脸特征脸的提取,基于osu-svm进

m0_68308718的博客 3259

【人脸识别】基于matlab GUI PCA+SVM人脸识别(准确率)【含Matlab源码 823期】

PCA+SVM人脸识别(准确率) 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 4453

基于MATLAB GUI的人脸识别系统:使用PCA和SVM算法

首先,将所有预处理后的人脸图像展平为一维向量,并构建一个人脸矩阵,其中每一列代表一个人脸图像。通过以上步骤,我们实现了一个基于MATLAB GUI的人脸识别系统,使用PCA提取人脸图像的特征,并使用SVM分类器进行识别。在本文中,我们将介绍如何使用MATLAB的GUI界面来构建一个基于主成分分析(PCA)和支持向量机(SVM)算法的人脸识别系统。在GUI界面中,我们将提供人脸图像的输入框,用户可以选择一张待识别的人脸图像。然后,我们将对该图像进行与训练数据集相同的预处理,并使用PCA提取其特征向量。

DevGlider的博客 266

【人脸识别】基于matlab GUI SVM和PCA人脸识别【含Matlab源码 369期】

SVM和PCA人脸识别 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2555

基于SVM算法的人脸表情识别【人工智能】

目录一、 一、

wanerXR的博客 1413

【人脸识别】SVM和PCA人脸识别【含GUI Matlab源码 369期】

SVM和PCA人脸识别 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1492

matlab人脸识别动态界面,Matlab PCA+SVM人脸识别(二)——GUI界面设计

上一篇介绍了人脸识别的主要算法,为了便于操作和,使界面更加友善,在之前的基础上做了GUI开发,界面如下: GUI界面的主程序:保存为faceGUI.m文件,若你已经添加过当前文件所在的路径,那么在Matlab的command window里写入faceGUI即可运行global h_axes1;global h_axes2;global edit2;h_f=figure('name','人脸识别系...

weixin_35702295的博客 890

【图像识别】基于svm支持向量机算法表情识别matlab源码.md

【图像识别】基于svm支持向量机算法表情识别matlab源码.md

PCA+SVM 的MATLAB 自动识别表情识别系统.zip

基于 PCA+SVM 的人脸识别系统进行了总体设计,并利用ORL 人脸数据库在 Matlab 软件上运行程序,对人脸识别系统的实现进行仿真,通过Matlab GUI 对人机交互界面进行设计,增加系统可视化功能,最终实现人脸识别功能。

【人脸识别】PCA+SVM人脸识别(准确率)【含 GUI Matlab源码 823期】

PCA+SVM人脸识别(准确率) 完整代码,直接运行,适合小白!可提供运行操作视频!

Matlab912100926的博客 1416

三相逆变器拓扑结构的分析及应用场景

三相逆变器是电力电子领域中广泛应用的一种设备,用于将直流电转换为交流电。不同的拓扑结构在性能、成本、复杂度和应用领域上存在差异。小编将在本文中将进一步拓展对三相逆变器拓扑结构的分析,并探讨其适用的应用场景。

道合顺的博客 2235

【人脸识别】PCA人脸识别【含GUI Matlab源码 748期】

PCA人脸识别 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 1305

解决创建conda环境时Solving environment: failed 和 ResolvePackageNotFound 的错误

环境配置文件是在别的机器上导出的,文件里的软件包是按照导出文件的机器配置的,因此导出的时候,把这些包的详细信息也导了出来,即第二个等号后面跟着的信息,当我们按照这个文件创建环境时,conda就会根据我们机器的配置信息,按照配置文件里包的详细信息,去找这个包,那当然找不到,结果发现“查无此包”,因此也就会报上面的错误。上面找到了问题的所在之处,解决起来就很简单了,只需要在配置文件 environment.yml 中将包的详细信息删除,也就是第二个等号后面的内容。然而升级超级慢不说,也没有解决我的问题。...

番茄炒蛋三分糖 4万+

毕设别再硬肝了:我用 GPT + Codex 做项目、写论文,效率直接起飞

这个也是神器。你项目做完之后,最怕的是老师一问就懵。这时候你直接把你的项目发给它,让它模拟老师提问。这是我的毕业设计题目和项目简介,请你站在答辩老师角度,提出20个高频问题,并给出简洁好背的回答。要求:问题尽量贴近计算机专业本科毕业答辩。为什么选这个题目?技术选型为什么这样定?你的创新点是什么?系统难点是什么?数据库怎么设计的?你的模型为什么选这个?如果继续优化,下一步怎么做?这个对答辩真的帮助很大。说实话,如果没有 GPT + Codex,

m0_74100417的博客 1846

【人脸识别】基于matlab GUI PCA人脸识别(识别率)【含Matlab源码 802期】

PCA人脸识别(识别率) 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 3763

别再模拟IIC了!用STM32F103C8T6的硬件IIC驱动AT24C64,CubeMX配置+避坑指南

本文详细介绍了如何使用STM32F103C8T6的硬件IIC驱动AT24C64 EEPROM,通过CubeMX配置和HAL库函数解析,提供从模拟IIC到硬件IIC的完整解决方案。内容包括硬件IIC与模拟IIC的核心差异、CubeMX工程配置详解、HAL库驱动实战以及典型问题诊断与优化,帮助开发者构建更稳定高效的存储系统。

weixin_27038245的博客 188

【人脸识别】Gabor+SVM比较PCA+SVM人脸识别【含 GUI Matlab源码 685期】

Gabor+SVM比较PCA+SVM人脸识别 完整代码,直接运行,适合小白!可提供运行操作视频!

Matlab912100926的博客 1070

基于ESP32的无线DMX节点设计:从Art-Net/sACN到DMX512的协议转换与实现

在舞台灯光和建筑照明控制系统中,DMX512是行业标准的数字调光协议,用于控制灯具的亮度、颜色和效果。其原理是通过RS-485差分信号串行传输512个通道的数据,每个通道对应一个控制值。然而,传统有线DMX布线复杂、成本高,在移动装置、历史建筑或临时活动中部署困难。为解决此问题,业界发展出了基于以太网的灯光控制协议,如Art-Net和sACN(E1.31),它们将DMX数据封装在UDP包中,通过网络传输。这项技术的核心价值在于实现了灯光控制的网络化与无线化,大幅提升了系统的灵活性和部署效率。其典型应用场景包

weixin_30175731的博客 227

STM32 ADC+DMA实战:手把手教你驱动XGZP6847A压力传感器(附完整代码)

本文详细介绍了如何使用STM32的ADC和DMA外设驱动XGZP6847A压力传感器,包括硬件连接、ADC配置、DMA高效传输实现以及数据处理与校准方法。通过实战案例和完整代码,帮助开发者快速掌握高精度压力数据采集技术,适用于工业控制和医疗设备等领域。

weixin_42570484的博客 404

【人脸识别】基于matlab GUI Gabor+SVM比较PCA+SVM人脸识别【含Matlab源码 685期】

Gabor+SVM比较PCA+SVM人脸识别 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2200

古月居ros2入门21讲里面7.节点:机器人的工作细胞,报错:QSocketNotifier: Can only be used with threads started...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1824

【人脸识别】Gabor+SVM比较PCA+SVM人脸识别【含GUI Matlab源码 685期】

Gabor+SVM比较PCA+SVM人脸识别 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 1007

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 常用图像数据库
下一篇: Matlab PCA+SVM人脸识别(一)
MissCoder
博客等级 码龄11年 43粉丝 11原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值