基于插值的图像放大技术-报告_第1页
基于插值的图像放大技术-报告_第2页
基于插值的图像放大技术-报告_第3页
基于插值的图像放大技术-报告_第4页
基于插值的图像放大技术-报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南科技大学专业方向设计报告课程名称通信专业方向设计设计名称基于插值的图像放大技术姓名彭浩学号5120143099班级通信1404指导教师路锦正起止日期12月15号1月3号西南科技大学信息工程学院制方向设计任务书学生班级通信1404学生姓名彭浩学号5120143099设计名称基于插值的图像放大技术起止日期12月15号1月3日指导教师路锦正设计要求图像放大在很多图像应用中有对应的需求。如图像局部区域的放大,小分辨率图像在大分辨率设备上显示等。图像放大是指用更多的像素点表示目标,从而目标的细节更丰富,目标占有面积更大,便于观察或显示。插值是一种常用的图像放大技术,即使用已知的像素点的值来计算未知位置的像素点的值。而插值的方式、已知像素点的利用等构成了形形色色的插值方法。该方向设计的技术要求如下1、掌握BMP文件的数据结构,BMP文件的读写;2、掌握图像插值的工作原理;3、使用VC或者MATLAB编程实现一种插值方法,如双线性插值或双立方插值等;4、对图像局部或整幅图像做插值处理,形成幅面更大的放大图像;5、分析插值技术性能,给出改进措施或者意见。方向设计学生日志时间设计内容12151220收集资料,比如图片格式和放大技术12201225使用MATLAB编程实现结果12251230撰写设计报告1113修改报告课程设计评语表指导教师评语成绩指导教师年月日基于插值的图像放大技术一、摘要对于位图的放大,提高放大图像的质量是图像放大算法追求的主要目标。最邻近插值算法是一种最根本、最简单的图像缩放算法,效果也是最不好的,放大后的图像有很严重的马赛克,缩小后的图像有很严重的失真。双线性插值算法就是一种比较好的图像缩放算法,它充分的利用了原源图中虚拟待插点四周的四个真实存在的像素值来共同决定目标图中的一个新像素值,因此缩放效果比简单的最邻近插值要好很多。二、设计目的和意义图像在计算机里主要有两种存储和表示方法。矢量图是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内存空间较小,因为这种类型的图像文件包含独立的分离图像,可以自由无限制的重新组合。它的特点是放大后图像不会失真,和分辨率无关,适用于图形设计、文字设计和一些标志设计、版式设计等。矢量图与位图的效果是天壤之别,矢量图无限放大不模糊,大部分位图都是由矢量导出来的,也可以说矢量图就是位图的源码,源码是可以编辑的。位图图像,亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成整个图像的无数单个方块。扩大位图尺寸的效果是增大单个像素,从而使线条和形状显得参差不齐。然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。相对于缩小,图像放大的应用更加广泛和重要。例如,目前高端的显示设备越来越普及,但是高分辨率的图像视频的生产远没有跟上显示设备的发展。如果我们想要得到把原来的图像的高和宽各放大一倍,使用双线性插值技术,那么像素数会增加三倍。对于放大后的图像,我们需要通过四分之一的已知像素确定另外四分之三的未知像素的值。随着科学技术的发展,最近几年计算机技术发展迅速,将图像转化为数字图像即对于图像划分为一个矩阵块,对此要进行对图形放大即对图像做几何运算。图像放大是从一幅低分辨率图像获得其高分辨率版本的一种图像处理技术。一般是指针对光栅化的数字图像,通过某种算法确定未知像素的值,达到增加像素数的目的。为适应特殊的应用场合或者得到一个较好的视觉效果,例如要突出某些细节,常常需要一种可以有效改变已有图像大小的方法,使图像放大后仍有较高的质量。目前传统的图像放大算法主要是插值算法,其中经典的插值算法有最邻近插值(PIXELREPLICATION)、双线性插值(BILINEARINTERPOLATION)、以及双立方插值(BICUBICINTERPOLATION),用它们来对图形、图像进行放大。最邻近插值算法是一种最根本、最简单的图像缩放算法,效果也是最不好的,放大后的图像有很严重的马赛克,缩小后的图像有很严重的失真,效果不好的根源就是其简单的最邻近插值方法引入了严重的图像失真。比如,当由目标图的坐标反推得到的源原图的的坐标是一个浮点数的时候,采用了四舍五入的方法,直接采用了和这个浮点数最接近的像素的值,这种方法是很不科学的,当推得坐标值为075的时候,不应该就简单的取为1,既然是075,比1要小025,比0要大075,那么目标象素值其实应该根据这个源原图中虚拟的点四周的四个真实的点来按照一定的规律计算出来的,这样才能达到更好的缩放效果。双线性插值算法就是一种比较好的图像缩放算法,它充分的利用了源原图中虚拟点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,因此缩放效果比简单的最邻近插值要好很多。双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。对于双线性插值法,输出像素的赋值为其周围4个像素点的值的加权平均,放大后图像的高频分量受到损失,图像的轮廓较模糊。双立方插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。但是它速度也几乎是最慢的,双线性插值的速度则要快一些。在商业性图像编辑软件中,经常采用的是速度最快,但也是最不准确的最邻近插值。其他一些插值技术通常只在高档或单独应用的程序中出现。对比三种技术的优劣之后,从技术和效益出发,本设计着重研究的是的双线性插值。三、设计原理已知的红色数据点与待插值得到的绿色点。假如我们想得到未知函数F在点PX,Y的值,假设我们已知函数F在Q11X1,Y1、Q12X1,Y2,Q21X2,Y1以及Q22X2,Y2四个点的值。首先在Y方向进行线性插值,得到R1和R2,然后在X方向进行线性插值,就能得到P。这样就得到所要的结果FX,Y。其中红色点Q11,Q12,Q21,Q22为已知的4个像素点。双线性插值原理见图1所示。图1双线性插值原理图注意线性插值的结果与插值的顺序无关。首先进行XY方向的插值,然后进行YX方向的插值,所得到的结果是一样的。但双线性插值插值这种方法并不是线性的,首先进行Y方向的插值,然后进行X方向的插值,与首先进行X方向的插值,然后进行Y方向的插值,所得到的结果是不一样的。如果选择一个坐标系统使得四个已知点坐标分别为0,0、0,1、1,0和1,1,那么插值公式就可以化简为(1)YF1,0XYXF0,1YX1F0,YX四、FX,YF0,01X1YF0,11XYF1,1XYF1,0X1Y请用WORD自带的公式编辑器编辑报告所有的公式四、详细设计步骤程序设计流程如下如图2所示,(本设计采用的是MATLAB70平台)。请给出下图的文字表述,另外,下图中的文字偏大图2双线性插值放大流程图主体程序如下M2设置放大倍数N2设置放大倍数IMGIMREADCUSERSPENGHAODESKTOP111BMP函数IMREAD用于读取图片文件中的数据IMSHOWIMGIMSHOW是MATLAB中显示图像的函数HWSIZEIMGSIZE返回数组的尺寸IMGNZEROSHM,WNZEROS功能是返回一个MNP的DOUBLE类零矩阵ROTM000N0001FORI1HMFORJ1WNPIXIJ1/ROTFLOAT_YPIX1FLOORPIX1FLOORX)函数其功能是“向下取整”FLOAT_XPIX2FLOORPIX2IFPIX11PIX11ENDIFPIX21PIX21ENDPIX_UP_LEFTFLOORPIX1FLOORPIX2PIX_UP_RIGHTFLOORPIX1CEILPIX2PIX_DOWN_LEFTCEILPIX1FLOORPIX2PIX_DOWN_RIGHTCEILPIX1CEILPIX2VALUE_UP_LEFT1FLOAT_X1FLOAT_YVALUE_UP_RIGHTFLOAT_X1FLOAT_YVALUE_DOWN_LEFT1FLOAT_XFLOAT_YVALUE_DOWN_RIGHTFLOAT_XFLOAT_Y如果选择一个坐标系统使得的四个已知点坐标分别为0,0、0,1、1,0和1,1,那么插值公式就可以化简为FX,YF0,01X1YF0,11XYF1,1XYF1,0X1YIMGNI,JVALUE_UP_LEFTIMGPIX_UP_LEFT1,PIX_UP_LEFT2VALUE_UP_RIGHTIMGPIX_UP_RIGHT1,PIX_UP_RIGHT2VALUE_DOWN_LEFTIMGPIX_DOWN_LEFT1,PIX_DOWN_LEFT2VALUE_DOWN_RIGHTIMGPIX_DOWN_RIGHT1,PIX_DOWN_RIGHT2ENDEND五、设计结果及分析原图见图3所示。图3待插值的原图像双线性插值放大四倍的结果和结果部分图见图4、图5所示。图4双线性插值的结果图5双线性插值结果部分图为了看出双线性插值的优劣,用最邻近插值放大图片,以作比较。采用采用最邻近插值算法处理图1图像,放大相同倍率,结果和结果部分图见图6、图75所示。图65最邻近近邻插值结果图7最邻近插值结果部分图六、上面仅仅给出了图像结果,没有分析具体原因,或者局部的对比,建议给出插值结果的局部图像六、总结从结果可以看出用最近邻插值方法处理后的图片产生了严重的疵点,边界出现了毛疵,图像质量较差,而用双线性插值处理后的图片边界较为平滑,图像质量较好,但是图中的一些细节也被模糊了。最近邻插值是取距离源图像像素点最近的点的像素值赋给新图像相应的像素点,因此在新图像中各像素点之间的方差比较大,因此处理后的图像就产生了很多疵点;而双线性插值取的是源图像中对应的四个点像素的平均值作为新图像像素点的值,因此在新图像中各像素点之间的方差比较小,图像就比较平滑,但是这种方法也会产生一些源图像中所不具有的像素值,会导致图像的一些细节的丢失,并且是不可逆的。七、体会本设计处理的是位图,位图就是基于像素的计算处理。MATLAB全称MATRIXLABORATORY矩阵实验室,一开始它是一种专门用于矩阵数值计算的软件,从这一点上可以看出,它在矩阵运算上有自己独特的特点。实际运用中MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的,这一特点决定了MATLAB在处理数字图像上的独特优势。从此次设计中,了解了图片的基本格式和传统放大图片的方法。放大图片的三种经典方法,最邻近插值、双线性插值,双立方插值,了解了它们放大的基本原理,掌握了最邻近插值和双线性插值放大的方法。使用MATLAB这款编程软件实现结果的过程,更进一步掌握了MATLAB编程的方法,以及深一步体会到MATLAB可视化编程的优势。八、参考文献1赵海峰,周永飞、,黄子强图像放大算法比较研究现代电子技术,20102秦襄培MATLAB图像处理与界面编程电子工业出版社,200933冈萨雷斯数字图像处理(第二版)阮秋琦等译电子工业出版社,2009654谢富续数字图像放大算法电子工业出版社,2008请再补充几篇参看文献,且在正文中有引用双线性插值法放大图像CLOSEALL关闭WORKSPACECLEARALL清除WORKSPACECLC清空窗口M2设置放大倍数N2IMGIMREADCUSERSPENGHAODESKTOP111JPG函数IMREAD用于读取图片文件中的数据IMSHOWIMGIMSHOW是MATLAB中显示图像的函数HWSIZEIMGSIZE返回数组的尺寸IMGNZEROSHM,WNZEROS功能是返回一个MNP的DOUBLE类零矩阵ROTM000N0001FORI1HMFORJ1WNPIXIJ1/ROTFLOAT_YPIX1FLOORPIX1FLOORX)函数其功能是“向下取整”FLOAT_XPIX2FLOORPIX2IFPIX11PIX11ENDIFPIX21PIX21ENDPIX_UP_LEFTFLOORPIX1FLOORPIX2PIX_UP_RIGHTFLOORPIX1CEILPIX2PIX_DOWN_LEFTCEILPIX1FLOORPIX2PIX_DOWN_RIGHTCEILPIX1CEILPIX2VALUE_UP_LEFT1FLOAT_X1FLOAT_YVALUE_UP_RIGHTFLOAT_X1FLOAT_YVALUE_DOWN_LEFT1FLOAT_XFLOAT_YVALUE_DOWN_RIGHTFLOAT_XFLOAT_Y如果选择一个坐标系统使得的四个已知点坐标分别为0,0、0,1、1,0和1,1,那么插值公式就可以化简为FX,YF0,01X1YF0,11XYF1,1XYF1,0X1YIMGNI,JVALUE_UP_LEFTIMGPIX_UP_LEFT1,PIX_UP_LEFT2VALUE_UP_RIGHTIMGPIX_UP_RIGHT1,PIX_UP_RIGHT2VALUE_DOWN_LEFTIMGPIX_DOWN_LEFT1,PIX_DOWN_LEFT2VALUE_DOWN_RIGHTIMGPIX_DO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论