K-L变换原理、图像压缩与人脸识别实战(附matlab代码)
目录
- 摘要
- K-L变换的基本原理
- K-L变换在图像压缩中的应用
- 研究背景及意义
- 数字图像压缩与发展现状
- K-L变换与图像压缩
- K-L变换在人脸识别中的应用
- 人脸识别
- K-L变换实现人脸识别
- 总结
- 参考文献
- matlab代码
- 致谢
摘要
K-L变换的基本原理
K-L变换在图像压缩中的应用
研究背景及意义
数字图像压缩与发展现状
K-L变换与图像压缩
K-L变换在人脸识别中的应用
人脸识别
K-L变换实现人脸识别
总结
参考文献
matlab代码
1. clear
2. %set the block size q
3. q=2;
4. face = imread('faces/1.bmp');
5. face = imresize(face,[256 256]);
6.
7. face = im2double(face);
8. subplot(1,2,1)
9. imshow(face)
10. [m,n] = size(face);
11. %initialize the parameters
12. b = [];
13. B = [];
14.
15. %divide the image into q*q blocks
16. for i = 1:m/q
17. for j = 1:n/q
18. t_l = (i-1)*q+1;
19. t_r = (i-1)*q+q;
20. b_l = (j-1)*q+1;
21. b_r = (j-1)*q+q;
22. block = face(t_l:t_r,b_l:b_r);
23. %get the blocks and order them lexicographically to form vector
24. bias = reshape(block,1,q^2);
25. B = [B;bias];
26. end
27. end
28. %compute the covariance matrix C
29. C = cov(B);
30. %get eigenvalues and eigenvectors
31. [V,D] = eig(C);
32. e = diag(D);
33. error=[];
34.
35. %utilize K-L Transform
36. c = V'*B';
37. k = 1;
38. X = V(:,4)*c(4,:);
39. X = X';
40. %Reformat the image
41. for i=1:m/q
42. for j=1:n/q
43. y1=reshape(X(k,1:q^2),q,q);
44. ii=(i-1)*q+1;
45. jj=(j-1)*q+1;
46. final(ii:ii+q-1,jj:jj+q-1)=y1;
47. k=k+1;
48. end
49. end
50. subplot(1,2,2)
51. final = reshape(final,[m m 3]);
52. imshow(final)
53.
54.
55.
56. clear;
57. Files = dir('faces\*.bmp'); %打开文件夹中所有图像
58. dir = 'faces\';
59. for k = 1:length(Files)
60. Filename = [dir, Files(k).name];
61. img = imread(Filename);
62. img = trans(img);
63. x(k,:) = img(:)';
64. end
65.
66. C =cov(x);
67. [V,D] = eig(C);
68. c = V'*x';
69.
70. eigface = reshape(V(:,end)*32,size(img));
71. imshow(eigface) %本征脸
72. d = diag(D);
73. info = 0;
74. info_sum = sum(d);
75. k = 0;
76. for i = 1:length(d)
77. info = info + d(length(d)-i+1);
78. if info/info_sum > 0.99
79. k = i;
80. break
81. end
82. end
83.
84. % 恢复
85. figure(2)
86. xx = [V(:,1:end)*c(1:end,:)]';
87. faces = [];
88. for i = 1:length(Files)
89. faces = [faces,reshape(xx(i,:),size(img))];
90. end
91. imshow(faces)
92.
93. % 比对识别
94. test = imread('zhb.bmp');
95. test = trans(test);
96. test = test(:);
97. c_test = V(:,end-k+1:end)'*test;
98. c_known = c(end-k+1:end,:);
99. dist = sum((c_known - c_test).^2).^(0.5);
100. [num,index] = min(dist);
101. disp([dir, Files(index).name])
102.
103.
104. function img = trans(img)
105. img = imresize(img,[64 64]);
106. img = rgb2gray(img);
107. img = im2double(img);
108. end
致谢
过了一年才想起来把之前写的大作业发出来,代码实现是由zhb完成的,测试和ppt是fy做的
ps:本人不搞模式识别,这个大报告仅供本科阶段课程参考,如有错误请一笑了之。
K-L变换原理、图像压缩与人脸识别实战(附matlab代码)相关推荐
- 情感识别:基于ELM、SOM分类器实现心率变异性信号情感识别,附matlab代码
情感识别:基于ELM.SOM分类器实现心率变异性信号情感识别,附matlab代码 情感识别是一项有趣而又具有挑战性的任务.它可以用于识别人类的情绪状态,从而在许多领域中产生影响,例如医疗保健.人工智能 ...
- 基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码
⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.手写体数字识别系统 ✳️ 2.1 MNIST 数据集 ✳️ 2.2 CNN ✳️ 2.3 网络训练 ✳️ 三.手写体数字识别结果 ✳️ 四.参考文献 ✳️ ...
- 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码
目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...
- 基于神经网络识别抑郁症附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 基于opencv和pillow实现人脸识别系统(附demo)
更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...
- 人脸检测MTCNN和人脸识别Facenet(附源码)
原文链接:人脸检测MTCNN和人脸识别Facenet(附源码) 在说到人脸检测我们首先会想到利用Harr特征提取和Adaboost分类器进行人脸检测(有兴趣的可以去一看这篇博客第九节.人脸检测之Haa ...
- android seetaface6_中科视拓宣布开源SeetaFace6人脸识别算法(附相关课程)
3月31日,中科视拓宣布开放SeetaFace6人脸识别算法. 2016年9月和2019年8月,中科视拓分别开源了SeetaFace1.0人脸识别引擎.SeetaFace2.0商用级人脸识别算法.Se ...
- DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现) @author:wepon @blog:http://blog.csdn.net/u012162 ...
- 【项目实战课】基于Pytorch的MTCNN与Centerloss人脸识别实战
欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的MTCNN与Centerloss人脸识别实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个 ...
最新文章
- keepalived介绍
- driver.class.php line: 109,thinkphp3.2.3 无法加载数据库驱动: Think\Db\Driver\
- Oracle函数大全2
- SpringBoot通过yml和xml文件配置日志输出
- C语言-输入十进制数转换为二进制数
- Vue组件间常用的通信方式总结
- 演示Go语言多返回值功能
- AccessibilityService的具体应用场景
- 按下回车键自动切换焦点到下个控件
- asp.net 配置 X-Frame-Options
- 【SequoiaDB|巨杉数据库】巨杉数据库快速入门之快速使用
- 电商屌丝生活,有点甜、有点咸
- 瞬时功率与有功功率计算公式
- MT7686芯片资料手册
- C盘系统文档迁移工具,一键解决重装,C盘爆满
- 统计学知识大梳理(三)
- 二维列表python
- 推荐这三款软件让你实现图片去雾化?
- SAP系统PP模块常用RFC接口
- 小冰创作诗歌机制详解
热门文章
- Forrester报告:人工智能将取代6%的工作岗位
- SQL Server如何存储特殊字符、上标、下标
- DBArtist之Oracle入门第1步: 如何安装Oracle 11g
- 一分钟了解阿里云产品:网络安全专家服务
- ARCHLINX设置静态ip使用
- Eclpise 和 MyEclipse 的区别
- 索引更新:刚发布的文章就能被搜到,这是怎么做到的?
- 计算机毕业设计中基于Java和MySQL的图书管理系统
- 【毕业答辩】毕业答辩PPT模板,风格的选择重要吗?
- python中a* b是什么意思_Python中的a+=b和a=a+b之间的区别是什么?