基于正玄变换的人脸姿态矫正
原理:正玄变换开始是用于快速的姿态矫正,即从有一定偏转角度的侧面图像变为正面图像。假设待识别的样本为的一张侧面人脸图像,即此人脸具有一定方向的偏转。可以看到图像显示出一边被压缩,另一边被放大的效果。而一张正面人脸则是两边对称的。所以以人脸的中心垂线为界,左边的列坐标取负,右边的列坐标取正,这样根据列坐标的正负不同施行不同的尺度变换,就可以压缩一边的同时扩展另一边,从而变换为正面人脸原始列坐标都是整数变换后不再是整数,此时可以进行插值运算,可求出对应像素点的灰度值。
设样本为S,大小为,平面上网格点为,经过正弦变换后,网格点上新的y值为:
根据上面的式子对图像进行变换,由组成图像上新的网格点。假设新图像在网格点处的灰度值为原图像在(x,y)点的值,由作插值求出图像在网格点上的值。
效果图:
原图像
原图 左侧旋转10度 左侧旋转15度 左侧旋转20度
原图 右侧旋转10度 右侧旋转15度 右侧旋转20度
程序:
/*
write by fangqi su 2014-8-15
*/
#include