发布于2019-08-08 10:19 阅读(564) 评论(0) 点赞(3) 收藏(0)
先来个新人的愚蠢问题:(这些都是本人之前不理解的 - -!)
为什么要使用双线性插值,它有何应用?
输入时什么,输出是什么?
先回答第一个问题-----
插值多应用于上采样(图片放大)中对放大像素的插值方法。 比如下图:
在一幅2*2的图像中已知四点的像素值,那么如果我们要放大1/2变为右图所示,四个角的像素值不变,新增的5个像素该取什么值呢。所以这就是我们要处理的具体应用场景。
先来理解线性插值,理解了这个后双线性就可以类推了。
首先化为数学问题分析条件:
一幅图中, 已知:两个点(点具有坐标信息和点所取的值) ,求在两点直线上的一点的值(已知位置信息,值为未知数),
简而言之:已知两点的值求两点直线上一点的值。 已知 a0, a1, (x0,y0), (x1,y1), (x,y) ---求 b
数学好的人心中大概已经知道该怎么求b的值了 ~~
由于三角形相似 所以求b的值可用下面公式
然后将这个公式展开,化简就可以得到如下公式
看到这个大家就非常眼熟了,这就是很多博客或百度得出的结果公式,然后这就是这个公式的推理过程。
那知道了线性插值之后,那再讲双线性就非常easy的了 = =
首先,既然有了线性插值那我们为什么还需要双线性插值??
很简单,线性插值,插的值都是在两点连线上的点,而如果在二维平面上。我们要插入的点并不在连线上,这时候就引入双线性插值。
先来一张大家都很眼熟的图
然后接着分析; 已知四个点的值和对应四个点的位置,我们求p点的对应值。
思路:将求解过程拆两步,先用已知的两个点,加上P点的一个位置信息x坐标值,求对应R1和R2; 然后利用R1,R2作为已知两点加上P点的位置信息y坐标,求得最终P点的值。
步骤一 : 和线性插值一样的道理,Q11和Q21作为已知点,求Q11和Q21线上的R1点的值
直接利用线性插值的公式带入 即可求出R1的值
步骤二:利用Q12和Q22作为已知点,求Q12和Q22线上的R2点的值
步骤三:利用R1和R2作为已知点,求R1和R2线上的P点的值
ps:先进行x轴计算和先进行y轴计算最终得到的答案是一样的。
这样就完成一次双线性插值。那回到最初的应用场景。
这该如何插值呢?很简单-----由于像素与像素间距离都是1,所以只需求两个之间的平均即可。
那在这种场景中,双线性的优势并没有体现出来,下面列举另一个场景:
假如在一幅4*4的图片中,我们需要提取一个3*3的目标,该目标出现在如图里面的位置,那么3*3的9个像素点值都得通过周围4个已知点进行双线性插值求得。
注意并不是方块代表像素点,这里使用交点代表像素点。也就是在4*4图片中定位3*3位置的像素。
最后再回到开头提到的第二个问题。
我们双线性插值输入是四个点的值和四点内一点的位置。
输出是该位置点的值。
作者:djhsj7
链接:https://www.pythonheidong.com/blog/article/13164/c39e575aceb5501d7eb1/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!