warning off
imgsize=[300 300];
[fn,pn,~]=uigetfile('*.*','选择图片');%选择图片
imgA=imread([pn,fn]);%读取原始图像
img1 = imresize(imgA,imgsize, 'bilinear');%双线性插值方法改变图片大小
img1=rgb2gray(img1);%彩色图像装化为灰度值图像
img1=im2double(img1);%彩色图像装化为二值图像
[h,l]=size(img1);
gj=reshape(img1,[h*l,1]);
gj=zscore(gj); %数据标准化
r=corrcoef(gj); %计算相关系数矩阵
%下面利用相关系数矩阵进行主成分分析,x的列为r的特征向量,即主成分的系数
[x,~,z]=pcacov(r); %y为r的特征值,z为各个主成分的贡献率
f=repmat(sign(sum(x)),size(x,1),1); %构造与x同维数的元素为±1的矩阵
x=x.*f; %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值
df=gj*x(:,1); %计算各个主成分的得分
tf=df*z(1)/100; %计算综合得分
% [stf,ind]=sort(tf,'descend'); %把得分按照从高到低的次序排列
[fn,pn,fi]=uigetfile('*.*','选择图片');%选择图片
imgB=imread([pn,fn]);%读取原始图像
img2 = imresize(imgB,imgsize, 'bilinear');%双线性插值方法改变图片大小
img2=rgb2gray(img2);%彩色图像装化为灰度值图像
img2=im2double(img2);%彩色图像装化为二值图像
[h,l]=size(img2);
gj=reshape(img2,[h*l,1]);
gj=zscore(gj); %数据标准化
r=corrcoef(gj); %计算相关系数矩阵
%下面利用相关系数矩阵进行主成分分析,x的列为r的特征向量,即主成分的系数
[x,y,z]=pcacov(r); %y为r的特征值,z为各个主成分的贡献率
f=repmat(sign(sum(x)),size(x,1),1); %构造与x同维数的元素为±1的矩阵
x=x.*f; %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值
df=gj*x(:,1); %计算各个主成分的得分
tf1=df*z(1)/100; %计算综合得分
for i=1:h*l
xsd=norm(abs(log(tf(i,1)))-abs(log(tf1(i,1)))); %与训练样本进行匹配
end
figure
subplot(121), imshow(imgA, []);title('第一次所选图片')%显示近似系数
subplot(122), imshow(imgB, []);title('第二次所选图片')%显示水平细节分量
fprintf("两次所选图片误差为:%d\n",xsd);
基于matlab-pca的人脸相似度.zip
版权申诉
11 浏览量
2024-05-09
22:46:17
上传
评论
收藏 70KB ZIP 举报
我慢慢地也过来了
- 粉丝: 6686
- 资源: 4002
最新资源
- 残差注意力-基于Pytorch实现的残差注意力网络-附项目源码-优质项目实战.zip
- 同步六进制可逆计数器电路设计教程
- DeepBTSeg: 高精度MATLAB肿瘤分割代码
- 医学图像分割数据集:骶骨腰痛脊椎分割【包含3个切面划分的数据集(5类别)、标签文件、可视化代码】
- mmexport1716897107158.jpg
- 24年6月组员排班2.xlsx
- STM32-DS18B20例程(OLED显示).zip
- 车牌识别-基于Pytorch实现的MTCNN+LPRNet两阶段轻量级高性能车牌识别算法-附项目源码-优质项目实战.zip
- Ubuntu操作系统的安装教程.md
- PCB_220412228杨斯惠_2024-03-05(1).json
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈