图像插值
来源:互联网 发布:c 语言编译器安卓版 编辑:程序博客网 时间:2024/05/17 05:04
在图像的基本仿射变换中,经常会碰到经过旋转、缩放后灰度值如何赋值的问题。因为变换之后,图像的坐标位置有可能是小数,所以就需要插值算法来确定到底将该像素赋予哪个位置。
1、最邻近插值法(Nearest Interpolation)
这是最简单的一种插值方法,不需要计算。在待求像素的四邻像素中,将距离待求像素最近的邻接像素灰度值赋予待求像素。设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、双线性内插法(Bilinear Interpolation)
双线性内插法是利用待求象素四个邻象素的灰度在两个方向上作线性内插,如下图所示:
对于 (i, j+v),f(i, j) 到 f(i, j+1) 的灰度变化为线性关系,则有:
f(i, j+v) = [f(i, j+1) - f(i, j)] * v + f(i, j)
同理对于 (i+1, j+v) 则有:
f(i+1, j+v) = [f(i+1, j+1) - f(i+1, j)] * v + f(i+1, j)
从f(i, j+v) 到 f(i+1, j+v) 的灰度变化也为线性关系,由此可推导出待求象素灰度的计算式如下:
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)
双线性内插法的计算比最邻近点法复杂,计算量较大,但没有灰度不连续的缺点。它具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊。图像看起来更光滑。
- 图像的插值
- 图像插值算法
- 图像插值运算
- 图像插值方法
- 图像插值
- 图像插值技术
- 图像插值算法
- 图像插值
- 图像中的插值
- 数字图像处理--图像插值
- 图像的插值算法
- 图像插值中的优化
- 图像缩放插值算法
- 图像的插值算法之最近邻插值
- 图像几何变换插值算法
- 图像插值处理的方法
- OpenCV 图像采样 插值 几何变换
- 图像放大并进行BiCubic插值
- 64-ia-32架构优化手册(9)
- 磁盘格式化 & 磁盘挂载 & 手动增加swap空间
- 51nod 1040 最大公约数之和 欧拉函数
- 远程服务器访问tomcat报错403
- C++ 数据封装
- 图像插值
- CODE[VS] 1032最多因子数
- Java集合之Set
- Spring整合JMS异步消息
- CSS Flex column排列时的容器宽度问题
- loadrunner将参数化的数据传给变量
- 【笔记】2-路插入排序
- Java中的代理
- 三、K-均值聚类算法对未标注的数据分组