目录
摘要K-L变换的基本原理K-L变换在图像压缩中的应用研究背景及意义数字图像压缩与发展现状K-L变换与图像压缩
K-L变换在人脸识别中的应用人脸识别K-L变换实现人脸识别
总结参考文献matlab代码致谢
摘要
![在这里插入图片描述](https://img-blog.csdnimg.cn/5c7660e6437e487ab7db04913a5c55f8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/bb5c7844383d47d7a661084142a210cf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
K-L变换的基本原理
![在这里插入图片描述](https://img-blog.csdnimg.cn/7ac8042324b444db81190a76c5b200aa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
K-L变换在图像压缩中的应用
研究背景及意义
![在这里插入图片描述](https://img-blog.csdnimg.cn/1aeb2132833049258080648a7117c2d0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
数字图像压缩与发展现状
![在这里插入图片描述](https://img-blog.csdnimg.cn/d1e21b58ed1049d3839aeda7011330dd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
K-L变换与图像压缩
![在这里插入图片描述](https://img-blog.csdnimg.cn/9df21d02129d404b9949786188c2ad41.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
K-L变换在人脸识别中的应用
人脸识别
![在这里插入图片描述](https://img-blog.csdnimg.cn/7fc2f2ff32384a6fa5026beef9be665a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
K-L变换实现人脸识别
![在这里插入图片描述](https://img-blog.csdnimg.cn/fd0ae8c3f65f4fdfa437cc48d9ca4853.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
总结
![在这里插入图片描述](https://img-blog.csdnimg.cn/25bd44f25b4344af92ff3bda57e84ca4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
参考文献
![在这里插入图片描述](https://img-blog.csdnimg.cn/975fbdbaff7f4c6796e82a8fbade334a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Z2eIOW4uCDpgZM=,size_20,color_FFFFFF,t_70,g_se,x_16)
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:本人不搞模式识别,这个大报告仅供本科阶段课程参考,如有错误请一笑了之。
|