双线性插值(内插)学习

合集下载

图像缩放算法及速度优化——(二)双线性插值

图像缩放算法及速度优化——(二)双线性插值

图像缩放算法及速度优化——(⼆)双线性插值 双线性插值作为OpenCV中默认使⽤的图像缩放算法,其效果和速度都是不错的。

并且效果也⽐较稳定,计算复杂度并不算太⾼。

我看了很多⽹上的算法,⾃⼰也没看太懂,下⾯是从⽹上找的双线性插值算法的讲解。

“图像的双线性插值放⼤算法中,⽬标图像中新创造的象素值,是由源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。

双线性内插值算法放⼤后的图像质量较⾼,不会出现像素值不连续的的情况。

然⽽次算法具有低通滤波器的性质,使⾼频分量受损,所以可能会使图像轮廓在⼀定程度上变得模糊。

” 下⾯还是根据我⾃⼰的理解来继续讲述吧,相信读者中有很多⾼⼿,希望读者能给予我指点⼀下,让我也能更明⽩⼀些。

双线性插值算法和最近邻插值算法⽐较类似。

在最近邻插值算法中,⽬标图像中的某个点(x,y)是去源图像中找最邻近的⼀个点(x0, y0)即可。

⽬标图像中的点(x, y)对应于源图像中的点(x0',y0'),x0'、y0'很可能不是整数,⽽是⼩数,⽽最近邻插值算法是找其邻近整型值(int(x0'+0.5f),int(y0'+0.5f))(上篇⽂章中没有进⾏四舍五⼊)。

我们现在找x0', y0'所在位置旁边的四个点,根据这四个点与(x0',y0')距离的关系计算⽬标图像中(x,y)⼀点的像素值。

算法描述如下:(1)计算源图像与⽬标图像宽与⾼的⽐例w0 : 表⽰源图像的宽度h0 : 表⽰源图像的⾼度w1 : 表⽰⽬标图像的宽度h1 : 表⽰⽬标图像的⾼度float fw = float(w0-1)/(w1-1);float fh = float(h0-1)/(h1-1);(2)针对⽬标图像的⼀个点(x, y),计算在源图像中的对应坐标,结果为浮点数。

float x0 = x * fw;float y0 = y * fh;int x1 = int(x0);int x2 = x1 + 1;int y1 = int(y0);int y2 = y1+1;所求的源图像中的四个点坐标为(x1, y1) (x1, y2) (x2, y1) (x2,y2)(3)求周围四个点所占的权重⽐值如上图,fx1 = x0 - x1;fx2 = 1.0f - fx1;fy1 = y0 - y1;fy2 = 1.0f - fy1;float s1 = fx1*fy1;float s2 = fx2*fy1;float s3 = fx2*fy2;float s4 = fx1*fy2;我们以value(坐标)来代表取得此点的坐标值,则:value(x0,y0) = value(x2,y2)*s1+value(x1,y2)*s2+value(x1,y1)*s3+value(x2,y1)*s4;如果对上述运算不够明⽩的话,可以这样来求。

双线性插值法(bilinearinterpolation)

双线性插值法(bilinearinterpolation)

双线性插值法(bilinearinterpolation)前⾯讲解了最近邻插值法缩放图像以及不⾜之处,本篇介绍另外⼀种插值法,介绍双线性插值法之前先介绍线性插值。

1. 线性插值 线性插值是指插值函数为⼀次多项式的插值⽅式,其在插值节点上的插值误差为零。

线性插值可以⽤来近似代替原函数,也可以⽤来计算得到查表过程中表中没有的数值。

如图所⽰现在已知y=f(x)的两个点坐标分别是(x0,y0),(x1,y1),现在在区间(x0,x1)内给定任意x,如何求y,线性插值法采⽤图中红点的y值代替f(x)的y值。

假设x处的直线上的红点坐标为(x,Y),那么Y约等于y。

根据图可以得到公式:⽤y0,y1表⽰得到公式很好记,将分式看做权重系数。

2. 双线性插值法 双线性插值法也叫双线性内插,其核⼼思想是在两个⽅向分别进⾏⼀次线性插值。

双线性插值作为数值分析中的⼀种插值算法,⼴泛应⽤在信号处理,数字图像和视频处理等⽅⾯。

如坐标图所⽰,⽤横纵坐标代表图像像素的位置,f(x,y)代表该像素点(x,y)的彩⾊值或灰度值。

将图像放⼤或缩⼩,⽬的像素dst对应的原像素src中的坐标转换公式如下,公式很好理解,可参考上⼀章最近邻插值法。

srcX=dstX*(srcWidth/dstWidth) srcY=dstY*(srcHeight/dstHeight) 上式中,dstX与dstY为⽬标图像的某个像素的横纵坐标,dstWidth与dstHeight为⽬标图像的长与宽;srcWidth与srcHeight为原图像的宽度与⾼度。

srcX,srcY为⽬标图像在该点(dstX,dstY)对应的原图像的坐标。

现在假设⽬标图像的像素点(x’,y’)映射到原图像中是(x,y),也就是图中的P点。

设Q11 = (x1, y1)、Q12 = (x1, y2)、Q21 = (x2, y1) 、Q22 = (x2, y2),图中Q11,Q12,Q21,Q22分别为距离P点的最近的四个点。

一种基于边缘方向的双线性插值方法

一种基于边缘方向的双线性插值方法

有更高分辨率 的图像 。图像 插值技术的关键在 J
于使 插值后 的 图 像尽 可 能地 保 持 原 始 图 像 的 清 晰 度 。图像插值 的方 法 很 多 , 统 的方 法 有 最 近邻 点 传 插值 法 、 双线性 插 值 法 和样 条 插 值 法 。这些 方 法 算
双线性插值法是一 种常用 的插值方法 , 用插值 它 点周 围 4个邻 点 的灰度值 加权 内插 作 为该点 的灰 度 值 , ]它可分 解 为二 次 一 维线 性 插 值 , 图 1所 示 。 如 先沿水平方 向进行 第一 次线性插值计算

法简单 、 计算量小、 易于实现, 只考虑到插值点与 但

种 基 于边 缘 方 向 的双 线性 插 值 方 法
龚 昌来 , 聪 , 冬 涛 罗 杨
( 嘉应学院电子信息工程学院 , 广东 梅州 54 1 ) 10 5
摘 要 : 对传 统 的双 线性插 值存 在 的 图像边 缘模糊 问题 , 文提 出一种 改进 方法 。首先根 据 针 本 插值 点 的几何位 置及 邻点 的灰度 大小 , 定插值 点灰度 的梯度 方 向和边 缘方 向 , 确 然后 沿边缘 方 向进 行双 线性插值 。该 方 法可实现 沿任 意边 缘方 向的插值 , 并且 计算简 单。 实验结果 表 明 , 该 方 法与传 统 的双 线性插值 法 相 比, 值 图像 的平 均梯度 增加 而均 方误 差减 小 , 效地提 高 了插 插 有 值 图像 的质量。 关键词 : 图像插 值 ; 线性插值 ; 双 灰度 梯度 ; 缘 方 向 边
itr oa o sma eao g t ee g ie t n . h sme o al e l ei tr oain a o ga y e g i ci n n e n ep l t n i d l n d e dr ci s T i t d C l r ai n e l t ln n d e dr t sa d t i h o h z p o e o h l oi ag rtm s s l n a t E p rme ts o s t a h o e t o a b iu l mp o e t e i g u i . h i i e a d fs . x e mp i n h w h tt e n v lme h d c n o vo sy i r v h ma e q a t l y Ke r s i g ne o ain; i n a t r oa in ga r d e t e g i c in y wo d : ma e i tr lt p o b l e ri e p lt ; ry g a in ;d e dr t i n o e o

二维插值算法原理

二维插值算法原理

二维插值算法是一种用于在二维空间中估计未知数据点的方法。

它基于已知数据点的值和位置来推断未知数据点的值。

以下是常见的二维插值算法原理之一:双线性插值。

双线性插值是一种基于四个最近邻数据点进行估计的方法。

假设我们有一个二维网格,已知在四个顶点上的数据点的值和位置。

要估计某个位置处的未知数据点的值,双线性插值算法按照以下步骤进行:
1.找到目标位置的最近的四个已知数据点,通常称为左上、右上、左下和右下。

2.计算目标位置相对于这四个已知数据点的相对位置权重。

这可以通过计算目标位置到每个已知数据点的水平和垂直距离,然后根据距离来计算相对权重。

3.根据权重对四个已知数据点的值进行加权平均。

这里的加权平均可以使用线性插值进行计算。

4.得到目标位置的估计值作为插值结果。

双线性插值算法基于以下两个假设:
-在目标位置的附近,插值曲面在水平和垂直方向上是一致的,即呈现线性关系。

-已知数据点之间的变化不会很剧烈,即目标位置与附近已知数据点的值之间存在一定的连续性。

双线性插值算法是一种简单而有效的二维插值方法,适用于平滑、连续变化的数据。

但对于非线性、不规则的数据分布,或者存在边界情况的情况下,可能需要使用其他更复杂的插值算法来获得更准确的估计结果。

双线性内插法

双线性内插法
• 我們必須保證旋轉之後,像素仍必須位在網格 上。
• 這裡可以如圖6.22 所示,用一個方形框住旋轉 後的影像,然後檢視虛線方框內的所有整數值 像素點(x', y' )。包含在旋轉影像中的點都是再 旋轉回去也會落在原始影像範圍內的數值。
21
6.6 旋轉
22
6.6 旋轉
23
6.6 旋轉
• (x', y' ) 的灰階值可透過周圍的灰階值,以內插 法找出來。這個數值就是旋轉後影像像素(x', y' ) 的灰階值。
24
第六章 影像幾何 第151頁
6.6 旋轉
25
6.7 歪像(Anamorphosis)
26
6.7 歪像(Ahosis)
28
谢谢观看! 2020
29
• 函數imresize
其中A 是任何形態的影像,k 是縮放係數,方法( 'method')則可為近鄰('nearest')或雙線性 ('bilineaer')。
5
6.2 影像內插法
6
6.3 一般性內插法
• Generalized interpolation function:
(6.2)
• R0(u) Nearest-neighbor interpolation
第六章 影像幾何 6.1 數據內插法
• 假設有4 個數值要放大成8 個數值,該怎麼做?
• 解出線性係數a、b如下:
• 如此我們便可以得到以下 線性關係:
(連續性)
1
6.1 數據內插法
• 除了第一點與最後一點,x'i 完全不會與原始的 xj 相對應。
• 必須以已知的鄰近f(xj) 值來估算函數值 f(x'i)。 • 這種以周圍數值估算函數值的方法稱為內插法

内插法怎么用

内插法怎么用

内插法怎么用导言:内插法是数值分析中常用的插值技术。

在实际问题中,往往需要根据给定的离散数据点,通过内插法计算出其他位置的数据点的值。

内插法的应用广泛,例如在地理信息系统中用于生成高程图,计算机图形学中用于图像处理,以及金融领域中用于补充缺失的数据点等等。

本文将介绍两种常见的内插法:线性插值和拉格朗日插值。

一、线性插值线性插值是一种简单但常用的内插法。

它基于两个已知数据点,通过线性关系推算中间点的值。

具体步骤如下:1. 确定两个已知数据点(x1, y1)和(x2, y2),其中x1 < x2。

2. 根据已知数据点构建线性插值函数:y = y1 + (x - x1) * (y2 - y1) / (x2 - x1)其中,y为待求的中间点的值,x为中间点的横坐标。

3. 将待求的中间点的横坐标代入插值函数,计算出中间点的纵坐标。

例如,已知数据点(0, 0)和(2, 4),求横坐标为1的中间点的纵坐标。

根据线性插值公式,代入已知数据点的值和待求的中间点的横坐标:y = 0 + (1 - 0) * (4 - 0) / (2 - 0)= 1 * 4 / 2= 2因此,在横坐标为1的位置上,中间点的纵坐标为2。

线性插值的优点是计算简单快捷,而缺点是插值精度相对较低。

二、拉格朗日插值拉格朗日插值是一种更精确的内插法,它利用多项式插值的思想。

具体步骤如下:1. 确定多个已知数据点(x1, y1),(x2, y2),...,(xn, yn),其中x1 < x2 < ... < xn。

2. 根据已知数据点构建拉格朗日插值多项式:L(x) = y1 * L1(x) + y2 * L2(x) + ... + yn * Ln(x)其中,L(x)为待求中间点的值,Li(x)为拉格朗日基函数。

拉格朗日基函数的定义为:Li(x) = (x - x1) * (x - x2) * ... * (x - xi-1) * (x - xi+1) * ... * (x - xn) / ((xi - x1) * (xi - x2) * ... * (xi - xi-1) * (xi - xi+1) * ... * (xi - xn))3. 将待求的中间点的横坐标代入拉格朗日插值多项式,计算出中间点的纵坐标。

双线性内插值(精)

双线性内插值(精)

三种插值算法最近邻插值法的双线性内插值:对于图像中一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v,其中 i 、 j 均为非负整数, u 、 v 为 [0,1区间的浮点数,则这个像素得值f(i+u,j+v 可由原图像中坐标为 (i,j、 (i+1,j、 (i,j+1、 (i+1,j+1所对应的周围四个像素的值决定,即:f(i+u,j+v = (1-u(1-vf(i,j + (1-uvf(i,j+1 + u(1-vf(i+1,j + uvf(i+1,j+1其中 f(i,j表示源图像 (i,j处的的像素值,以此类推这就是双线性内插值法。

双线性内插值法计算量大,但缩放后图像质量高, 不会出现像素值不连续的的情况。

由于双线性插值具有低通滤波器的性质, 使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊插值的计算方法有很多, 比较常用的有最近像素插值算法、双线性插值算法、双三次插值算法和分形算法的四种。

其中, 最近像素插值算法是最简单的一种插值算法, 这种方法是当图片放大时, 缺少的像素通过直接使用与之最接近的原有像素的颜色生成, 也就是说照搬旁边的像素。

如图 1所示,当图片扩大时,要增加 X 点处的像素,由于 X 点与 A 、 B 这两个有效像素中的 B 点最接近,因此 X 点会直接照搬B 点的像素,从而使到 X 点生成的效果与 B 点一样。

虽然这种算法简单, 因此处理的速度很快, 但结果通常会产生明显可见的锯齿, 效果往往不佳。

双线性插值算法, 是指输出的图像的每个像素都是原图中四个像素运算的结果, 由于它是从原图四个像素中运算的, 因此这种算法很大程度上消除了锯齿现象, 而且效果也比较好。

双三次插值算法是双线性插值算法的改进算法,它输出图像的每个像素都是原图 16个像素运算的结果, 由于效果好, 运算速度也不慢, 因而这种插值方法是一种很常见的算法, 普遍用在图像编辑软件、打印机驱动和数码相机上。

双线性内插值(精)

双线性内插值(精)

三种插值算法最近邻插值法的双线性内插值:对于图像中一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v,其中 i 、 j 均为非负整数, u 、 v 为 [0,1区间的浮点数,则这个像素得值f(i+u,j+v 可由原图像中坐标为 (i,j、 (i+1,j、 (i,j+1、 (i+1,j+1所对应的周围四个像素的值决定,即:f(i+u,j+v = (1-u(1-vf(i,j + (1-uvf(i,j+1 + u(1-vf(i+1,j + uvf(i+1,j+1其中 f(i,j表示源图像 (i,j处的的像素值,以此类推这就是双线性内插值法。

双线性内插值法计算量大,但缩放后图像质量高, 不会出现像素值不连续的的情况。

由于双线性插值具有低通滤波器的性质, 使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊插值的计算方法有很多, 比较常用的有最近像素插值算法、双线性插值算法、双三次插值算法和分形算法的四种。

其中, 最近像素插值算法是最简单的一种插值算法, 这种方法是当图片放大时, 缺少的像素通过直接使用与之最接近的原有像素的颜色生成, 也就是说照搬旁边的像素。

如图 1所示,当图片扩大时,要增加 X 点处的像素,由于 X 点与 A 、 B 这两个有效像素中的 B 点最接近,因此 X 点会直接照搬B 点的像素,从而使到 X 点生成的效果与 B 点一样。

虽然这种算法简单, 因此处理的速度很快, 但结果通常会产生明显可见的锯齿, 效果往往不佳。

双线性插值算法, 是指输出的图像的每个像素都是原图中四个像素运算的结果, 由于它是从原图四个像素中运算的, 因此这种算法很大程度上消除了锯齿现象, 而且效果也比较好。

双三次插值算法是双线性插值算法的改进算法,它输出图像的每个像素都是原图 16个像素运算的结果, 由于效果好, 运算速度也不慢, 因而这种插值方法是一种很常见的算法, 普遍用在图像编辑软件、打印机驱动和数码相机上。

基于双线性内插的图像处理算法及其优化

基于双线性内插的图像处理算法及其优化

基于双线性内插的图像处理算法及其优化
曹亚君;邵玉兰
【期刊名称】《铜仁职业技术学院学报》
【年(卷),期】2012(000)002
【摘要】双线性内插放大算法在平滑图像的同时会使边缘模糊。

针对此问题,提出一种基于双线性内插的增强图像轮廓优化算法,使用高通滤波器让高频分量通过,实现边缘细节锐化,提高了图像轮廓清晰度。

实验分析,优化算法更适于数字图像实时放大处理。

【总页数】3页(P40-42)
【作者】曹亚君;邵玉兰
【作者单位】商丘职业技术学院
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.基于双线性内插算法的多路视频缩放设计
2.基于双线性内插的图像处理算法及其优化
3.基于C6000的滑动窗口图像处理算法存储优化
4.基于双线性内插算法在水深断面测量中的应用
5.基于双线性内插模型的地理空间数据保密技术研究
因版权原因,仅展示原文概要,查看原文内容请购买。

双线性内插值算法的原理解析

双线性内插值算法的原理解析

图像缩放的双线性内插值算法的原理解析图像的缩放很好理解,就是图像的放大和缩小。

传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。

当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。

下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用一个像素矩阵来描述图像的方法,对于另一种图像:用函数来描述图像的矢量图,不在本文讨论之列。

越是简单的模型越适合用来举例子,我们就举个简单的图像:3X3 的256级灰度图,也就是高为3个象素,宽也是3个象素的图像,每个象素的取值可以是0-255,代表该像素的亮度,255代表最亮,也就是白色,0代表最暗,即黑色。

假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source):234 38 2267 44 1289 65 63这个矩阵中,元素坐标(x,y)是这样确定的,x从左到右,从0开始,y从上到下,也是从零开始,这是图象处理中最常用的坐标系,就是这样一个坐标:---------------------->X|||||∨Y如果想把这副图放大为4X4大小的图像,那么该怎么做呢?那么第一步肯定想到的是先把4X4的矩阵先画出来再说,好了矩阵画出来了,如下所示,当然,矩阵的每个像素都是未知数,等待着我们去填充(这个将要被填充的图的叫做目标图,Destination):? ? ? ?? ? ? ?? ? ? ?? ? ? ?然后要往这个空的矩阵里面填值了,要填的值从哪里来来呢?是从源图中来,好,先填写目标图最左上角的象素,坐标为(0,0),那么该坐标对应源图中的坐标可以由如下公式得出:srcX=dstX* (srcWidth/dstWidth) , srcY = dstY * (srcHeight/dstHeight)好了,套用公式,就可以找到对应的原图的坐标了(0*(3/4),0*(3/4))=>(0*0.75,0*0.75)=>(0,0),找到了源图的对应坐标,就可以把源图中坐标为(0,0)处的234象素值填进去目标图的(0,0)这个位置了。

双线性插值-详解

双线性插值-详解

双线性插值-详解
双线性插值(Bilinear interpolation)
目录
• 1 什么是双线性插值
• 2 相关条目
什么是双线性插值
双线性插值又称为双线性内插.在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。

红色的数据点与待插值得到的绿色点假如我们想得到未知函数f在点P=(x,y)的值,假设我们已知函数f在Q11 = (x1,y1)、Q12 = (x1.y2),Q21 = (x2,y1)以及Q22 = (x2,y2)四个点的值。

首先在x方向进行线性插值,得到
然后在y方向进行线性插值,得到
这样就得到所要的结果f(x,y),
如果选择一个坐标系统使得f的四个已知点坐标分别为(0,0)、(0,1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为
或者用矩阵运算表示为
与这种插值方法名称不同的是,这种插值方法并不是线性的,它的形式是
(a1x + a2)(a3y + a4)
它是两个线性函数的乘积。

另外,插值也可以表示为
b1 + b2x + b3y + b4xy
在这两种情况下,常数的数目]都对应于给定的f的数据点数目。

线性插值的结果与插值的顺序无关。

首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。

双线性插值的一个显然的三维空间延伸是三线性插值。

相关条目
•线性插值法
•双三次插值
•三线性插值
-全文完-。

线性内插法公式

线性内插法公式

线性内插法公式线性内插法是用于在两个已知点之间插值的方法。

插值意味着对于给定的一些已知数据点,我们可以用这些点来预测在它们之间的值。

具体来说,假设我们有两个已知数据点(x0, y0) 和(x1, y1)。

如果我们想要预测在x0 和x1 之间的y 值,我们可以使用线性内插法。

线性内插法的公式如下:y = y0 + (x - x0) * [(y1 - y0) / (x1 - x0)]其中x 是我们想要预测的值的x 坐标,y0 和y1 是已知数据点的y 坐标,x0 和x1 是已知数据点的x 坐标。

线性内插法的原理是基于直线的斜率。

因为两个已知点之间的所有点都在一条直线上,所以我们可以使用斜率来预测这些点的y 值。

线性内插法最常用于插值一组数据,因为它是最简单的内插方法。

它的缺点是它只能用于直线上的点,因此对于更复杂的数据,它的精度可能不够高。

不过,线性内插法仍然是一种非常有用的工具,因为它可以在没有太多计算的情况下快速插值。

它也是其他更复杂的内插方法的基础。

例如,我们可以使用多项式内插法来插值一组数据,而多项式内插法可以用线性内插法来拟合其中的每一项。

此外,线性内插法还可以用于插值一组二维数据。

在这种情况下,我们可以使用线性内插法来插值每一维。

例如,我们可以使用线性内插法来插值x 和y 坐标,然后用插值的坐标来计算z 坐标。

总之,线性内插法是一种简单但强大的工具,可以用来在两个已知数据点之间插值。

它的原理基于直线的斜率,因此它最常用于插值一组数据。

尽管它只能用于直线上的点,但它仍然是一种有用的工具,可以在没有太多计算的情况下快速插值。

线性内插值

线性内插值

双线性内插值:对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v),其中i、j均为非负整数,u、v为[0,1)区间的浮点数,则这个像素得值f(i+u,j+v) 可由原图像中坐标为(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)其中f(i,j)表示源图像(i,j)处的的像素值,以此类推这就是双线性内插值法。

双线性内插值法计算量大,但缩放后图像质量高,不会出现像素值不连续的的情况。

由于双线性插值具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊三次卷积法能够克服以上两种算法的不足,计算精度高,但计算亮大,他考虑一个浮点坐标(i+u,j+v)周围的16个邻点,目的像素值f(i+u,j+v)可由如下插值公式得到:f(i+u,j+v) = [A] * [B] * [C][A]=[ S(u + 1)S(u + 0)S(u - 1)S(u - 2) ]┏f(i-1, j-1)f(i-1, j+0)f(i-1, j+1)f(i-1, j+2) ┓[B]=┃f(i+0, j-1)f(i+0, j+0)f(i+0, j+1)f(i+0, j+2) ┃┃f(i+1, j-1)f(i+1, j+0)f(i+1, j+1)f(i+1, j+2) ┃┗f(i+2, j-1)f(i+2, j+0)f(i+2, j+1)f(i+2, j+2) ┛┏S(v + 1) ┓[C]=┃S(v + 0) ┃┃S(v - 1) ┃┗S(v - 2) ┛┏1-2*Abs(x)^2+Abs(x)^3, 0<=Abs(x)<1S(x)={4-8*Abs(x)+5*Abs(x)^2-Abs(x)^3, 1<=Abs(x)<2┗0, Abs(x)>=2S(x)是对Sin(x*Pi)/x 的逼近(Pi是圆周率——π)最邻近插值(近邻取样法)、双线性内插值、三次卷积法等插值算法对于旋转变换、错切变换、一般线性变换和非线性变换都适用。

双线性插值算法

双线性插值算法
目标像素的值 = (InterQ21andQ22 * 256 + (InterQ11andQ12 InterQ21andQ22) * RowDelta) >> 16; 对于真彩色位图,应该分别对每个像 素的 G、B、R 的值进行处理。
终止
双线性插值图像放大/缩小算法
void ResizeWorkingBitmap(tWorkBMP *a, tWorkBMP *b, WORD bx, WORD by) {
图4
目标图像 C 像素区域对应的 Q21,Q22,Q11,Q12,以绿色区域为原点向右下 方扩展的 2*2 区域。
Q21 Q22 Q11 Q12 图5
目标图像 D 像素区域对应的 Q21,Q22,Q11,Q12,目标图像处于最后两行的 边界情况,将 Q21,Q22,Q11,Q12 这四个点的值设为一样。
unsigned int PtAR = 0, PtBR = 0, PtCR = 0, PtDR = 0, PixelValueR = 0; unsigned int PtAG = 0, PtBG = 0, PtCG = 0, PtDG = 0, PixelValueG = 0; unsigned int PtAB = 0, PtBB = 0, PtCB = 0, PtDB = 0, PixelValueB = 0; register unsigned SpixelColNum = 0, SpixelRowNum = 0, DestCol = 0, DestRow = 0; unsigned int SpixelColAddr = 0, SpixelRowAddr = 0; unsigned int ColDelta = 0, RowDelta = 0, scaleV = 0, scaleH = 0; unsigned int ContribAandBR = 0, ContribCandDR = 0; unsigned int ContribAandBG = 0, ContribCandDG = 0; unsigned int ContribAandBB = 0, ContribCandDB = 0; unsigned int ContribTem[2048 * 3];// Max width is 2048 int i = 0;

4.7.2 双线性插值及其Visual C++实现[共2页]

4.7.2 双线性插值及其Visual C++实现[共2页]

第4章 图像的几何变换
– 119 – 最近邻插值可表示为:
f (x,y ) =
g ( round(x ), round (y ) );
我们在之前的各种变换Visual C++实现中均采用了最近邻插值的算法,因为它计算简单,而且在很多情况下的输出效果也可以接受。

然而,最近邻插值法会在图像中产生人为加工的痕迹,详见例4.1。

4.7.2 双线性插值及其Visual C++实现
双线性插值又称为一阶插值,是线性插值扩展到二维的一种应用。

它可以通过一系列的一阶线性插值得到。

注意:线性(linear ),指量与量之间按比例、成直线的关系,在数学上可以理解为
一阶导数为常数的函数;线性插值则是指根据两个点的值线性确定位于这两个点连线上的某一点的值。

1.理论基础
输出像素的值为输入图像中距离它最近的2×2邻域内采样点像素灰度值的加权平均。

设已知单位正方形的顶点坐标分别为f (0,0)、f (1,0)、f (0,1)、f (1,1),如图4.14所示,我们要通过双线性插值得到正方形内任意点f (x ,y )的值。

图4.14 线性插值示意图 首先对上端的两个点进行线性插值得到:
f (x ,0)=f (0,0)+x [f (1,0)-f (0,0)] (4-5) 再对下端的两个顶点进行线性插值得到:
f (x ,1)=f (0,1)+x [f (1,1)-f (0,1)] (4-6) 最后,对垂直方向进行线性插值得到: f (x ,y )=f (x ,y )+y [f (x ,1)-f (x ,0)] (4-7)。

Excel双线性插值

Excel双线性插值

5 0.25 0.24 0.2 0.17 0.15 0.13 0.11 0.1 0.09 0.08 0.08
6 0.25 0.24 0.2 0.17 0.15 0.13 0.12 0.1 0.09 0.09 0.08
80 0.25 0.24 0.2 0.17 0.15 0.13 0.12 0.11 0.1 0.09 0.08
=MMULT( MMULT( {1,0}+{-1,1}*FORECAST(B16,{0;1},OFFSET($A$1,MATCH(B16,x_axis),0,2,1)), OFFSET($A$1,MATCH(B16,x_axis),MATCH(B17,y_axis),2,2) ), {1;0}+{-1;1}*FORECAST(B17,{0,1},OFFSET($A$1,0,MATCH(B17,y_axis),1,2)) )
分步验证(未考虑边界条件): 6 0.13 0.12 80 0.13 0.12
8 10
8 8.5 10 或者:
6 0.13 0.1275 0.12
80 0.13 0.1275 0.12

8 8.5 10
6 0.13 0.1275 0.12
6.02 0.13 0.1275 0.12
80 0.13 0.1275 0.12
使用了定义名称xaxis和yaxisf区域使用条件格式根据x和y值动态高亮
X\Y -2 -1 0 1 5 8 10 14 17 19 22
-3 0.25 0.23 0.17 0.14 0.11 0.09 0.08 0.07 0.06 0.06 0.05
-1 0.25 0.23 0.2 0.16 0.14 0.12 0.1 0.09 0.08 0.07 0.07
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

双线性插值
维基百科,自由的百科全书
双线性插值,又称为双线性内插。

在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。

红色的数据点与待插值得到的绿色点
假如我们想得到未知函数在点的值,假设我们已知函
数在, , ,
及四个点的值。

首先在x方向进行线性插值,得到
然后在y方向进行线性插值,得到
这样就得到所要的结果,
如果选择一个坐标系统使得的四个已知点坐标分别为(0, 0)、(0, 1)、(1, 0) 和(1, 1),那么插值公式就可以化简为
或者用矩阵运算表示为
与这种插值方法名称不同的是,这种插值方法的结果通
常不是线性的,它的形式是
常数的数目都对应于给定的f的数据点数目
线性插值的结果与插值的顺序无关。

首先进行y方向的插值,然后进
行x方向的插值,所得到的结果是一
样的。

双线性插值的一个显然的三维空间延
伸是三线性插值。

相关文档
最新文档