图像变形之移动最小二乘算法(MLS)

基本原理

        基于移动最小二乘的图像变形是通过一组源控制点和目标控制点来控制变形,对于每一个待求变形后位置的点而言,根据预设的形变类型(如仿射变换、相似变换、刚性变换)求解一个最小二乘优化目标函数估计一个局部的坐标变换矩阵,将该坐标变换矩阵应用于当前点即可计算出该点变形后的位置。对于每一个待求变形后位置的点,利用移动最小二乘法建立一个优化目标函数求解一个局部性坐标变换矩阵。在优化目标函数中,对于当前待求变形后位置点而言,与其距离越近的源控制点具有越高的权重,对应的期望变形后位置与预设目标控制点的位置误差越小,且权重衰减迅速,对于距离当前点较远的控制点,其权重近似为0,这体现了所期望的形变模型的局部性。

        需要进一步学习原理可以参考以下链接:

移动最小二乘法(MLS)图像变形的基本原理解读及公式推导、勘误与MatLab实现_光电学子的博客-CSDN博客

人脸变形算法——MLS_五官立体算法_萌新调包员的博客-CSDN博客
 

程序实现

 源码下载:基于移动最小二乘算法(MLS)的图像变形资源-CSDN文库

程序采用QT+opencv来实现,界面如下:

图像变形之移动最小二乘算法(MLS)_第1张图片

 当选中了目标点,目标点变成绿色,此时可以拖动点来改变变形形状。

以下是动态图:

图像变形之移动最小二乘算法(MLS)_第2张图片

 

你可能感兴趣的:(图像视频处理,C++,/,QT,算法)