【人脸识别】基于直方图Histogram实现人脸识别附matlab代码
【人脸识别】基于直方图Histogram实现人脸识别附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 内容介绍
人脸识别算法主要包括Eigenfaces算法、Fisherfaces算法与LBPHfaces算法。Eigenfaces算法将高维的人脸图像降维映射到低维特征脸子空间,实现面部特征采集,该算法特征数据多、识别准确率高。Fisherfaces算法在低维空间达到最大类间离散度与最小类内离散度,对不同的数据集计算其相应的特征。LBPHfaces算法采用局部特征值的描述方法,通过提取图像局部细节描述其纹理特征。
本文设计选用Eigenfaces算法。该算法虽然具有较高的识别率,但对光照因素较为敏感,因此光照因素的存在导致系统具有较高的误识率与拒识率。本文采用光照锥方法对图像进行光照补偿。
光照锥即不同光源方向的图像叠加形成的凸型锥体。光照锥方法基于光度立体视觉方法,使用前提是样本为理想散射模型,即可在固定光照下的所有视场方向观测到物体表面。算法思想是在构建特征脸时利用光照锥生成新的图像样本。
首先,加载用于训练的图像样本,将图像样本转换成矩阵向量形式与表示光源方向矩阵。其次,根据单一光源人脸表面的阴影计算出光源的反射率与表面法向量,由这些信息可以得到三维人脸重构图像与光源方向的估计值。最后,通过改变光源的方向,计算出不同光源下的合成图像。通过丰富特征脸的图像光源信息,实现在构建特征脸阶段减少光照对人脸识别系统的干扰。
2 仿真代码
function
varargout = FR_Processed_histogram(varargin)
gui_Singleton =
1
;
gui_State = struct(
’gui_Name’
, mfilename, ...
’gui_Singleton’
, gui_Singleton, ...
’gui_OpeningFcn’
, @FR_Processed_histogram_OpeningFcn, ...
’gui_OutputFcn’
, @FR_Processed_histogram_OutputFcn, ...
’gui_LayoutFcn’
, [] , ...
’gui_Callback’
, []);
if
nargin && ischar(varargin{
1
})
gui_State.gui_Callback = str2func(varargin{
1
});
end
i
axes (handles.axes3)
%image no:
5
is shown
for
visualization purpose
imshow(imread(strcat(
’ORLS’
,num2str(M),
’5.bmp’
)))
msgbox (
’Correctly Recognized’
);
else
display ([
’Error==> Testing Image of Subject >>’
num2str(subjectindex)
’ matches with the image of subject >> ’
num2str(M)])
axes (handles.axes3)
%image no:
5
is shown
for
visualization purpose
imshow(imread(STRCAT(
’ORLS’
,num2str(M),
’5.bmp’
)))
msgbox (
’Incorrectly Recognized’
);
end
display(
’Testing Done’
)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function
box_Callback(hObject, eventdata, handles)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function
box_CreateFcn(hObject, eventdata, handles)
if
ispc && isequal(get(hObject,
’BackgroundColor’
), get(
0
,
’defaultUicontrolBackgroundColor’
))
set(hObject,
’BackgroundColor’
,
’white’
);
end
%% 响应Input Image按钮
function
Input_Image_button_Callback(hObject, eventdata, handles)
global filename pathname I
[filename, pathname] = uigetfile(
’*.bmp’
,
’Test Image’
);
axes(handles.axes1)
imgpath=strcat(pathname,filename);
I = imread(imgpath);
imshow(I)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function
axes3_CreateFcn(hObject, eventdata, handles)
3 运行结果
4 参考文献
[1]聂倩倩, 秦润泽, 高育新,等. 基于直方图均衡化的人脸识别系统设计与实现[J]. 物联网技术, 2018, 8(7):3.
[2]杨恢先, 唐金鑫, 陶霞,等. 基于韦伯梯度方向直方图的人脸识别算法[J]. 计算机工程与应用, 2017, 53(15):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
