平均形状的计算方法有两种。
1. 粗略的获取平均形状
经过三步走:原点化–尺度化–平均化
(1)原始带有基准点的数据,例如取出一个图像的基准点:
landmark=data{i}.landmark;
(2)由于对于不同的样本图像,人脸形状坐标是相对于图像的左上角。因此,需要将其进行原点化:
% landmark和shape表示是同一个意思
landmark=data{i}.landmark;
shape_min=min(landmark,[],1);%按行计算所有列中的最小值,shape_min_x,shape_min_y
shape_max=max(landmark,[],1);
%% 原点化
landmark= bsxfun(@minus, landmark, shape_min);
(3)尺度化,即将所有的形状进行缩放到统一尺度
%% 尺度化
landmark= bsxfun(@rdivide, landmark, shape_max - shape_min);
(4)平均化:
landmark=landmark./n;
2.精确的获取平均形状
- 进行。。。。
参考文献:
1.Face alignment at 3000 fps via regressing local binary features

本文介绍了两种计算人脸平均形状的方法:一种是通过简单的原点化、尺度化和平均化步骤来获得粗略的人脸平均形状;另一种是更精确的方法,但具体细节未给出。文章通过具体的图像处理步骤展示了如何标准化不同图像中的人脸形状。
1万+

被折叠的 条评论
为什么被折叠?



