双线性内插法
- 格式:ppt
- 大小:1.52 MB
- 文档页数:28
图像缩放算法及速度优化——(⼆)双线性插值 双线性插值作为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;如果对上述运算不够明⽩的话,可以这样来求。
⽬录1.2. 视频图像处理基础知识0(双线性插值算法进⾏图像缩放)【转】版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。
(说的很明⽩)双线性插值,这个名字咋⼀听很⾼⼤上的样纸,再在维基百科上⼀查(见⽂末,我去,⼀堆的公式吓死⼈),像俺这种半⽂盲,看到公式脑⼦就懵的类型,真⼼给跪。
虽然看着好复杂,但仔细⼀看道理再简单不过了,所以还是⾃⼰梳理⼀下好。
双线性插值,顾名思义就是两个⽅向的线性插值加起来(这解释过于简单粗暴,哈哈)。
所以只要了解什么是线性插值,分别在x 轴和y 轴都做⼀遍,就是双线性插值了。
线性插值的概念也⾮常简单粗暴,就是两个点A ,B ,要在AB 中间插⼊⼀个点C (点C 坐标在AB 连线上),就直接让C 的值落在AB 的值的连线上就可以了。
如A 点坐标(0,0),值为3,B 点坐标(0,2),值为5,那要对坐标为(0,1)的点C 进⾏插值,就让C 落在AB 线上,值为4就可以了。
但是如果C 不在AB 的线上肿么办捏,所以就有了双线性插值。
如图,已知Q12,Q22,Q11,Q21,但是要插值的点为P 点,这就要⽤双线性插值了,⾸先在x 轴⽅向上,对R1和R2两个点进⾏插值,这个很简单,然后根据R1和R2对P 点进⾏插值,这就是所谓的双线性插值。
附:维基百科--双线性插值:双线性插值,⼜称为双线性内插。
在上,双线性插值是有两个变量的函数的扩展,其核⼼思想是在两个⽅向分别进⾏⼀次线性插值。
假如我们想得到未知函数 在点的值,假设我们已知函数在 ,, , 及四个点的值。
⾸先在 x ⽅向进⾏线性插值,得到然后在 y⽅向进⾏线性插值,得到这样就得到所要的结果 ,如果选择⼀个坐标系统使得的四个已知点坐标分别为 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为或者⽤运算表⽰为与这种插值⽅法名称不同的是,这种插值⽅法的结果通常不是线性的,它的形式是常数的数⽬都对应于给定的 f 的数据点数⽬线性插值的结果与插值的顺序⽆关。
使用双线性插值进行图像放大的实现一、总体设计思路Step 1:实现图像的打开、显示、保存,在打开图片之后将图片读入内存并获得了该图像除文件头以外的部分在缓存内存储的句柄,以及该图的调色板,调色板颜色种类数等等参数。
Step 2:在显示的基础上,利用代码根据放大比例重新开辟一个缓存。
将原图的BITMAPINFOHEADER拷贝过来。
并修改biHeight、biWidth、biSizeImage等参数。
Step 3:利用双线性插值算法,以原图信息为基础生成新的像素信息。
原理:双线性插值维基百科,自由的百科全书跳转到:导航, 搜索双线性插值,又称为双线性内插。
在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。
红色的数据点与待插值得到的绿色点假如我们想得到未知函数在点的值,假设我们已知函数在, , , 及四个点的值。
首先在x方向进行线性插值,得到然后在y方向进行线性插值,得到这样就得到所要的结果,如果选择一个坐标系统使得的四个已知点坐标分别为(0, 0)、(0, 1)、(1, 0) 和(1, 1),那么插值公式就可以化简为或者用矩阵运算表示为与这种插值方法名称不同的是,这种插值方法并不是线性的,它的形式是它是两个线性函数的乘积。
另外,插值也可以表示为在这两种情况下,常数的数目都对应于给定的f的数据点数目。
线性插值的结果与插值的顺序无关。
首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。
双线性插值的一个显然的三维空间延伸是三线性插值。
二、具体实现方案及细节1、需要改变的项:①BITMAPINFOHEADER里的biHeight、biWidth、biSizeImage。
②所有像素点信息2、具体方案的设计:①对双线性插值的理解:放大图像时,插值就是根据比例得到一个坐标(x,y)。
该坐标可分为四种情况:(1)得到的x和y都是整数且落在原图中,则直接取出该像素点的颜色信息即可。
图像的上采样(upsampling)与下采样(subsampled)缩⼩图像(或称为下采样(subsampled)或降采样(downsampled))的主要⽬的有两个:1、使得图像符合显⽰区域的⼤⼩;2、⽣成对应图像的缩略图。
放⼤图像(或称为上采样(upsampling)或图像插值(interpolating))的主要⽬的是放⼤原图像,从⽽可以显⽰在更⾼分辨率的显⽰设备上。
对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。
然⽽,确实有⼀些缩放⽅法能够增加图像的信息,从⽽使得缩放后的图像质量超过原图质量的。
下采样原理:对于⼀幅图像I尺⼨为M*N,对其进⾏s倍下采样,即得到(M/s)*(N/s)尺⼨的得分辨率图像,当然s应该是M和N 的公约数才⾏,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗⼝内的图像变成⼀个像素,这个像素点的值就是窗⼝内所有像素的均值:上采样原理:图像放⼤⼏乎都是采⽤内插值⽅法,即在原有图像像素的基础上在像素点之间采⽤合适的插值算法插⼊新的元素。
⽆论缩放图像(下采样)还是放⼤图像(上采样),采样⽅式有很多种。
如最近邻插值,双线性插值,均值插值,中值插值等⽅法。
在AlexNet中就使⽤了较合适的插值⽅法。
各种插值⽅法都有各⾃的优缺点。
常⽤的插值⽅法1、最邻近元法这是最简单的⼀种插值⽅法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。
设i+u, j+v(i, j为正整数,u, v为⼤于零⼩于1的⼩数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v) 如下图所⽰:如果(i+u, j+v)落在A区,即u<0.5, v<0.5,则将左上⾓象素的灰度值赋给待求象素,同理,落在B区则赋予右上⾓的象素灰度值,落在C区则赋予左下⾓象素的灰度值,落在D区则赋予右下⾓象素的灰度值。
最邻近元法计算量较⼩,但可能会造成插值⽣成的图像灰度上的不连续,在灰度变化的地⽅可能出现明显的锯齿状。
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”等待就可以了。
双线性内插公式推导及在岩土工程中的应用
张理根
【期刊名称】《城市建筑》
【年(卷),期】2014(000)029
【摘要】双线性内插在地基沉降计算、标贯锤击数修正等岩土工程问题的查表求解过程中经常用到。
通常做法是:运用三次线性内插来实现。
文章推导出了双线性内插公式,在解决查表内插等类似问题时,代入相关数据后进行计算即可。
【总页数】2页(P207-207,212)
【作者】张理根
【作者单位】东莞市建青岩土检测有限公司,东莞523112
【正文语种】中文
【相关文献】
1.GM(1,1)模型背景值构造中参数n的公式推导及其应用 [J], 李凯;魏勇
2.地电成像法在岩土工程勘察中的应用——以西虎岭景区岩土工程勘察为例 [J], 李军;常利敏;邓小宁;李靖辉
3.基于双线性内插算法在水深断面测量中的应用 [J], 张伟;孙伯娜
4.张量分析中简化记法在公式推导中的应用及张量分量的计算 [J], 史姣;王正中;蔡坤
5.局部双线性内插法构建DEM数据模型在水土保持设计中的应用 [J], 杨雪峰;徐汉超;范鹏
因版权原因,仅展示原文概要,查看原文内容请购买。
线性内插法是指两个量之间如果存在线性关系,若A(X1,Y1),B(X2,Y2)为这条直
线上的两个点,已知另一点P 的Y0 值,那么利用他们的线性关系即可求得P 点的对应值X0。
通常应用的
是点P 位于点A、B 之间,故称“线性内插法”。
在求解X0 时,可以根据下面方程计算:
(X0- X1)/(X2 - X1)= (Y0- Y1)/(Y2 - Y1)。
在具体应用中,关键是要搞清楚6 个量X1,Y1,X2,Y2,X0,Y0 之间的关系。
(1)“内插法”的原理是根据等比关系建立一个方程,然后解方程计算得出所要求的数据。
(2)仔细观察方程会看出一个特点,即相对应的数据在等式两方的位置相同。
例如:X1 位于等式左方
表达式的分子和分母的右侧,与其对应的数字Y1 应位于等式右方的表达式的分子和分母的右侧。
(3)应该注意的是,如果对X1 和X2 的数值进行交换,则必须同时对Y1 和Y2 的数值也交换,否则,计
算结果一定不正确。
总的原则是直线上任意两点间的变量X 差值之比应等于对应的变量Y 的差值之比。
内插法在财务管理[2,3],投资决策[4- 6],古代历法[7]等领域都有广泛的应用.
举个例子,已知X1=1时Y1=3,X3=3时Y3=9,那么x=2时用线性插值得到y就是3和9的算术平均数6。
名词解释:1、电磁波:当电磁振荡进入空间,变化的磁场激发了涡旋电场,变化的电场又激发了涡旋磁场,使电磁振荡在空间传播.2、电磁波谱:将各种电磁波在真空中的波长按其长短,依次排列制成的图表。
3、绝对黑体:如果一个物体对于任何波长的电磁辐射都全部吸收,则这个物体是绝对黑体。
4、光谱辐射通量密度:单位时间内通过单位面积的辐射能量,单位:W/m25、大气窗口:通过大气而较少被反射、吸收或散射的投射率较高的电磁辐射波段。
6、发射率:地物的辐射功率(单位面积上发出的辐射总通量)W与同温下的黑体辐射功率W黑的比值。
它也是遥感探测的基础和出发点7、光谱反射率:地物对某一波段的反射能量与入射总能量之比。
8、光谱反射特性曲线:根据地物反射率与波长之间的关系而绘成的曲线。
1、遥感平台:遥感平台是搭载传感器的工具。
根据运载工具的类型可分为航天平台、航空平台和地面平台。
2、遥感传感器:遥感中获取遥感数据的关键设备。
3、卫星轨道参数:升交点赤经Ω、近地点角距ω、轨道倾角i、轨道长半轴a、轨道偏心率(扁率)e、卫星过近地点时刻T4、升交点赤经:卫星轨道升交点与春分点间的角距。
升交点即卫星由南向北运动时与地球赤道面的交点。
5、轨道倾角:i角是指卫星轨道面与地球赤道面之间的两面角。
6、近地点角距:ω是指卫星轨道的近地点与升交点之间的角距。
1、遥感传感器__ 是测量和记录被探测物体的电磁波特性的工具,是遥感技术系统的重要组成部分。
8、瞬时视场扫描镜在一瞬时时间可以视为静止状态,此时接受到的目标地物的电磁波辐射,限制在一个很小的角度之内,这个角度称为瞬时视场角9、MSS成像板上排列有24+2各玻璃纤维单元,每列有6个纤维单元,每个探测器的视场为86urad,每个像元的地面分辨率为79x79m,扫描一次每个弊端获得6条扫描线图像,其地面范围为474x185KM10、TM是相对MSS的改进,一个高级的所波段扫描仪共有探测器100个,分7个波段,一次扫描成像为地面的480x185km11、HRV是一种线阵列推扫描仪,由于使用CCD元件做探测器,在瞬间能同时得到垂直航向的一天图像线,不需要用摆动的扫描镜,以推扫方式获得沿轨迹的连续图像条带1、光学影像一种以胶片或者其他的光学成像载体的形式记录的影像。
实验五图像的空间变换一、实验目的1、学习图像空间变换,并通过实验体会空间变换的效果,对其作出分析。
2、掌握利用最邻近插值和双线性插值算法(灰度插值)实现图像的缩放。
3、掌握MATLAB编程环境中基本的图像处理函数。
二、实验要求1.读入图像,对其利用最邻近插值和双线性插值法进行缩放变换,要求先使用IPT函数进行变换,然后自己编写函数实现;2.对比上述得到的结果。
三、实验原理图像的空间变换,也称几何变换或几何运算,包括图像的平移、旋转、镜像变换、转置、缩放等。
几何运算可改变图像中各物体之间的空间关系,这种运算可以看成是将各物体在图像内移动。
空间变换可如下表示:设(u,v)为源图像上的点,(x,y)为目标图像上的点,则空间变换就是将源图像上(u,v)处的像素值与目标图像上(x,y)处的像素值对应起来,并具有以下关系:x=X(u,v),y=Y(u,v) (即由(u,v)计算对应(x,y))(1.1)或u=U(x,y),v=V(x,y) (即由(x,y)计算对应(u,v))(1.2) 其中X(u,v)、Y(u,v)、U(x,y)、V(x,y)均为变换。
由(1.1)对应的变换称作向前映射法也叫像素移交法,而由(1.2)对应的变换称作向后映射法也叫像素填充法,向后映射法是向前映射法的逆。
最简单的插值算法是最邻近插值,也称为零阶插值。
最邻近插值算法简单,在许多情况下都能得到令人满意的结果,但是当图像中包含像素之间灰度级有变化的细微结构时,最邻近算法会在图像中产生人为加工的痕迹。
双线性插值算法计算量比零阶插值大,但缩放后图像质量高,不会出现像素值不连续的的情况,这样就可以获得一个令人满意的结果。
最邻近点插值取插值点的4个邻点中距离最近的邻点灰度值作为该点的灰度值。
设插值点(i,j)到周边4个邻点fk(i,j)(k =1,2,3,4)的距离为dk(k =1,2,3,4),则:g(i,j)=fk(i,j),dl =min{d1,d2,d3,d4},l=1,2,3,4 。