matlab怎么显示bfm模型的纹理模型,【计算机视觉基础】如何通过BFM模型得到人脸关键特征点的信息...

前言

本文介绍BFM模型,从中提取68个关键特征点对应的立体信息以及可视化。

code

BFMpath = '01_MorphableModel.mat';

BFM = load(BFMpath);

landmarkpath = 'Landmarks68_BFM.anl';

%landmarkpath = 'Landmarks21_BFM.anl';

idx = readLandmarks(landmarkpath);

vertices = double(reshape(BFM.shapeMU,3,length(BFM.shapeMU)/3)');

faces = BFM.tl;

showLandmarks(vertices,faces,idx);

%

shapeMU = BFM.shapeMU;

shape = reshape(shapeMU, 3, 53490);

shape = shape.';

x = shape(:, 1);

y = shape(:, 2);

z = shape(:, 3);

figure

scatter3(x, y, z, 1, 'filled');

hold on

landmarks3d = zeros(68, 3);

for i =1 : 68

scatter3(x(idx(i), y(idx(i)), z(idx(i)), 10, 'r');

text(double(x(idx(i))), double(y(idx(i))), double(z(idx(i))), int2str(i));

landmarks3d(i, :) = [x(idx(i), y(idx(i), z(idx(i))];

end

save landmarks3d landmarks3d

ld3d = landmarks3d/100.0;

在matlab中通过三维旋转可以查看三维图像各个角度的立体信息。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值