使用双线性插值进行图像放大的实现

使用双线性插值进行图像放大的实现

一、总体设计思路

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 都是整数且落在原图中,则直接取出该像素点的颜色信息即可。 (2)得到的x 为整数,y 为小数。这个时候则根据插值法的计算方式。对y 取y1=(int)y;y2=(int)y+1;x取该整数即可。若得到的点都在原图上,则y 方向进行插值得到该像素点的颜色信息。

(3)得到的x 为小数,y 为整数时。可仿照(2)进行计算。

(4)得到的想x,y 都为小数。x1=(int)x;x2=(int)x+1;y1=(int)y;y2=(int)y+1;若得到的点都在原图上,则按照双线性插值的计算方法得到该像素点的颜色信息。

②对于求出的点中不在原图上的情况,我采取了放弃该像素点数值计算这样一种处理办法。

③遍历所有像素点以及进行插值时有两种遍历方案,即按照内存行列还是按照图像实际行列进行计算和插值。在处理灰度图时,我采取了前者。也就是按照内存的行列作为计算像

素点颜色信息的顺序和取插值的的位置依据。处理真彩色图片时,我采取了后者。

④放大倍数的实现,采取了将放大倍数开方得到边的比例的方法。

⑤灰度图像插值时取其调色板的索引值即可,真彩时对RGB 三值分别进行计算。

三、程序图像放大效果一览 灰度图像:

真彩图:

四、总结

这次图像放大的实现,虽然最终基本实现。但是花了不少的时间。 经过思考觉得主要原因在于编码规范性有待加强。测试也应该更加有条理,和考虑更加周到。

总之,通过实现这个功能。我学到的不仅仅是双线性插值算法的使用,更重要的是测试方案的设计和实施。

非常感谢许老师给予的耐心指导。

使用双线性插值进行图像放大的实现

一、总体设计思路

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 都是整数且落在原图中,则直接取出该像素点的颜色信息即可。 (2)得到的x 为整数,y 为小数。这个时候则根据插值法的计算方式。对y 取y1=(int)y;y2=(int)y+1;x取该整数即可。若得到的点都在原图上,则y 方向进行插值得到该像素点的颜色信息。

(3)得到的x 为小数,y 为整数时。可仿照(2)进行计算。

(4)得到的想x,y 都为小数。x1=(int)x;x2=(int)x+1;y1=(int)y;y2=(int)y+1;若得到的点都在原图上,则按照双线性插值的计算方法得到该像素点的颜色信息。

②对于求出的点中不在原图上的情况,我采取了放弃该像素点数值计算这样一种处理办法。

③遍历所有像素点以及进行插值时有两种遍历方案,即按照内存行列还是按照图像实际行列进行计算和插值。在处理灰度图时,我采取了前者。也就是按照内存的行列作为计算像

素点颜色信息的顺序和取插值的的位置依据。处理真彩色图片时,我采取了后者。

④放大倍数的实现,采取了将放大倍数开方得到边的比例的方法。

⑤灰度图像插值时取其调色板的索引值即可,真彩时对RGB 三值分别进行计算。

三、程序图像放大效果一览 灰度图像:

真彩图:

四、总结

这次图像放大的实现,虽然最终基本实现。但是花了不少的时间。 经过思考觉得主要原因在于编码规范性有待加强。测试也应该更加有条理,和考虑更加周到。

总之,通过实现这个功能。我学到的不仅仅是双线性插值算法的使用,更重要的是测试方案的设计和实施。

非常感谢许老师给予的耐心指导。


    相关文章

    通信工程应用技术 图像处理

    课程设计任务书 学生姓名: 专业班级: 通信1102 指导教师: 许建霞 工作单位: 武汉理工大学 题 目: 图像处理 初始条件: 要求学生已完成通信专业各主干课程的学习,通过本课设进一步掌握专业课程群的综合原理. 操作技能,形成基本的解决 ...

    数字图像处理 作业1

    报告标题: 报告编号: 课程编号: 学生姓名: 截止日期: 上交日期: 数字图像处理 01 摘要 (1)编写函数计算灰度图像的均方误差(MSE ).信噪比(SNR ).峰值信噪比(PSNR ).平均绝对误差(MAE ):(2)编写函数对灰度 ...

    数字图像处理课程设计 基于Matlab的数字图像处理

    数字图像处理课程设计 基于Matlab 的数字图像处理 --图像识别 院系 信息技术学院 专业班级 软件2班 学号 XXXXXXXXXX 姓名 XXXX 指导教师 XXXXXX 课程设计时间 2014年12月 目录 摘要 . ....... ...

    设计性实验 图像信号的抽取与插值

    实验报告 实验7 设计性实验 图像信号的抽取与插值 专业 班级 电子10-1班 学生 学号 指导教师完成时间年 实验7设计性实验 图像信号的抽取与插值 一.实验目的 1.熟悉图像处理常用函数和方法: 2.培养通过查阅文献解决问题的能力. 二 ...

    机器视觉与智能检测

    2011/11/18 www.themegallery.com 第一讲 视觉检测概述 1.1什么是计算机视觉 机器视觉与智能检测 华南理工大学 2011.09 1.2什么是视觉检测技术 1.3视觉检测的作用 1.4视觉检测的特点 w ...

    多媒体技术实验报告一

    专业: 学号: 姓名: 教师: 计算机科学与技术学院 2014-2015学年第1学期 <多媒体技术> 计算机科学与技术 120341110 黄帅 张敏 完成日期: 实验一:媒体信息的获取与处理 一.实验目的: 1.通过实验加深对 ...

    图像的几何变换

    学号 专业 姓名 实验日期 教师签字 成绩 实 验 报 告 [实验名称] 实验七 图像的几何变换 [实验目的] 理解和掌握图像的剪切.垂直镜像变换.水平镜像变换.缩放和旋转的原 理和应用. [实验内容] [实验步骤] 1.对原图使用最近邻插 ...

    图像几何畸变校正方法

    194 2009.45(29) Computer EnsineeHngandApplwtnions计算机工程与应用 图像几何畸变校正方法 范勇,张佳成,陈念年,周敬滨,王俊波 FANYong,ZHANGJia-cheng,CHENNian- ...

    数字图像处理课后题答案

    1. 图像处理的主要方法分几大类? 答:图字图像处理方法分为大两类:空间域处理(空域法)和变换域处理(频域法). 空域法:直接对获取的数字图像进行处理. 频域法:对先对获取的数字图像进行正交变换,得到变换系数阵列,然后再进行处理,最后再逆变 ...