1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56cmJ9q
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
提出了一种有效的图像姿态合成方法。姿势合成用于预测在给定姿势的期望姿势处具有最小误差的面部图像。在许多情况下,这是经常需要的例如动画电影的制作、法医学和3D人脸几何的生成等应用,它使用主成分分析(PCA)和线性对象类(LOC)方法。姿势的面部图像被建模为形状和纹理向量LOC方法分别应用于训练集的这两个向量。形状的主要组成部分向量给出了一个较小数量的有效维度,沿着该维度最佳线性近似使用计算形状向量的LOC。即使给定的矢量仅使用这些与使用形状向量的所有维度。
4.部分源码
...........................................................................
People = 5;
%%
%读取图片
Filea = ['Images\people',num2str(People),'\c\'];
Filea_list = dir(['Images\people',num2str(People),'\c\*.jpg']);
Fileb = ['Images\people',num2str(People),'\b\'];
Fileb_list = dir(['Images\people',num2str(People),'\b\*.jpg']);
Bgimga = ['Images\people',num2str(People),'\c.jpg'];
Bgimgb = ['Images\people',num2str(People),'\b.jpg'];
[Ia,I0a,Bga] = func_face_read(Filea,Filea_list,Bgimga);
[Ib,I0b,Bgb] = func_face_read(Fileb,Fileb_list,Bgimgb);
%检测人脸
[facea_gray,facea_rgb,facea_rgbbk] = func_detect_face2(Ia,I0a,Bga,People,1);
[faceb_gray,faceb_rgb,faceb_rgbbk] = func_detect_face2(Ib,I0b,Bgb,People,2);
%%
[Text_vector0,Shape_vector0,samplemean0] = func_LOC_PCA_feature(facea_rgbbk,facea_rgb,People,1);
[Text_vector1,Shape_vector1,samplemean1] = func_LOC_PCA_feature(faceb_rgbbk,faceb_rgb,People,2);
%使用训练后的模型进行其余侧脸的正脸合成
%读取一个侧面脸
K = 1;
Image_FF2 = facea_rgb{K};
Image_PF21 = faceb_rgbbk{K};
Image_PF22 = faceb_rgb{K};
%合成正脸
Image_PF2 = imresize(Image_PF21,[100,100]);
b = reshape(Image_PF2,1,100*100);
VIA = double(b);
alpha = VIA*Text_vector0;
for i = 1:min(length(alpha),54)
d(:,i) = Text_vector1(:,i)*alpha(i);
end
ds = d(:,K) + samplemean0';
ds = mat2gray(reshape(ds,[100,100]));
figure
subplot(131);
imshow(Image_FF2);
title('原始正脸');
subplot(132);
imshow(Image_PF22);
title('原始侧脸');
subplot(133);
imshow(ds);
title('重建的正脸');
10_020_m