双线性内插法
- 格式:doc
- 大小:40.50 KB
- 文档页数:1
图像缩放算法及速度优化——(⼆)双线性插值 双线性插值作为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)前⾯讲解了最近邻插值法缩放图像以及不⾜之处,本篇介绍另外⼀种插值法,介绍双线性插值法之前先介绍线性插值。
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点的最近的四个点。
内插法的计算公式在数学和金融等领域,内插法是一种常用的计算方法,它能够帮助我们在已知的数据点之间估算未知的值。
内插法的应用范围广泛,从科学研究到金融分析,都能看到它的身影。
那什么是内插法呢?简单来说,就是在已知的两个点之间,根据一定的规律和假设,推测出中间未知点的值。
为了实现这个目的,我们需要用到内插法的计算公式。
内插法的基本原理基于线性关系。
假设我们有两个已知点(x₁, y₁) 和(x₂, y₂),现在要估算一个位于 x₁和 x₂之间的 x 所对应的 y 值。
内插法的计算公式为:y = y₁+(y₂ y₁) /(x₂ x₁) ×(xx₁)我们来逐步拆解这个公式,以便更好地理解。
首先,(y₂ y₁) /(x₂ x₁) 这个部分表示的是两个已知点之间的斜率。
斜率反映了数据的变化趋势。
然后,(x x₁) 表示我们要估算的点与已知点x₁之间的水平距离。
最后,将这两个部分相乘,就得到了在这个斜率下,水平距离所对应的垂直变化量。
再加上 y₁,就得到了估算的 y 值。
为了更直观地理解内插法的计算公式,我们来看一个实际的例子。
假设某商品的价格与销售量之间存在一定的关系。
已知当价格为 10 元时,销售量为 500 件;当价格为 15 元时,销售量为 300 件。
现在我们想知道当价格为 12 元时,销售量大概是多少。
首先,x₁= 10,y₁= 500,x₂= 15,y₂= 300。
斜率=(300 500) /(15 10) =-40然后,x = 12,x₁= 10垂直变化量=-40 ×(12 10) =-80最后,y = 500 +(-80) = 420所以,当价格为 12 元时,估计销售量为 420 件。
内插法不仅在简单的线性关系中有用,在一些稍微复杂的情况中,比如曲线关系,也可以通过分段线性化等方法来应用内插法。
再比如,在金融领域,计算债券的到期收益率时,可能会用到内插法。
已知两个不同利率下债券的价格,要估算某个特定价格对应的利率,就可以借助内插法。
遥感影像镶嵌方法(最新版4篇)篇1 目录1.遥感影像镶嵌方法的定义和重要性2.遥感影像镶嵌方法的分类3.常用的遥感影像镶嵌方法及其特点4.遥感影像镶嵌方法的应用案例5.遥感影像镶嵌方法的发展趋势篇1正文遥感影像镶嵌方法是指将多个遥感影像拼接在一起,形成一个更大范围、更高分辨率的遥感影像。
在遥感领域,镶嵌技术具有重要意义,因为它可以提高遥感数据的空间分辨率和时间分辨率,增强遥感数据的应用价值。
遥感影像镶嵌方法主要分为两类:线性镶嵌方法和非线性镶嵌方法。
线性镶嵌方法包括线性内插法、双线性内插法等,其特点是计算简单、易于实现,但可能引入误差。
非线性镶嵌方法包括非线性内插法、三次埃尔米特插值法等,其特点是可以减小误差,但计算复杂度较高。
常用的遥感影像镶嵌方法有以下几种:1.线性内插法:通过计算影像之间的线性关系,实现遥感影像的镶嵌。
此方法简单易行,但可能引入误差。
2.双线性内插法:在线性内插法的基础上,加入水平和垂直方向的插值,实现更高精度的遥感影像镶嵌。
3.非线性内插法:通过非线性方程组求解,实现遥感影像的镶嵌。
此方法可以减小误差,但计算复杂度较高。
4.三次埃尔米特插值法:利用三次埃尔米特插值函数,实现遥感影像的高精度镶嵌。
此方法具有较高的插值精度,但计算复杂度较高。
遥感影像镶嵌方法在多个领域有广泛应用,如地质勘探、环境监测、城市规划等。
例如,在地质勘探中,通过将多个遥感影像拼接在一起,可以形成高分辨率的地质构造图,为地质勘探提供重要依据。
随着遥感技术的发展,遥感影像镶嵌方法也在不断完善和优化。
未来的发展趋势包括提高镶嵌精度、简化计算过程、提高自动化程度等。
篇2 目录1.遥感影像镶嵌方法的定义2.遥感影像镶嵌方法的种类3.镶嵌方法的优缺点分析4.镶嵌方法在实际应用中的案例5.我国在遥感影像镶嵌方法的研究和应用现状篇2正文遥感影像镶嵌方法是指将多个遥感影像拼接在一起,形成一个大范围、高分辨率的遥感影像。
线性内插法具体怎么计算?内插法:就是在给定的二组数据为直线关系,在其区域之间的值,位于此直线上从而求出,在其区域之间的某一数据。
就是二者之间对应的情况下,按内插入法来求出另个数值,如二组数据:Y1,Y2 X1,X2已知:(X1,X2)一组上的某点值,求另一组(Y1,Y2)上的某点对应值。
现在要求已知:(X1,X2) )一组上的奌X,求:另一组(Y1,Y2)上的Y点对应值。
公式:Y=Y1+﹙Y2-Y1﹚÷﹙X2-X1﹚×﹙X-X1﹚式中:Y——所要求某区间的内插值;Y1、Y2——分别为所要求某区间之间的低值和高值;X1、X2——分别为所要求某区间之间对应的低值和高值。
图集11G101—1第53页中:锚固区的保护层厚度3d时受拉钢筋搭接长度修正系数ζa=0.8:5d时受拉钢筋搭接长度修正系数ζa=0.7。
【例1】假设,锚固区的保护层厚度为3.2d。
求受拉钢筋搭接长度修正系数ζa?公式:Y=Y1+﹙Y2-Y1﹚÷﹙X2-X1﹚×﹙X-X1﹚式中:Y——受拉钢筋锚固长度修正系数内插ζa取值;Y1、Y2——分别受拉钢筋锚固长度修正系数表中的低值ζa=0.7和高值ζa=0.8;X1、X2——锚固区的保护层厚度表中的低值3d和高值5d;解:Y=Y1+﹙Y2-Y1﹚÷﹙X2-X1﹚×﹙X-X1﹚=0.7+﹙0.8-0.7﹚÷﹙5d -3d﹚×﹙3.2d-3d﹚=0.7+0.05×0.2=0.71。
答:锚固区的保护层厚度为3.2d。
受拉钢筋锚固长度修正系数ζa=0.71。
【例2】假设,锚固区的保护层厚度为3.4d。
求受拉钢筋锚固长度修正系数ζa?解:Y=Y1+﹙Y2-Y1﹚÷﹙X2-X1﹚×﹙X-X1﹚=0.7+﹙0.8-0.7﹚÷﹙5d -3d﹚×﹙3.4d-3d﹚=0.7+0.05×0.4=0.72。
线性内插法引言:线性内插法是一种常用的数值计算方法,用于根据已知数据点的位置和值,估计在这些数据点之间的位置的函数值。
这种插值方法以线性函数作为插值函数,在两个已知数据点之间进行插值,并根据两个数据点的位置和值,通过线性函数来预测插值点的函数值。
线性内插法在各个领域中得到广泛的应用,如数值分析、图形学、地理信息系统等。
基本原理:线性内插法基于线性函数的性质进行插值,其中线性函数由两个已知数据点(x1,y1)和(x2,y2)确定。
线性函数的一般形式可以表示为:f(x) = y1 + (x - x1) * (y2 - y1) / (x2 - x1)在这个公式中,x是待插值点的位置,f(x)是待估计的函数值。
根据基本原理,线性内插法做出的估计与两个已知数据点之间的线性函数有关。
步骤:线性内插法的步骤可以概括为以下几个部分:1. 确定已知数据点的位置和数值:在进行线性内插之前,需要确定一对已知数据点的位置和函数值。
这些数据点可以通过实验、观测或者其他数值方法得到。
2. 计算待插值点的位置:线性内插法适用于已知数据点之间的任何位置,因此需要确定待插值点的位置。
3. 使用线性函数进行插值:根据待插值点的位置,计算线性函数的系数,并应用到线性函数公式中。
根据插值函数的形式,计算出待插值点的函数值。
优点:线性内插法具有以下几个优点:1. 简单易懂:线性内插法是一种基本的插值方法,容易理解和实现。
2. 运算速度快:由于线性内插法只涉及到简单的线性函数计算,因此计算速度相对较快。
3. 插值效果较好:线性内插法利用两个已知数据点之间的线性函数进行插值,能够较好地估计插值点的函数值。
应用领域:线性内插法在各个领域中得到广泛的应用,包括但不限于以下几个领域:1. 数值分析:线性内插法是数值分析中常用的插值方法,可用于函数逼近、数值积分等计算任务。
2. 图形学:线性内插法可用于图形学中的曲线和曲面生成,通过已知控制点之间的线性内插,可以生成光滑的图形。
ENVI中重采样的三种方法优劣比较:重采样:由于输出图像的像元点在输入图像中的行列号不是或不全是整数关系,所以需要根据输出图像上的各像元在输入图像中的位置,对原始图像按一定规则重新采样,进行亮度值的插值运算,建立新的图像矩阵.最邻近法: 将最邻近的像元值赋予新像元.优点:不引入新的像元值,适合分类前使用;有利于区分植被类型,确定湖泊浑浊程度,温度等;计算简单,速度快。
缺点:最大可产生半个像元的位置偏移,改变了像元值的几何连续性,原图中某些线状特征会被扭曲或变粗成块状。
双线性内插法: 使用邻近4 个点的像元值,按照其据内插点的距离赋予不同的权重,进行线性内插.优点: 图像平滑,无台阶现象。
线状特征的块状化现象减少;空间位置精度更高。
缺点: 像元被平均,有低频卷积滤波效果,破坏了原来的像元值,在波谱识别分类分析中,会引起一些问题。
边缘被平滑,不利于边缘检测。
三次卷积内插法: 使用内插点周围的16 个像元值,用三次卷积函数进行内插.优点: 高频信息损失少,可将噪声平滑,对边缘有所增强,具有均衡化和清晰化的效果。
缺点: 破坏了原来的像元值,计算量大.内插方法的选择除了考虑图像的显示要求及计算量外,在做分类时还要考虑内插结果对分类的影响,特别是当纹理信息为分类的主要信息时。
研究表明,最近邻采样将严重改变原图像的纹理信息。
因此,当纹理信息为分类主要信息时,不宜选用最近邻采样。
双线性内插及三次卷积内插将减少图像异质性,增加图像同构型,其中,双线性内插方法使这种变化更为明显。
昨天同学问我,1:25W的影像怎么弄成1:50W,我感觉应该是重采样吧,缩小一倍就可以了,其实这个步骤也很简单,打开ENVI,单击主菜单的第二个“Basic Tools”--“Resize Data (Spatial/Spectral)”此时会弹出“Resize Data Input File”对话框如图,之后选中需要重采样的图像(影像可以之前打开,也可以在'Open'--'New File'中打开),单击“OK”会弹出“Resize Data Paramcters”对话框,如图编号1设置影像的分辨率,2是重采样模型,3设置保存的路径和名称,当然可以选择Memory,单击“OK”等待就可以了。
图像重采样主要有三种方法,分别是最邻近法,双线性内插法和三次卷积内插法。
(1)最近邻法。
该法针对于二维图像“取待采样点周围4个相邻像素点中距离最近的1个邻点的灰度值作为该点的灰度值”如图(1)。
此算法虽然计算简单,但由于仅用对该采样点影响最大的(即最近的)像素的灰度值作为该点的值,而没有考虑其他相邻像素的影响(相关性),因此重新采样后的图像灰度值有明显的不连续性,像质损失较大。
(2)图(1)图像缩放中的插值和重采样(2)双线性内插法作为对最近邻点法的一种改进,这种方法是“利用周围4个邻点的灰度值在两个方向上作线性内插以得到待采样点的灰度值”。
即根据待采样点与相邻点的距离确定相应的权值计算出待采样点的灰度值。
双线性内插的示意图如图2所示,其中X 、Y坐标表示像素的位置,f(*,*)表示像素的灰度值。
其数学表达式为: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) (2)与最邻近法相比。
双线性内插法由于考虑了待采样点周围四个直接邻点对待采样点的影响,此基本克服了前者灰度不连续的缺点,但其代价是计算量有所增大。
但由于此方法仅考虑四个直接邻点灰度值的影响,而未考虑到各邻点间灰度值变化率的影响,因此具有低通滤波器的性质,使缩放后图像的高频分量受到损失,图像的轮廓变得较模糊。
用此方法缩放后的图像与原图像相比,仍然存在由于计算模型考虑不周而产生的图像质量退化与精度降低的问题。
(3)立方卷积法作为对双线性内插法的改进,即“不仅考虑到四个直接邻点灰度值的影响,还考虑到各邻点间灰度值变化率的影响”,立方卷积法利用了待采样点周围更大邻域内像素的灰度值作三次插值。
此法利用了如图3所示的三次多项式S(w)。
S(w)的数学表达式为:式中,w为自变量,S(w)为三次多项式的值。
如图4所示的是三次多项式进行内插,计算时用周围的16个邻点的灰度值按下式进行内插,则该像素的灰度值f(x,y)为f(x,y)=A·B·C (3)若令k=0,则式(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个像素运算的结果, 由于效果好, 运算速度也不慢, 因而这种插值方法是一种很常见的算法, 普遍用在图像编辑软件、打印机驱动和数码相机上。