算法:对给定图像做二维仿射变换。仿射模型为 x′=ax+by+tx,y′=cx+dy+ty。 为避免“空洞”,采用逆映射 + 最近邻插值:对每个输出像素 (x′,y′),先减去平移,再乘线性部分的逆矩阵,得到源坐标 (x,y)。若 (x,y) 在原图范围内,则取最近邻像素;否则置 0。
核心实现:
人脸关键点对齐是人脸识别算法过程中非常重要的一步,其方法是基于检测人脸关键点及模板人脸关键点获得变换矩阵 M ,使得最小二乘意义下把原图的关键点贴到模板关键点位置,其基本原理是对图像得仿射变换。现在你将实现一个图像的仿射变换函数,该函数接收一个二维图像矩阵 A 、一个变换矩阵 M 和输出图像的尺寸 0 ,返回变换后的图像。
变换公式为,其中 x,y 为原坐标, x′,y′ 为变换后的坐标, a,b,c,d 是线性变换部分的系数, tx,ty 是平移向量: x′=a×x+b×y+tx
y′=c×x+d×y+ty
如果变换后的坐标超出原图像范围,则不赋值(保留为 0 )。