线性插值基本原理推导

线性插值基本原理

  • 1. 为什么使用线性插值?
  • 2. 单线性插值
    • 2.1 单线性插值推导
  • 3.多线性插值
    • 3.1 多线性插值推导注意事项
    • 3.2 多线性插值推导
    • 3.3 插入坐标越远权重越大

1. 为什么使用线性插值?

  • 在深度学习对图片进行上采样和下采样的时候会应用到线性插值
    线性插值基本原理推导_第1张图片

    • 对图片上采样,原始图片(33)范围红色框中的值,会得到(44)框中红色框的值
    • 假设目标图片红框坐标为(i,j),那么在原始图片位置 ( i ∗ 3 4 , j ∗ 3 4 ) (i*\frac{3}{4},j*\frac{3}{4}) (i43,j43),
    • 已知 i = 2 , j = 3 i=2,j=3 i=2,j=3,所以在原始图片位置 ( 1.5 , 0.75 ) (1.5,0.75) (1.5,0.75)
      • 不是整数,在找原始图片位置时,会自动取整
      • 即,需要使用线性插值,来降低误差

2. 单线性插值

线性插值基本原理推导_第2张图片

2.1 单线性插值推导

  • 如图所示,在 p 0 和 p 1 p_0和p_1 p0p1中间插入 p p p,求p点位置
  • 根据斜率公式
    y − y 0 x − x 0 = y 1 − y 0 x 1 − x 0 y = y 0 + ( y 1 − y 0 ) ( x − x 0 ) x 1 − x 0 y = ( x 1 − x 0 ) y 0 + ( y 1 − y 0 ) ( x − x 0 ) x 1 − x 0 y = x 1 y 0 − x 0 y 0 + x y 1 − x 0 y 1 − x y 0 + x 0 y 0 x 1 − x 0 y = ( x 1 − x ) y 0 + ( x − x 0 ) y 1 x 1 − x 0 y = ( x 1 − x ) x 1 − x 0 y 0 + ( x − x 0 ) x 1 − x 0 y 1 \begin{aligned} \frac{y-y_{0}}{x-x_{0}}&=\frac{y_{1}-y_{0}}{x_{1}-x_{0}}\\ y&=y_{0}+\frac{(y_{1}-y_{0})(x-x_{0})}{x_{1}-x_{0}} \\&y=\frac{(x_{1}-x_{0})y_{0}+(y_{1}-y_{0})(x-x_{0})}{x_{1}-x_{0}} \\&y=\frac{x_{1}y_{0}-x_{0}y_{0}+xy_{1}-x_{0}y_{1}-xy_{0}+x_{0}y_{0}}{x_{1}-x_{0}} \\&y=\frac{(x_{1}-x)y_{0}+(x-x_{0})y_{1}}{x_{1}-x_{0}} \\&y=\frac{(x_{1}-x)}{x_{1}-x_{0}}y_{0}+\frac{(x-x_{0})}{x_{1}-x_{0}}y_{1} \end{aligned} xx0yy0y=x1x0y1y0=y0+x1x0(y1y0)(xx0)y=x1x0(x1x0)y0+(y1y0)(xx0)y=x1x0x1y0x0y0+xy1x0y1xy0+x0y0y=x1x0(x1x)y0+(xx0)y1y=x1x0(x1x)y0+x1x0(xx0)y1
  • 假设y对应的值,就是图像中的像素值p,得到
    p = ( x 1 − x ) x 1 − x 0 p 0 + ( x − x 0 ) x 1 − x 0 p 1 \begin{aligned} p=\frac{(x_{1}-x)}{x_{1}-x_{0}}p_{0}+\frac{(x-x_{0})}{x_{1}-x_{0}}p_{1} \end{aligned} p=x1x0(x1x)p0+x1x0(xx0)p1

3.多线性插值

3.1 多线性插值推导注意事项

  • 双线性插值是三维的,需要从二维计算出某一个坐标轴的差值才可以
    • 如果按照单线性插值,直接按照三位图,那么求 p 1 p_{1} p1
      • 显然不可能会出现 y 1 − y 1 y_{1}-y_{1} y1y1这个操作
        y − y 1 x − x 2 = y 1 − y 1 x 1 − x 2 \begin{aligned} \frac{y-y_{1}}{x-x_{2}}&=\frac{y_{1}-y_{1}}{x_{1}-x_{2}} \end{aligned} xx2yy1=x1x2y1y1

3.2 多线性插值推导

  • 根据单线性插值公式,得出公式
    • 我们计算像素值,直接将 y y y变成 p p p即可
      y = ( x 1 − x ) x 1 − x 0 y 0 + ( x − x 0 ) x 1 − x 0 y 1 \begin{aligned} y=\frac{(x_{1}-x)}{x_{1}-x_{0}}y_{0}+\frac{(x-x_{0})}{x_{1}-x_{0}}y_{1} \end{aligned} y=x1x0(x1x)y0+x1x0(xx0)y1

线性插值基本原理推导_第3张图片

  • 由单线性插值,对x轴得到【自己转换维度】
    p 1 = ( x 2 − x ) x 2 − x 1 p 11 + ( x − x 1 ) x 2 − x 1 p 21 p 2 = ( x 2 − x ) x 2 − x 1 p 12 + ( x − x 1 ) x 2 − x 1 p 22 \begin{aligned} p_{1}=\frac{(x_{2}-x)}{x_{2}-x_{1}}p_{11}+\frac{(x-x_{1})}{x_{2}-x_{1}}p_{21}\\ p_{2}=\frac{(x_{2}-x)}{x_{2}-x_{1}}p_{12}+\frac{(x-x_{1})}{x_{2}-x_{1}}p_{22} \end{aligned} p1=x2x1(x2x)p11+x2x1(xx1)p21p2=x2x1(x2x)p12+x2x1(xx1)p22
  • 由单线性插值,对y轴得到
    p = ( y 2 − y ) y 2 − y 1 p 1 + ( y − y 1 ) y 2 − y 1 p 2 \begin{aligned} p=\frac{(y_{2}-y)}{y_{2}-y_{1}}p_{1}+\frac{(y-y_{1})}{y_{2}-y_{1}}p_{2} \end{aligned} p=y2y1(y2y)p1+y2y1(yy1)p2
  • p 1 , p 2 p_{1},p_{2} p1,p2代入化简 p p p
    p = ( y 2 − y ) y 2 − y 1 ( ( x 2 − x ) x 2 − x 1 p 11 + ( x − x 1 ) x 2 − x 1 p 21 ) + ( y − y 1 ) y 2 − y 1 ( ( x 2 − x ) x 2 − x 1 p 12 + ( x − x 1 ) x 2 − x 1 p 22 ) = ( y 2 − y ) ( x 2 − x ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 11 + ( y 2 − y ) ( x − x 1 ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 21 + ( y − y 1 ) ( x 2 − x ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 12 + ( y − y 1 ) ( x − x 1 ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 22 \begin{aligned} p&=\frac{(y_{2}-y)}{y_{2}-y_{1}}(\frac{(x_{2}-x)}{x_{2}-x_{1}}p_{11}+\frac{(x-x_{1})}{x_{2}-x_{1}}p_{21})+\frac{(y-y_{1})}{y_{2}-y_{1}}(\frac{(x_{2}-x)}{x_{2}-x_{1}}p_{12}+\frac{(x-x_{1})}{x_{2}-x_{1}}p_{22}) \\&=\frac{(y_{2}-y)(x_{2}-x)}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{11}+\frac{(y_{2}-y)(x-x_{1})}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{21}+\frac{(y-y_{1})(x_{2}-x)}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{12}+\frac{(y-y_{1})(x-x_{1})}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{22} \end{aligned} p=y2y1(y2y)(x2x1(x2x)p11+x2x1(xx1)p21)+y2y1(yy1)(x2x1(x2x)p12+x2x1(xx1)p22)=(y2y1)(x2x1)(y2y)(x2x)p11+(y2y1)(x2x1)(y2y)(xx1)p21+(y2y1)(x2x1)(yy1)(x2x)p12+(y2y1)(x2x1)(yy1)(xx1)p22
  • 在图像中,相邻像素点坐标差值为1,即
    x 2 = x 1 + 1 y 2 = y 1 + 1 \begin{aligned} x_{2}&=x_{1}+1\\ y_{2}&=y_{1}+1 \end{aligned} x2y2=x1+1=y1+1
    线性插值基本原理推导_第4张图片
  • x 2 , y 2 x_2,y_2 x2,y2关于 x 1 , y 1 x_1,y_1 x1,y1的表达式代入p
    p = ( y 2 − y ) ( x 2 − x ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 11 + ( y 2 − y ) ( x − x 1 ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 21 + ( y − y 1 ) ( x 2 − x ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 12 + ( y − y 1 ) ( x − x 1 ) ( y 2 − y 1 ) ( x 2 − x 1 ) p 22 = ( y 2 − y ) ( x 2 − x ) p 11 + ( y 2 − y ) ( x − x 1 ) p 21 + ( y − y 1 ) ( x 2 − x ) p 12 + ( y − y 1 ) ( x − x 1 ) p 22 \begin{aligned} p&=\frac{(y_{2}-y)(x_{2}-x)}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{11}+\frac{(y_{2}-y)(x-x_{1})}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{21}+\frac{(y-y_{1})(x_{2}-x)}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{12}+\frac{(y-y_{1})(x-x_{1})}{(y_{2}-y_{1})(x_{2}-x_{1})}p_{22} \\&=(y_{2}-y)(x_{2}-x)p_{11}+(y_{2}-y)(x-x_{1})p_{21}+(y-y_{1})(x_{2}-x)p_{12}+(y-y_{1})(x-x_{1})p_{22} \end{aligned} p=(y2y1)(x2x1)(y2y)(x2x)p11+(y2y1)(x2x1)(y2y)(xx1)p21+(y2y1)(x2x1)(yy1)(x2x)p12+(y2y1)(x2x1)(yy1)(xx1)p22=(y2y)(x2x)p11+(y2y)(xx1)p21+(yy1)(x2x)p12+(yy1)(xx1)p22

3.3 插入坐标越远权重越大

  • 由于p是由 p 1 p_{1} p1 p 2 p_{2} p2得到的
    P 1 ≈ ( y 2 − y ) ( x 2 − x ) p 11 + ( y 2 − y ) ( x − x 1 ) p 21 P 2 ≈ ( y − y 1 ) ( x 2 − x ) p 12 + ( y − y 1 ) ( x − x 1 ) p 22 \begin{aligned} P_{1}&\approx(y_{2}-y)(x_{2}-x)p_{11}+(y_{2}-y)(x-x_{1})p_{21}\\ P_{2}&\approx(y-y_{1})(x_{2}-x)p_{12}+(y-y_{1})(x-x_{1})p_{22} \end{aligned} P1P2(y2y)(x2x)p11+(y2y)(xx1)p21(yy1)(x2x)p12+(yy1)(xx1)p22
    • 根据 p 1 p_{1} p1,都有系数 ( y 2 − y ) (y_{2}-y) (y2y),如果 p 1 p_{1} p1向的值比较大,那么 ( x 2 − x ) (x_{2}-x) (x2x)的值就要大,所以当插入的点离哪一个坐标远,那个坐标的权重越大【插入值的权重越大】

你可能感兴趣的:(数学基础,算法,机器学习,线性插值,多线性插值,图片切割线性插值)