目录

  • 摘要
  • 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代码)相关推荐

  1. 情感识别:基于ELM、SOM分类器实现心率变异性信号情感识别,附matlab代码

    情感识别:基于ELM.SOM分类器实现心率变异性信号情感识别,附matlab代码 情感识别是一项有趣而又具有挑战性的任务.它可以用于识别人类的情绪状态,从而在许多领域中产生影响,例如医疗保健.人工智能 ...

  2. 基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.手写体数字识别系统 ✳️ 2.1 MNIST 数据集 ✳️ 2.2 CNN ✳️ 2.3 网络训练 ✳️ 三.手写体数字识别结果 ✳️ 四.参考文献 ✳️ ...

  3. 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码

    目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...

  4. 基于神经网络识别抑郁症附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  5. 基于opencv和pillow实现人脸识别系统(附demo)

    更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...

  6. 人脸检测MTCNN和人脸识别Facenet(附源码)

    原文链接:人脸检测MTCNN和人脸识别Facenet(附源码) 在说到人脸检测我们首先会想到利用Harr特征提取和Adaboost分类器进行人脸检测(有兴趣的可以去一看这篇博客第九节.人脸检测之Haa ...

  7. android seetaface6_中科视拓宣布开源SeetaFace6人脸识别算法(附相关课程)

    3月31日,中科视拓宣布开放SeetaFace6人脸识别算法. 2016年9月和2019年8月,中科视拓分别开源了SeetaFace1.0人脸识别引擎.SeetaFace2.0商用级人脸识别算法.Se ...

  8. DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)

    DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现) @author:wepon @blog:http://blog.csdn.net/u012162 ...

  9. 【项目实战课】基于Pytorch的MTCNN与Centerloss人脸识别实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的MTCNN与Centerloss人脸识别实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个 ...

最新文章

  1. keepalived介绍
  2. driver.class.php line: 109,thinkphp3.2.3 无法加载数据库驱动: Think\Db\Driver\
  3. Oracle函数大全2
  4. SpringBoot通过yml和xml文件配置日志输出
  5. C语言-输入十进制数转换为二进制数
  6. Vue组件间常用的通信方式总结
  7. 演示Go语言多返回值功能
  8. AccessibilityService的具体应用场景
  9. 按下回车键自动切换焦点到下个控件
  10. asp.net 配置 X-Frame-Options
  11. 【SequoiaDB|巨杉数据库】巨杉数据库快速入门之快速使用
  12. 电商屌丝生活,有点甜、有点咸
  13. 瞬时功率与有功功率计算公式
  14. MT7686芯片资料手册
  15. C盘系统文档迁移工具,一键解决重装,C盘爆满
  16. 统计学知识大梳理(三)
  17. 二维列表python
  18. 推荐这三款软件让你实现图片去雾化?
  19. SAP系统PP模块常用RFC接口
  20. 小冰创作诗歌机制详解

热门文章

  1. Forrester报告:人工智能将取代6%的工作岗位
  2. SQL Server如何存储特殊字符、上标、下标
  3. DBArtist之Oracle入门第1步: 如何安装Oracle 11g
  4. 一分钟了解阿里云产品:网络安全专家服务
  5. ARCHLINX设置静态ip使用
  6. Eclpise 和 MyEclipse 的区别
  7. 索引更新:刚发布的文章就能被搜到,这是怎么做到的?
  8. 计算机毕业设计中基于Java和MySQL的图书管理系统
  9. 【毕业答辩】毕业答辩PPT模板,风格的选择重要吗?
  10. python中a* b是什么意思_Python中的a+=b和a=a+b之间的区别是什么?