如何使用 Matlab 对齐人脸图像?
How to align Face Images using Matlab?
我在matlab.Can中寻找人脸图像对齐代码,有人帮忙吗?
谢谢。
这是我使用的方法,可能不是唯一的方法,但这是我能想到的:
- Select 一张图片作为参考。
- 应用点特征算法。举个例子,左眼三点,右眼三点。所以现在,我们有
reference = [x1,y1; x2,y2; x3,y3;.....;x6,y6];
- 接下来,将所有图像一张一张循环,得到与参考图像完全相同位置的点特征。
move = [X1,Y1; X2,Y2; X3,Y3;.....;X6,Y6]
计算几何变换使用:[tform,inlierPtsDistorted,inlierPtsOriginal] = estimateGeometricTransform(move,reference,'similarity');
.
然后,将两张图片变形如下:outputView = imref2d(size(referenceImage)); Ir = imwarp(probeImage,tform,'OutputView',outputView);
这是显示参考图像和探测图像之间的点匹配的图像:
参考(第一张图片)和输出:
此方法还会裁剪掉背景和头发,因为我的参考图像不包含背景和头发部分。
我在matlab.Can中寻找人脸图像对齐代码,有人帮忙吗?
谢谢。
这是我使用的方法,可能不是唯一的方法,但这是我能想到的:
- Select 一张图片作为参考。
- 应用点特征算法。举个例子,左眼三点,右眼三点。所以现在,我们有
reference = [x1,y1; x2,y2; x3,y3;.....;x6,y6];
- 接下来,将所有图像一张一张循环,得到与参考图像完全相同位置的点特征。
move = [X1,Y1; X2,Y2; X3,Y3;.....;X6,Y6]
计算几何变换使用:
[tform,inlierPtsDistorted,inlierPtsOriginal] = estimateGeometricTransform(move,reference,'similarity');
.然后,将两张图片变形如下:
outputView = imref2d(size(referenceImage)); Ir = imwarp(probeImage,tform,'OutputView',outputView);
这是显示参考图像和探测图像之间的点匹配的图像:
参考(第一张图片)和输出:
此方法还会裁剪掉背景和头发,因为我的参考图像不包含背景和头发部分。