图像插值技术
2016-04-12 22:18
741 查看
图像旋转、剪切、非线性变换等都需要图像插值。介绍最常用的三种数字图像插值方法(后向映射法)。
如果(i+u, j+v)落在A区,即u<0.5, v<0.5,则将左上角象素的灰度值赋给待求象素,同理,落在B区则赋予右上角的象素灰度值,落在C区则赋予左下角象素的灰度值,落在D区则赋予右下角象素的灰度值。
最邻近插值技术计算量小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。
计算公式:
f(i+u, j+v) = (1-u) * (1-v) * f(i, j) + (1-u) * v * f(i, j+1) + u * (1-v) * f(i+1, j) + u * v * f(i+1, j+1)
双线性内插法的计算比最邻近点法复杂,计算量较大,但没有灰度不连续的缺点,结果基本令人满意。它具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊。
待求像素(x, y)的灰度值由其周围16个灰度值加权内插得到,如下图:
待求像素的灰度计算式如下:
f(x, y) = f(i+u, j+v) = ABC
其中:
三次曲线插值方法计算量较大,但插值后的图像效果最好。
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区则赋予右下角象素的灰度值。
最邻近插值技术计算量小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。
2、双线性内插法
双线性内插法是利用待求象素四个邻象素的灰度在两个方向上作线性内插,如下图所示:计算公式:
f(i+u, j+v) = (1-u) * (1-v) * f(i, j) + (1-u) * v * f(i, j+1) + u * (1-v) * f(i+1, j) + u * v * f(i+1, j+1)
双线性内插法的计算比最邻近点法复杂,计算量较大,但没有灰度不连续的缺点,结果基本令人满意。它具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊。
3、三次内插法
该方法利用三次多项式S(x)求逼近理论上最佳插值函数sin(x)/x, 其数学表达式为:待求像素(x, y)的灰度值由其周围16个灰度值加权内插得到,如下图:
待求像素的灰度计算式如下:
f(x, y) = f(i+u, j+v) = ABC
其中:
三次曲线插值方法计算量较大,但插值后的图像效果最好。
相关文章推荐
- Android Facebook和Twitter分享
- python子进程模块subprocess详解与应用实例 之一
- 10、linux对于文件和目录的权限管理
- 如何从零开始建立一个安卓项目(从无到有:爱西农)(一)
- 理解 Glance - 每天5分钟玩转 OpenStack(20)
- 作业2
- 毕设中所遇到的坑
- activity入门2
- 返回一个一维整数数组中最大子数组的和(2)
- linux定时任务1-crontab命令
- Linux定时任务操作指令 - crontab
- mac 里的intellij idea 里的maven setting设置
- 主机向虚拟机(NAT)传输文件
- Java时间类Date与Calendar的区别与使用
- 基于Ubuntu交叉编译FFmpeg Windows SDK
- PSobj [4]裂痕
- POJ-1753 翻转技巧
- 基于消息队列和消息应用状态处理分布式事务
- 单例模式
- 如何为自己和为自己的手机挑选最合适的充电宝