图像形变算法

图像形变算法

参考:特效:脸部变形分析

图像局部缩放算法(大眼或小眼)

参考:图像美容之眼睛放大算法。

包含三个参数:中心点 O ( X , Y ) O(X, Y) O(X,Y),画笔大小(半径) r r r,力度 s s s
中心点以及画笔大小决定算法影响范围,力度影响缩放程度。
算法主要思想:处理以中心点为原点,画笔大小为半径的范围内像素,将范围内像素替换成该像素与中心像素连线上的某一点像素值。
图像形变算法_第1张图片

设中心点 O ( X , Y ) O(X, Y) O(X,Y),画笔大小(半径) r r r,力度 s s s
(1)对于范围内任意像素点 ( x 1 , y 1 ) (x1, y1) (x1,y1), 计算其与中心点的距离平方 d 2 = ( x 1 − X ) 2 + ( y 1 − Y ) 2 d^2 =(x1-X)^2+(y1-Y)^2 d2=x1X2+(y1Y)2
(2)计算缩放比例因子: k = 1 − ( s / 100 ) ∗ ( 1 − d 2 r 2 ) k = 1 - (s/100)*(1-\frac{d^2}{r2}) k=1(s/100)(1r2d2)
(3)计算对应的新像素点坐标: x = ( x 1 − X ) ∗ k + X x = (x1-X)*k+X x=(x1X)k+X, y = ( y 1 − Y ) ∗ k + Y y=(y1-Y)*k+Y y=(y1Y)k+Y

局部图像平移算法(瘦脸)

参考:人脸形变算法——液化变形

图像形变算法_第2张图片
在这里插入图片描述

参数:中心点 C C C,半径为 r r r,平移方向为 m ⃗ − c ⃗ ( 即 C M → ) \vec m-\vec c (即\overrightarrow{CM}) m c CM ,范围内点 U U U变换到 U ′ U^{'} U M M M点为中心点对应的变换点。
主要思想:对于圆形范围内任意一点,求出变换前对应的浮点坐标,用变化前图像在 U U U点附近的像素进行插值,求出 U U U的像素值,作为变换后 U ′ U^{'} U点的像素值。

设中心点 C C C,半径为 r r r,平移方向为 m ⃗ − c ⃗ ( 即 C M → ) \vec m-\vec c (即\overrightarrow{CM}) m c CM ,范围内点 U U U变换到 U ′ U^{'} U

(1)求出半径平方 r 2 r^2 r2和变换后点 U ′ U^{'} U到中心点 C C C距离的平方 d 2 = ∣ x ⃗ − c ⃗ ∣ 2 d^2 = |\vec x - \vec c|^2 d2=x c 2
(2)求出平移系数 ( r 2 − d 2 ( r 2 − d 2 ) + ( ∣ m ⃗ − c ⃗ ) 2 ) 2 (\frac{r^2-d^2}{(r^2-d^2)+(|\vec m - \vec c)^2})^2 ((r2d2)+(m c )2r2d2)2 和平移方向 ∣ m ⃗ − c ⃗ ∣ |\vec m - \vec c| m c
(3)计算

特点:
中心点变换的距离最大,圆周处不变换。

全局点位变形

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

参考:移动最小二乘法(MLS)对图像进行变形
参考:利用MLS移动最小二乘法对图像变形
参考:卡通图像变形算法(Moving Least Squares)附源码
最小二乘法:根据一组测量数据来预估函数参数的方法。该方法求得的函数参数满足函数值在这一组测量数据中获得最小误差平方和。

MLS主要思想:给定一组控制点 p i p_i pi和对应的变换后的点 q i q_i qi,针对图像上的每个像素点 v v v构建相应的仿射变换 l v ( x ) l_v(x) lv(x),使得误差的平方和最小:
∑ i w i ∣ l v ( p i ) − q i ∣ 2 \sum_i w_i |l_v(p_i)-q_i|^2 iwilv(pi)qi2
其中 w i w_i wi的值与 v v v有关: w i = 1 ∣ p i − v ∣ 2 α w_i=\frac{1}{|p_i-v|^{2\alpha}} wi=piv2α1。这样对于每一个像素点 v v v都能求出对应的变换函数 l v ( x ) l_v(x) lv(x)
仿射变换 l v ( x ) l_v(x) lv(x)由两部分组成:线性变换和平移变换。因此仿射变换又可以写成 l v ( x ) = x M + T l_v(x)=xM+T lv(x)=xM+T。代入上式得:
∑ i w i ∣ p i M + T − q i ∣ 2 \sum_i w_i|p_iM+T-q_i|^2 iwipiM+Tqi2
现在的目标是求出 M M M T T T使得上述式子结果最小。令上述式子对 T T T的偏导为0,得到:
2 ∑ i w i ( p i M + T − q i ) = 0 2\sum_i w_i(p_iM+T-q_i)=0 2iwi(piM+Tqi)=0
解得: T = ∑ i w i q i − ∑ i w i p i M ∑ i w i T=\frac{\sum_iw_iq_i-\sum_i w_ip_iM}{\sum_i w_i} T=iwiiwiqiiwipiM, 令 q ∗ = ∑ i w i q i ∑ i w i q^*=\frac{\sum_i w_i q_i}{\sum_i w_i} q=iwiiwiqi p ∗ = ∑ i w i p i ∑ i w i p^*=\frac{\sum_i w_i p_i}{\sum_i w_i} p=iwiiwipi,则 T = q ∗ − p ∗ M T=q^*-p^*M T=qpM

添加不同的限制条件对转换矩阵 M M M进行条件限制后,可以得到三种不同形式的转换矩阵 M M M:仿射变形、相似变形和刚性变形。

你可能感兴趣的:(图像处理&计算机视觉,计算机图形学)