双线性插值(超级易懂的)「建议收藏」

双线性插值(超级易懂的)「建议收藏」双线性插值简介在两个方向分别进行一次线性插值(首先在一个方向上使用线性插值,然后再在另一个方向上使用线性插值执行双线性插值。尽管每个步骤在采样值和位置上都是线性的,但是插值总体上不是线性的,而是在采样位置上是二次的。)作用一般用于重新采样图像和纹理。计算四个周围纹理像素的属性(颜色,透明度等)的加权平均值,并将其应用于屏幕像素。(简单来说,我要求一个已知坐标的像素值,先去找他四个周围已…

大家好,又见面了,我是你们的朋友全栈君。

双线性插值

简介

在两个方向分别进行一次线性插值(首先在一个方向上使用线性插值,然后再在另一个方向上使用线性插值执行双线性插值。尽管每个步骤在采样值和位置上都是线性的,但是插值总体上不是线性的,而是在采样位置上是二次的。)

作用

一般用于重新采样图像和纹理。
计算四个周围纹理像素的属性(颜色,透明度等)的加权平均值,并将其应用于屏幕像素。
(简单来说,我要求一个已知坐标的像素值,先去找他四个周围已知像素的坐标,通过两次单线性插值,找到他的像素值是多少)

单线性插值

这里是单线性插值
列式
仔细看就是用x和x0,x1的距离作为一个权重,用于y0和y1的加权。双线性插值本质上就是在两个方向上做线性插值。

双线性插值的公式

在这里插入图片描述
如图所示,我们需要求P点的像素值。我们已知了Q11、Q21、Q12、Q22、P的坐标。也知道Q11、Q21、Q12、Q22的像素值。所以先用关于X的单线性插值去分别计算R1、R2的像素值
在这里插入图片描述在右边的等式中的字母f(Q11)、f(Q12)、f(Q21)、f(Q22)、x1、x2、x都是已知的,求出的f(x,y1)与f(x,y2)即为R1、R2的像素值。
再使用关于y方向的单线性插值计算P点的像素值
得出:
在这里插入图片描述在右边的等式中的字母y1、y2、y都是已知的,f(x,y1)与f(x,y2)即为上一个式子中求出的R1、R2像素值。

双线性插值的例子

举个栗子:
在这里插入图片描述
如右侧示例所示,可以通过在第20行和第21行的第14列和第15列的值之间进行线性内插,来计算计算为在第20.2行第14.5列处的像素处的强度值.(这里也正好说明了一般使用最相邻的像素点)
在这里插入图片描述

双线性插值的直观展示

在这里插入图片描述
我们可以看出这里的是在一个平面的双线性插值(Bilinear)

意义

此算法减少了由于将图像调整大小为非整数缩放因子而导致的某些视觉失真

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130489.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号