通信专业课程设计二(论文)-基于MATLAB的数字图像几何变换的实现_第1页
通信专业课程设计二(论文)-基于MATLAB的数字图像几何变换的实现_第2页
通信专业课程设计二(论文)-基于MATLAB的数字图像几何变换的实现_第3页
通信专业课程设计二(论文)-基于MATLAB的数字图像几何变换的实现_第4页
通信专业课程设计二(论文)-基于MATLAB的数字图像几何变换的实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、通信专业课程设计二论文学 生 姓 名指 导 教 师设计论文题目基于Matlab的数字图像几何的变换主要研究内容数字图像处理的特点及目的。数字图像几何变换的理论。数字图像缩放、剪取、旋转的实现。研究方法本论文采用了Matlab作为工具,以最近邻插法、双线性插值法和双三次插值法三种常用数字图像插值算法为根底,实现了数字图像的比例缩放、旋转和剪取一系列几何变换。主要技术指标(或研究目标)用最近邻插法、双线性插值法和双三次插值法这三种常用的数字图像插值算法实现数字图像的比例缩放、旋转和剪取一系列几何变换。教研室意见教研室主任专业负责人签字: 年 月 日 目 录 TOC o 1-3 h z u HYPE

2、RLINK l _Toc233252783 第1章 前言 PAGEREF _Toc233252783 h - 1 - HYPERLINK l _Toc233252784 数字图像概述 PAGEREF _Toc233252784 h - 1 - HYPERLINK l _Toc233252785 1.2 数字图像几何变换介绍 PAGEREF _Toc233252785 h - 2 - HYPERLINK l _Toc233252786 第2章 图像几何变换理论 PAGEREF _Toc233252786 h - 3 - HYPERLINK l _Toc233252788 2.1图像缩放原理 PA

3、GEREF _Toc233252788 h - 3 - HYPERLINK l _Toc233252789 2.2图像旋转原理 PAGEREF _Toc233252789 h - 4 - HYPERLINK l _Toc233252790 2.3图像剪取原理 PAGEREF _Toc233252790 h - 6 - HYPERLINK l _Toc233252791 第3章 数字图像几何变换实现 PAGEREF _Toc233252791 h - 7 - HYPERLINK l _Toc233252792 数字图像缩放 PAGEREF _Toc233252792 h - 7 - HYPERL

4、INK l _Toc233252793 3.1.1 IMRESIZE函数 PAGEREF _Toc233252793 h - 7 - HYPERLINK l _Toc233252794 数字图象缩放 PAGEREF _Toc233252794 h - 7 - HYPERLINK l _Toc233252795 数字图像旋转 PAGEREF _Toc233252795 h - 10 - HYPERLINK l _Toc233252796 3.2.1 IMROTATE函数 PAGEREF _Toc233252796 h - 10 - HYPERLINK l _Toc233252797 数字图象旋转

5、 PAGEREF _Toc233252797 h - 10 - HYPERLINK l _Toc233252798 数字图像剪取 PAGEREF _Toc233252798 h - 12 - HYPERLINK l _Toc233252799 3.3.1 IMCOPY函数 PAGEREF _Toc233252799 h - 12 - HYPERLINK l _Toc233252800 数字图象剪取 PAGEREF _Toc233252800 h - 12 - HYPERLINK l _Toc233252807 第4章 结论 PAGEREF _Toc233252807 h - 15 - HYPE

6、RLINK l _Toc233252808 参考文献 PAGEREF _Toc233252808 h - 16 - HYPERLINK l _Toc233252809 附录 PAGEREF _Toc233252809 h - 17 -第1章 前言在20世纪20年代,图像处理首次应用于改善伦敦和纽约之间海底电缆发送的图片质量。直到20世纪50年代数字计算机开展到一定水平后,数字图像处理才真正引起人们的兴趣。1964年美国喷气推进实验室JPL,用计算机对“徘徊者2号太空船发回的大批月球照片进行处理,受到明显的效果。60年代末,数字图像处理已经形成了比拟完善的体系,形成一门新的学科。60年代到70年

7、代,由于离散数学的创立和完善,使数字图像处理技术得到迅猛的开展,理论和方法进一步完善,应用范围更加广阔。这一时期,图像处理主要与模式识别和图像理解的研究相联系,如文字识别、医学图像处理、遥感图像的处理等。70年代后期至今,各个应用领域对数字图像处理提出越来越高的要求,促进这门学科向更高级的方向开展,特别是在景物理解和机器视觉方面,图像由二维处理变成三维解释。近几年来随着计算机和各个领域研究的迅速开展,科学计算可视化、多媒体技术等的研究和应用,数字图像处理从一个专门领域的学科变成了一种新型的科学研究和人机界面的工具。从二十世纪六十年代美国航空和太空总署(NASA)的喷气推进实验室第一次使用计算机

8、对太空船发回的大批月球图片进行处理到信息技术不断提高的今天,数字图像的应用处理技术得到了广泛的应用,形成了自己的技术特色和完善的学科体系。用计算机进行图像处理的前提是图像必须以数字格式存储,我们把以数字格式存放的图像称之为数字图像。常见的各种照片、图片、海报、广告画等均属模拟图像,要将模拟图像数字化后生成数字图像,需要利用数字化设备。目前,将模拟图像数字化的主要设备是扫描仪,将视频画面数字化的设备有图像采集卡。当然,也可以利用数码照相机直接拍摄以数字格式存放的数字图像。模拟图像经扫描仪进行数字化或由数码相机拍摄的自然景物图像,在计算机中均是以数字格式存储的。既然是数字,计算机当然可以方便地进行

9、各种处理,以到达视觉效果和特殊效果。在计算机中,图像被分割成如下所示的像素Pixel,各像素的灰度值用整数表示。一幅个像素的数字图像,其像素灰度值可以用行、列的矩阵表示: (1-1)1.2 数字图像几何变换介绍我们在处理图像时往往会遇到需要对图像进行几何变换的一些问题。图像的几何变换时图像处理和图像分析的根底内容之一,它不仅提供了产生某些图像的可能,而且还可以使图像处理和分析的程序简单化,特别是图像具有一定的规律性时,一个图像可以由另一个图像通过几何变换来实现。所以,为了提高图像处理和分析程序设计的速度和质量,开拓图像程序应用范围的新领域,对图像进行几何变换是十分必要的。图像的几何变换不改变图

10、像的像素值,而是改变像素所在的几何位置。从变换的性质分,图像的几何变换有图像的位置变换平移、镜像、旋转、图像的形状变换放大、缩小、错切等根本变换以及图像的复合变换等。其中使用最频繁的是图像的缩放和旋转,不管照片、图画、书报,还是医学X光和卫星遥感图像都会用到这两项技术。MATLAB全称是Matrix Laboratory矩阵实验室,一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机

11、上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成MN样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。在本文中我们用MATLAB的图像处理工具包实现了图像的缩放、旋转和剪取。图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下

12、面就MATLAB 在图像处理中各方面的应用分别进行介绍:(1) 图像文件格式的读写和显示。(2) 图像处理的根本运算。(3) 图像变换。 (4) 图像的分析和增强。(5) 图像的数学形态学处理。以上所提到的 MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。1第2章 图像几何变换理论图像缩放原理图像比例缩放是指将给定的图像在轴方向按比例缩放倍,在轴按比例缩放倍,从而获得一幅新的图像。如果,即在轴方向和轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。设原图像

13、中的点比例缩放后,在新图像中的对应点为,那么比例缩放前后两点、之间的关系用矩阵形式可以表示为 (2-6)其逆运算为 (2-7)即 (2-8)比例缩放所产生的图像中的像素可能在原图像中找不到相应得像素点,这样就必须进行插值处理。有关插值的内容在后面我们会讨论。下面首先讨论图像的比例缩小。最简单的比例缩小时当时,图像被缩到一半大小,此时缩小后图像中的0,0像素对应于原图像中的0,0像素;0,1像素对应于原图像中的0,2像素;1,0像素对应于原图像中的2,0像素,以此类推。图像缩小之后,因为承载的数据量小了,所以画布可相应缩小。此时,只需在原图像根底上,每行隔一个像素取一点,每隔一行进行操作,即取原

14、图的偶奇数行和偶奇数列构成新的图像。如果图像按任意比例缩小,那么需要计算选择的行和列。如果大小的原图像缩小为大小的新图像时,那么 (2-9)其中,。由此公式可以构造出新图像。当时,图像不按比例缩小,这种操作因为在方向和方向的缩小比例不同,一定会带来图像的几何畸变。图像不按比例缩小的方法是:如果大小的旧图缩小为大小的新图像时,那么 (2-10)其中,由此公式可以构造出新图像。图像的缩小操作中,是在现有的信息里如何挑选所需要的有用信息。而在图像的放大操作中,那么需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。当时,图像被按全比例放大二倍,放大后图像中的

15、0,0像素对应于原图中的0,0像素;0,1像素对应于原图中的0,0.5像素,该像素不存在,可以近似为0,0也可以近似为0,1;0,2像素对应于原图像中的0,1像素;1,0像素对应于原图中的0.5,0,它的像素值近似于0,0或1,0像素;2,0像素对应于原图中的1,0像素,依此类推。其实这是将原图像每行中的像素重复取值一遍,然后每行重复一次。按比例将原图像放大k倍时,如果按照最近邻域法那么需要将一个像素值添在新图像的的子块中。显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。当时,图像在方向和方向不按比例放大,此时这种操作由于方向和方向的放大倍数不同,一定会带来图像的几何畸变。放大的方法

16、是将原图像的一个像素添到新图像的一个的子块中去。为了提高几何变换后的图像质量,常采用线性插值法。该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。2.2图像旋转原理一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换时图像的位置变换,但旋转后,图像的大小一般会改变。在图像旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。同样,图像的旋转变换也可以用矩阵变换来表示。设点逆时针旋转角后的对应点为。那么,旋转前后点、的坐标分别是: (2-11) (2-12)写

17、成矩阵表达式为 (2-13)其逆运算为 (2-14)利用上述方法进行图像旋转时需要注意如下两点:1图像旋转之前,为了防止信息的丧失,一定要有坐标平移。2图像旋转之后,会出现许多空洞点。对这些空洞点必须进行填充处理,否那么画面效果不好,一般也称这种操作为插值处理。以上所讨论的旋转是绕坐标轴原点0,0进行的。如果图像旋转是绕一个指定点a,b旋转,那么先要将坐标系平移到该点,再进行旋转,然后将旋转后的图象平移回原来的坐标原点,这实际上是图像的复合变换。如将一幅图像绕点a,b逆时针旋转度,首先将原点平移到a,b,即 (2-15)然后旋转 (2-16)然后再平移回来 (2-17)综上所述,变换矩阵为。2

18、.3图像剪取原理有些时候我们为了减少图像所占存储空间,舍弃图像的无用局部,只保存感兴趣的局部,这就需要用到图像的剪取。在本文中,我们只讨论对原图像剪取一个形状为矩形的局部的操作。对一幅图像进行剪取操作前,首先初始化该图像,这样图像上每个点,就对应了一个二维坐标,即。首先,我们先取二维坐标系上的一点,这点就作为要截取的矩形的左上角的起始坐标。然后我们定义一两个常量、,其中,代表矩形的长素,代表矩形的宽度,然后舍弃掉在矩形外的点,这样,在整个坐标系上,由、和四个点所围成的矩形局部便被保存下来。1第3章 数字图像几何变换实现在论文的实现过程中,主要利用了MATLAB的图像处理工具包来编写程序。MAT

19、LAB图像处理工具包是由一系列支持图像处理操作的函数组成的,所支持的图像处理操作有:几何操作、区域操作和块操作;线性滤波和滤波器设计;变换(DCT变换);图像分析和增强;二值图像操作等。本论文所采用图像为分辨率为的灰度图像,其格式为JPEG。图像缩放 imresize函数MATLAB图像处理工具箱中的函数imresize可以用上述3种方法对图像进行插值缩放,如果不指定插值方法,那么默认使用最近邻插值法。imresize函数的语法格式为:B=imresize(A,m,method)B=imresize(A,mrows ncols,method)B=imresize(,method,n)B=imr

20、esize(,method,h)这里参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线性插值)及bicubic(双三次插值),默认值为nearest。B=imresize(A,m,method)返回原图A的m倍放大图像(小于1时效果是缩 小)。B=imresize(A,mrows ncols,method)返回一个mrows行,ncols列的图像,假设 mrows和ncols定义的长宽比与原图不同,那么图像会产生畸变。在使用bilinear和bicubic方法缩小图像时,为消除引入的高频成分,imresize使用一个前端平滑滤波器,默认的滤波器尺寸

21、为11*11。也可通过参数n指定滤波器的尺寸,即B=imresize(,method,n)。对于nearest插值方法,imresize不使用前端滤波器,除非函数明确指定。B=imresize(,method,h)使用用户设计的插值核h进行插值,h可以看作一个 二维FIR滤波器。数字图象缩放首先,我们用最近邻插法将图像按原比例放大1.5倍, 其运行结果如下:图3.1 原图像图3.1为原图,图3.2为用最近临插法按原比例放大1.5倍后的图像。下面我们分别用双线性插值法和将双三次插值法将图像按原比例放大1.5倍,并与采用最近邻插法放大的图像做比拟图3.3 采用最近邻插法所得图像图3.4 采用双线性

22、插值法所得图像图3.5 双三次插值法所得图像图3.3为采用最近邻插法所得图像,图3.4为采用双线性插值法所得图像,图3-5为双三次插值法所得图像。下面我们用双线性插值法将图像按原比例缩小为0.8倍。 图3.6 原图图3.6为原图,图3.7为用双线性插值法按原比例缩小为0.8倍后的图像。图像旋转3.2.1 imrotate函数在对数字图像进行旋转的时候,各像素的坐标将会发生变化,使得旋转之后不能正好落在整数坐标处,需要进行插值。在工具箱中的函数imrotate可用3种方法对图像进行插值旋转,默认的插值方法也是最近邻插值法。函数imrotate的语法格式为:B=imrotate(A,angle,m

23、ethod)B=imrotate(A,angle,method,crop)函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线形插值)及bicubic(双三次插值),默认值为 nearest。一般来说,旋转后的图像会比原图大,超出原图像的局部值为0。用户也可以指定crop参数对旋转后的图像进行剪切(取图像的中间局部),使返回的图像与原图大小相同。数字图象旋转首先,我们用双线性插值法将原图像旋转45度,不裁去超出原图的局部。图3.10 原图 图3.11 用双线性插值法旋转45度后的图像,未裁去超出原图的局部图3.10

24、为原图,图3.11为用双线性插值法旋转45度后的图像,未裁去超出原图的局部。用双线性插值法将原图像旋转45度,裁去超出原图的局部,并与未裁去超出局部的做比拟, 图1是用双线性插值法将原图像旋转45度,裁去超出原图的局部,图2为未裁去超出局部的,可见图1与原图大小相同下面,我们用双线性插值法将原图像旋转90度,并与旋转45度的图像做比拟。 图1为用双线性插值法将原图像旋转90度所得图像,图2为旋转45度的所得图像。图像剪取 IMCOPY函数有时只需要处理图像中的一局部,或者需要将某一局部取出,这样就要对图像进行剪取。图形的裁剪处理可使用imcrop函数实现。函数imcrop用于剪取图像中的一个矩

25、形子图,用户可以通过参数指定这个矩形顶点的坐标,也可以用鼠标指针选取这个矩形。其语法规那么如下:I2=imcrop(I)X2=imcrop(X,map)RGB2=imcrop(RGB)I2=imcrop(I,rect)X2=imcrop(X,map,rect)RGB2=imcrop(RGB,rect)=imcrop(x,y,)A,rect=imcrop()x,y,A,rect=imcrop()其中I2=imcrop(I),X2=imcrop(x,map)和RGB2=imcrop(RGB)为交互式地对灰度图像,索引图像和真彩色图像进行剪切。I2=imcrop(I,rect),X2=imcrop(

26、X,map,rect)和RGB2=imcrop(RGB,rect)按指定的矩形框rect剪切图像,rect是一个四元向量xmin ymin width height,分别表示矩形左上角的坐标和长度及宽度。=imcrop(x,y,)在指定坐标系统(x,y)中剪取图像。A,rect=imcrop()和x,y,A,rect=imcrop()在用户交互剪取图像的同时返回剪取框的参数rect。数字图象剪取首先,我们从坐标0,0开始,从原图上剪取一个长度为100,宽度为100的矩形局部。图3.16 原图图3.17 以坐标0,0开始,剪取长度为100,宽度为100的矩形局部 下面,我们以坐标50,50开始,

27、剪取长度为100,宽度为100的矩形局部,并与以坐标0,0开始,剪取同样大小的图像相比拟。 图1为以坐标50,50开始,剪取长度为100,宽度为100的矩形局部,并与以坐标0,0开始,取长度为100,宽度为100的矩形局部。下面我们在原图像上用鼠标拖动出一个矩形框,返回该矩形框的起始坐标、长度和宽度,语句如下:i=imread(dd.jpg);A,rect=imcrop(i)截取局部如下列图所示:图3.21 用鼠标截取局部返回的值为rect = 我们将返回的rect值带入到以下语句中:i=imread(dd.jpg);j=imcrop(i, 14.3004 10.6290 107.0777 1

28、19.0671);imshow(i),title(1)figure,imshow(j),title(2)可得图像图3.22 将返回的rect值代入后所得图像该图像与用鼠标截取的图像完全相同。6第4章 结论 本文采用了MATLAB作为工具,以最近邻插法、双线性插值法和双三次插值法三种常用数字图像插值算法为根底,实现了数字图像的比例缩放、旋转和剪取等一系列几何变换。通过研究可以发现,插值算法的选取直接影响到数字图像在经过几何变换之后的质量。最近邻插法质量最差,但是算法简单,速度快;双线性插值法质量好,但是需要较大的计算量才能完成;双线性插值法无论在质量上还是速度上,都介于两者之间。插值技术的提高是

29、以数学方法的改良和提高为前提的。运用到现实中,还应结合硬件处理速度选择适宜的算法,硬件处理速度的提高也是实现复杂算法的前提。随着数学的开展和计算机硬件水平的提高,将会有更优秀的插值算法运用到实际当中,数字图像几何变换的质量和速度将得到很大程度上的提高。参考文献3 张兆礼,赵春晖,梅晓丹.现代图像处理技术M.北京:人民邮电出版社,附录我们用最近邻插法将图像按原比例放大1.5倍,语句如下:i=imread(dd.jpg);j=imresize(i,a);imshow(i),title(1)figure,imshow(j),title(2)用双线性插值法和双三次插值法将图像按原比例放大1.5倍,语句如下:i=imread(dd.jpg);j=imresize(i,a);k=imresize(i

温馨提示

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

评论

0/150

提交评论