如何使用Matlab对齐人脸图像?

时间:2016-06-24 16:06:07

标签: alignment face-recognition

我在matlab中寻找一个人脸图像对齐代码。有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这是我使用的方法,可能不是唯一的方法,但这是我能想到的:

  1. 选择图像作为参考。
  2. 应用点要素算法。例如,左眼上有三个点,右眼上有三个点。现在,我们有reference = [x1,y1; x2,y2; x3,y3;.....;x6,y6];
  3. 接下来,逐个循环所有图像,并获得与参考图像完全在同一位置的点要素。 move = [X1,Y1; X2,Y2; X3,Y3;.....;X6,Y6]
  4. 使用[tform,inlierPtsDistorted,inlierPtsOriginal] = estimateGeometricTransform(move,reference,'similarity');计算几何变换。

  5. 然后,将两张图片变形如下:outputView = imref2d(size(referenceImage)); Ir = imwarp(probeImage,tform,'OutputView',outputView);

  6. 这是图像显示参考图像和探测图像之间的点匹配:

    enter image description here

    参考(第1张图片)和输出:

    enter image description here enter image description here enter image description here enter image description here

    此方法还会裁剪背景和头发,因为我的参考图像不包含背景和头发部分。