编程语言
首页 > 编程语言> > 数字图像处理学习——(一)双线性差值算法

数字图像处理学习——(一)双线性差值算法

作者:互联网

一、线性差值

直接看图
在这里插入图片描述
若已知图中两点A(x0,y0),B(x1,y1),和该直线上任意一点P的横坐标x,求P该直线上的一点的纵坐标。
很容易可以得到,根据直线的定理。(yy0)/(xx0)=(y1y0)/(x1x0)(y-y0)/(x-x0)=(y1-y0)/(x1-x0)(y−y0)/(x−x0)=(y1−y0)/(x1−x0);
得:y=(x1x)/(x1x0)y0+(xx0)/(x1x0)y1y=(x1-x)/(x1-x0)y0+(x-x0)/(x1-x0)y1y=(x1−x)/(x1−x0)y0+(x−x0)/(x1−x0)y1;
x1,x0,y1,y0为定值,可将上式变换为:
y(x1x0)=(x1x)y0+(xx0)y1y(x1-x0)=(x1-x)y0+(x-x0)y1y(x1−x0)=(x1−x)y0+(x−x0)y1
可以看出P点的值受A,B两点影响,离的越近,影响越大。在公式中表现为离得越近乘的权值越大。

二、双线性差值

理解了线性差值,双线性差值就很容易理解了。
双线性差值可以视作线性差值的升维,也就是说在两个方向分别作线性差值。
以上图为例
在这里插入图片描述
P的值可视作P1与P2的线性差值,而P1又可视作A,B的线性差值,P2可视作C,D的线性差值。
P1(x1x0)=A(x1x)+B(xx0)P1(x1-x0)=A(x1-x)+B(x-x0)P1(x1−x0)=A(x1−x)+B(x−x0);
P2(x1x0)=C(x1x)+D(xx0)P2(x1-x0)=C(x1-x)+D(x-x0)P2(x1−x0)=C(x1−x)+D(x−x0);
若设a=(xx0)/(x1x0)a=(x-x0)/(x1-x0)a=(x−x0)/(x1−x0);
b=(yy0)/(y1y0)b=(y-y0)/(y1-y0)b=(y−y0)/(y1−y0);
则上式可变为:
P1=A(1a)+BaP1=A(1-a)+B*aP1=A(1−a)+B∗a;
P2=C(1a)+DaP2=C(1-a)+D*aP2=C(1−a)+D∗a;

P可视作P1与P2的线性差值
则:P=P1(1b)+P2bP=P1(1-b)+P2*bP=P1(1−b)+P2∗b
将P1,P2带入可得
P=A(1a)(1b)+Ba(1b)+C(1a)b+DabP=A(1-a)(1-b)+B*a(1-b)+C(1-a)b+D*a*bP=A(1−a)(1−b)+B∗a(1−b)+C(1−a)b+D∗a∗b
同样符合距离越近权重越大的原则

杨少侠qy 发布了11 篇原创文章 · 获赞 18 · 访问量 8190 私信 关注

标签:P2,P1,数字图像处理,差值,双线性,y1,y0,x0,x1
来源: https://blog.csdn.net/qq_43650722/article/details/104072475