人脸识别课程设计附带代码(2)

2019-04-09 10:49

相似性:不同个体之间的区别不大,所有的人脸的结构都相似,甚至人脸器官的结构外形都很相似。这样的特点对于利用人脸进行定位是有利的,但是对于利用人脸区分人类个体是不利的。

易变性:人脸的外形很不稳定,人可以通过脸部的变化产生很多表情,而在不同观察角度,人脸的视觉图像也相差很大,另外人脸识别还受光照条件、人脸的很多遮盖物、年龄等多方面因素的影响。

特征脸算法(PCA)使得压缩前后的均方误差最小,且变换后的低维空间有很好的分辨能力,但是在种方法在处理人脸图像时,要将二维图像矩阵转换成一维的列向量,使图像的维数达到上万维,计算工作量非常大,特征提取速度慢。

为了克服传统PCA的不足,研究者们相继提出了二维PCA(2DPCA)方法、PCA+2DPCA等一些方法。

这些方法的提出不仅有效地解决了图像处理的高维问题,而且大大提高了人脸的识别率。

5.心得体会

通过本学期对数字图象处理课程的学习,是我对数字图像处理领域有了一定的了解与体会,熟悉了图像处理的流程与方式方法,加深了我对数字领域的理解。通过matlab实验,是我对matlab应用有了更进一步的掌握与学习,为下一步学习打下了良好的基础。

参考文献

[1]阮秋琦.数字图像处理学[M]. 北京: 电子工业出版社, 2000.4 [2]贺兴华. MATLAB7.x图像处理[M]. 北京: 人民邮电出版社, 2006.11 [3]王耀南. 计算机图像处理与识别技术[M]. 北京: 高等教育出版社, 2001.6 [4]章毓晋. 图像工程[M]. 北京: 清华大学出版社, 2001.9 [5]胡学龙. 数字图像处理[M]. 北京: 电子工业出版社, 2006.9

[6]罗军辉. MATLAB7.0在图像处理中的应用[M]. 北京: 机械工业出版社, 2005.6 [7]刘文耀. 数字图像采集与处理[M]. 北京: 电子工业出版社, 2007.8

[8]缪绍纲. 数字图像处理——活用MATLAB [M].成都: 西南交通大学出版社, 2001.7 [9]罗良正.数字图像处理[M]. 南京: 东南大学出版社, 1999.8

附录代码:(运行exampae.m文件) %Ch1

Img = imread('1.jpg'); if ndims(Img) == 3 I=rgb2gray(Img); else I = Img; end

BW = im2bw(I, graythresh(I)); % 二值化 figure; imshow(Img); title('原图像'); hold on;

[xt, yt] = meshgrid(round(linspace(1, size(I, 1), 10)), ... round(linspace(1, size(I, 2), 10)));

mesh(yt, xt, zeros(size(xt)), 'FaceColor', ... 'None', 'LineWidth', 3, ... 'EdgeColor', 'r');

imshow(BW); title('二值图像'); [n1, n2] = size(BW);

r = floor(n1/10); % 分成10块,行 c = floor(n2/10); % 分成10块,列 x1 = 1; x2 = r; % 对应行初始化 s = r*c; % 块面积 for i = 1:10

y1 = 1; y2 = c; % 对应列初始化 for j = 1:10

if (y2<=c || y2>=9*c) || (x1==1 || x2==r*10) % 如果是在四周区域

loc = find(BW(x1:x2, y1:y2)==0); [p, q] = size(loc);

pr = p/s*100; % 黑色像素所占的比例数 if pr <= 100

BW(x1:x2, y1:y2) = 0; end end

y1 = y1+c; % 列跳跃 y2 = y2+c; % 列跳跃 end

x1 = x1+r; % 行跳跃 x2 = x2+r; % 行跳跃 end

[L, num] = bwlabel(BW, 8); % 区域标记

stats = regionprops(L, 'BoundingBox'); % 得到包围矩形框 Bd = cat(1, stats.BoundingBox); [s1, s2] = size(Bd); mx = 0;

for k = 1:s1

p = Bd(k, 3)*Bd(k, 4); % 宽*高 if p>mx && (Bd(k, 3)/Bd(k, 4))<1.8 % 如果满足面积块大,而且宽/高<1.8 mx = p; j = k; end end

imshow(I); hold on;

rectangle('Position', Bd(j, :), ... 'EdgeColor', 'r', 'LineWidth', 3); title('标记图像');

%CreateDatabase

function T = CreateDatabase(TrainDatabasePath)

% Align a set of face images (the training set T1, T2, ... , TM ) %

% Description: This function reshapes all 2D images of the training database

% into 1D column vectors. Then, it puts these 1D column vectors in a row to

% construct 2D matrix 'T'. % %

% Argument: TrainDatabasePath - Path of the training database

%

% Returns: T - A 2D matrix, containing all 1D image vectors.

% Suppose all P images in the training database

% have the same size of MxN. So the length of 1D

% column vectors is MN and 'T' will be a MNxP 2D matrix.

%

% See also: STRCMP, STRCAT, RESHAPE

% Original version by Amir Hossein Omidvarnia, October 2007

% Email: aomidvar@ece.ut.ac.ir

%%%%%%%%%%%%%%%%%%%%%%%% File management TrainFiles = dir(TrainDatabasePath); Train_Number = 0;

for i = 1:size(TrainFiles,1) if

not(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumbs.db'))

Train_Number = Train_Number + 1; % Number of all images in the training database

end end

%%%%%%%%%%%%%%%%%%%%%%%% Construction of 2D matrix from 1D image vectors

T = [];

for i = 1 : Train_Number


人脸识别课程设计附带代码(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:18.中国知识产权保护的新进展

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: