图像的插值算法

图像的插值算法

插值的定义:

设函数y=f(x)在区间[a,b]上有定义,且已知在点a≤x0<x1<…<xn≤b上的值为y0,y1,…,yn,若存在简单函数P(x)使得

P(xi)=yi (i=0,1,…,n)

成立,就称P(x)为f(x)的插值函数, x0,x1,…,xn称为插值节点,包含插值节点的区间[a,b]称为插值区间,求插值函数P(x)的方法就是插值法。

有时,在图像的几何变换中,比如缩放和旋转,输出图像上的像素点坐标有可能对应于原图像上几个像素点之间的位置,这个时候就需要通过灰度插值处理来计算出该输出点的灰度值。

常用的图像插值算法可以分为最近邻插值,双线性插值和立方卷积插值。

1.最近邻插值

最简单的插值方法是最近邻插值,即选择离它所映射到的位置最近的输入像素的灰度值为插值结果。若几何变换后输出图像上坐标为(x,y)的像素点在原图像上的对应值坐标为

(u,v),则近邻插值公式为:

?[······]表示求整

与其它两种插值算法相比,最近插值具有简单快速的特点,但是对于邻近像素点的灰度值有较改变,细微结构是粗糙的。

2.双线性插值

设g(x‘,y‘)上像素坐标为(x‘,y‘)的点对应于原图像上的坐标为(u,v),如下图所示

将f(x,y)周围的四点存入二维数组a[2][2],并令u=0,v=1,简化后可以得到双线性插值公式:

1:x方向上的线性插值

R1 = (1-x)*array[0][0] + x*array[1][0];
    R2 = (1-x)*array[0][1] + x*array[1][1];

2:y方向上的线性插值

双线性插值具有低通滤波器特质,使高频信号受损,图像轮廓模糊,但同时边缘处的过度也比较自然。缺点是运算速度比最近邻插值要慢。

3.三次卷积插值(又称立方卷积插值)

三次卷积法能够克服以上两种算法的不足,计算精度高,但计算亮大,他考虑一个浮点坐标(i+u,j+v)周围的16个邻点,目的像素值f(i+u,j+v)可由如下插值公式得到:


S(x)是对 Sin(x*Pi)/x 的逼近(Pi是圆周率——π)

最邻近插值(近邻取样法)、双线性内插值、三次卷积法 等插值算法对于旋转变换、错切变换、一般线性变换 和 非线性变换 都适用。

时间: 2024-10-10 07:15:17

图像的插值算法的相关文章

Mipmap与纹理过滤

为了加快渲染速度和减少纹理锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap. 使用DirectX Texture Tool(DX自带工具)预生成Mipmap Chain Original  Mip1 Mip2 Mip3 Mip4 Mip5 Mip6 Mip7 Mip8 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 (1)Mipmap宽高值不一定要相等,但需要为2的n次幂,最低精度为1x1 (2)从原始

数字图像处理【一】基础理论

1. 基本处理流程: a) 图像预处理: 1) 点运算(灰度直方图/灰度线性变换/灰度对数变换/伽马变换/灰度阈值变换/分段线性变换/直方图均衡化/直方图规定化) 2) 几何变换(图像平移/图像镜像/图像转置/图像缩放/图像旋转/插值算法/图像配准) 3) 空间域图像增强(空间域滤波/图像平滑/中值滤波/图像锐化) 4) 频域图像增强(傅里叶变换/频率滤波) 5) 彩色图像处理(彩色模型(RGB/CMY/CMYK/HSI/HSV/YUV/YIQ/Lab)/彩色补偿/彩色平衡) 6) 形态学图像处

图像处理之基础---图像缩放中的一些 灰度插值算法

在图像缩放,旋转等一些图像处理中,对图像进行插值是不可缺少的一个步骤,下面对一些常用的插值算法进行介绍: 1.最近邻插值 这种插值方法是最简单的一种插值算法,图像输出的像素值的大小直接设为与其最邻近的点的大小即可,这个算法最简单,不需要多说,可以表示为 f(x,y) = g(  round(x)  ,   round(y)  ) 原图                                                                                  

视频图像处理基础知识0(双线性插值算法进行图像缩放)

双线性插值(说的很明白) 来自:http://www.cnblogs.com/linkr/p/3630902.html http://www.cnblogs.com/linkr/p/3630902.html 双线性插值,这个名字咋一听很高大上的样纸,再在维基百科上一查(见文末,我去,一堆的公式吓死人),像俺这种半文盲,看到公式脑子就懵的类型,真心给跪.虽然看着好复杂,但仔细一看道理再简单不过了,所以还是自己梳理一下好. 双线性插值,顾名思义就是两个方向的线性插值加起来(这解释过于简单粗暴,哈哈)

[转载]双线性插值算法进行图像缩放及性能效果优化

原文地址:双线性插值算法进行图像缩放及性能效果优化 一)转自http://handspeaker.iteye.com/blog/1545126 最近在编程时用到了双线性插值算法,对图像进行缩放.网上有很多这方面的资料,介绍的也算明白.但是,这些文章只介绍了算法,并没有具体说怎么实现以及怎么实现最好,举个例子,你可以按照网上文章的算法自己写一个双线性插值程序,用它对一张图片进行处理,然后再用matlab或者openCV的resize函数对同一张图片进行处理,得到的结果是不一样的,如果源图片较小,效

图像缩放——双线性插值算法

在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值.如果选择一个坐标系统使得  的四个已知点坐标分别为 (0, 0).(0, 1).(1, 0) 和 (1, 1),那么插值公式就可以化简为: 用矩阵运算来表示的话就是: 图像的空间变换,也称几何变换或几何运算,包括图像的平移.旋转.镜像变换.转置.缩放等.空间变换可如下表示:设(u,v)为源图像上的点,(x,y)为目标图像上的点,则空间变换就是将源图像上(u,v)处的颜色值与目标图像上(x,y)处

二维图像插值算法实现

在做数字图像处理时,经常会碰到小数象素坐标的取值问题,这时就需要依据邻近象素的值来对该坐标进行插值.比如:做地图投影转换,对目标图像的一个象素进行坐标变换到源图像上对应的点时,变换出来的对应的坐标是一个小数,再比如做图像的几何校正,也会碰到同样的问题.看够了各种数学原理,直接上具体的实现步骤.no公式no理论,以下是对常用的三种数字图像插值 方法进行介绍. 1.最近邻插值法(Nearest Neighbour Interpolation) 这是最简单的一种插值方法,不需要计算,在待求象素的四邻象

图像中的插值算法

1. 最近邻插值 2. 双线性插值

图像处理之三种常见双立方插值算法

http://blog.csdn.net/jia20003/article/details/40020775 图像处理之三种常见双立方插值算法 双立方插值计算涉及到16个像素点,其中(i', j')表示待计算像素点在源图像中的包含 小数部分的像素坐标,dx表示X方向的小数坐标,dy表示Y方向的小数坐标.具体 可以看下图: 根据上述图示与双立方插值的数学表达式可以看出,双立方插值本质上图像16个像素点 权重卷积之和作为新的像素值. 其中R(x)表示插值表达式,可以根据需要选择的表达式不同.常见有基