基于Matlab的数字图像几何变换的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信专业课程设计二(论文)
目录
第1章前言............................................................. - 1 - 1.1数字图像概述 . (1)
1.2数字图像几何变换介绍 (2)
第2章图像几何变换理论......................................... - 3 -2.1图像缩放原理...................................................... - 3 - 2.2图像旋转原理...................................................... - 4 - 2.3图像剪取原理...................................................... - 6 - 第3章数字图像几何变换实现............................................. - 7 - 3.1数字图像缩放 . (7)
3.1.1 IMRESIZE函数..................................... 错误!未定义书签。
3.1.2数字图象缩放................................................... - 7 - 3.2数字图像旋转 (10)
3.2.1 IMROTATE函数..................................... 错误!未定义书签。
3.2.2数字图象旋转.................................................. - 10 - 3.3数字图像剪取 (12)
3.3.1IMCOPY函数 (12)
3.3.2数字图象剪取.................................................. - 12 - 第4章结论............................................................ - 15 - 参考文献............................................................... - 16 - 附录................................................................... - 17 -
第1章 前言
1.1数字图像概述
在20世纪20年代,图像处理首次应用于改善伦敦和纽约之间海底电缆发送的图片质量。
直到20世纪50年代数字计算机发展到一定水平后,数字图像处理才真正引起人们的兴趣。
1964年美国喷气推进实验室(JPL ),用计算机对“徘徊者2号”太空船发回的大批月球照片进行处理,受到明显的效果。
60年代末,数字图像处理已经形成了比较完善的体系,形成一门新的学科。
60年代到70年代,由于离散数学的创立和完善,使数字图像处理技术得到迅猛的发展,理论和方法进一步完善,应用范围更加广阔。
这一时期,图像处理主要与模式识别和图像理解的研究相联系,如文字识别、医学图像处理、遥感图像的处理等。
70年代后期至今,各个应用领域对数字图像处理提出越来越高的要求,促进这门学科向更高级的方向发展,特别是在景物理解和机器视觉方面,图像由二维处理变成三维解释。
近几年来随着计算机和各个领域研究的迅速发展,科学计算可视化、多媒体技术等的研究和应用,数字图像处理从一个专门领域的学科变成了一种新型的科学研究和人机界面的工具。
从二十世纪六十年代美国航空和太空总署(NASA)的喷气推进实验室第一次使用计算机对太空船发回的大批月球图片进行处理到信息技术不断提高的今天,数字图像的应用处理技术得到了广泛的应用,形成了自己的技术特色和完善的学科体系。
用计算机进行图像处理的前提是图像必须以数字格式存储,我们把以数字格式存放的图像称之为数字图像。
常见的各种照片、图片、海报、广告画等均属模拟图像,要将模拟图像数字化后生成数字图像,需要利用数字化设备。
目前,将模拟图像数字化的主要设备是扫描仪,将视频画面数字化的设备有图像采集卡。
当然,也可以利用数码照相机直接拍摄以数字格式存放的数字图像。
模拟图像经扫描仪进行数字化或由数码相机拍摄的自然景物图像,在计算机中均是以数字格式存储的。
既然是数字,计算机当然可以方便地进行各种处理,以达到视觉效果和特殊效果。
在计算机中,图像被分割成如下所示的像素(Pixel ),各像素的灰度值用整数表示。
一幅N M ⨯个像素的数字图像,其像素灰度值可以用M 行、N 列的矩阵G 表示:
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=MN M M N N g g g g g g g g g G (2122221)
11211 (1-1)
1.2 数字图像几何变换介绍
我们在处理图像时往往会遇到需要对图像进行几何变换的一些问题。
图像的几何变换时图像处理和图像分析的基础内容之一,它不仅提供了产生某些图像的可能,而且还可以使图像处理和分析的程序简单化,特别是图像具有一定的规律性时,一个图像可以由另一个图像通过几何变换来实现。
所以,为了提高图像处理和分析程序设计的速度和质量,开拓图像程序应用范围的新领域,对图像进行几何变换是十分必要的。
图像的几何变换不改变图像的像素值,而是改变像素所在的几何位置。
从变换的性质分,图像的几何变换有图像的位置变换(平移、镜像、旋转)、图像的形状变换(放大、缩小、错切)等基本变换以及图像的复合变换等。
其中使用最频繁的是图像的缩放和旋转,不论照片、图画、书报,还是医学X光和卫星遥感图像都会用到这两项技术。
MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。
这一特点也就决定了MATLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。
而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。
在本文中我们用MATLAB的图像处理工具包实现了图像的缩放、旋转和剪取。
图像处理工具包是由一系列支持图像处理操作的函数组成的。
所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。
下面就MATLAB 在图像处理中各方面的应用分别进行介绍:(1) 图像文件格式的读写和显示。
(2) 图像处理的基本运算。
(3) 图像变换。
(4) 图像的分析和增强。
(5) 图像的数学形态学处理。
以上所提到的MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。
[1]
第2章 图像几何变换理论
2.1图像缩放原理
图像比例缩放是指将给定的图像在x 轴方向按比例缩放fx 倍,在y 轴按比例缩放fy 倍,从而获得一幅新的图像。
如果fy fx =,即在x 轴方向和y 轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。
如果fy fx ≠,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。
设原图像中的点),(000y x P 比例缩放后,在新图像中的对应点为),(y x P ,则比例缩放前后两点),(000y x P 、),(y x P 之间的关系用矩阵形式可以表示为
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1100
0000100y x fy fx y x (2-6) 其逆运算为
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⋅⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡110001000
1100y x fy fx
y x (2-7) 即
⎪⎪⎩
⎪⎪⎨⎧==fy y
y fx x x 00 (2-8) 比例缩放所产生的图像中的像素可能在原图像中找不到相应得像素点,这样就必须进行插值处理。
有关插值的内容在后面我们会讨论。
下面首先讨论图像的比例缩小。
最简单的比例缩小时当2
1==fy fx 时,图像被缩到一半大小,此时缩小后图像中的(0,0)像素对应于原图像中的(0,0)像素;(0,1)像素对应于原图像中的(0,2)像素;(1,0)像素对应于原图像中的(2,0)像素,以此类推。
图像缩小之后,因为承载的数据量小了,所以画布可相应缩小。
此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作,即取原图的偶(奇)数行和偶(奇)数列构成新的图像。
如果图像按任意比例缩
小,则需要计算选择的行和列。
如果N M ⨯大小的原图像),(y x F 缩小为kN kM ⨯大小)1(<k 的新图像),(y x I 时,则
))int(),(int(),(y c x c F y x I ⨯⨯= (2-9) 其中,k
c 1=。
由此公式可以构造出新图像。
当fy fx ≠)0,(>fy fx 时,图像不按比例缩小,这种操作因为在x 方向和y 方向的缩小比例不同,一定会带来图像的几何畸变。
图像不按比例缩小的方法是:如果N M ⨯大小的旧图),(y x F 缩小为)1,1(2121<<⨯k k N k M k 大小的新图像),(y x I 时,则
))int(),(int(),(21y c x c F y x I ⨯⨯= (2-10) 其中2
2111,1k c k c ==,由此公式可以构造出新图像。
图像的缩小操作中,是在现有的信息里如何挑选所需要的有用信息。
而在图像的放大操作中,则需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。
当2==fy fx 时,图像被按全比例放大二倍,放大后图像中的(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 倍时,如果按照最近邻域法则需要将一个像素值添在新图像的k k ⨯的子块中。
显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。
当
fy fx ≠)0,(>fy fx 时,
图像在x 方向和y 方向不按比例放大,此时这种操作由于x 方向和y 方向的放大倍数不同,一定会带来图像的几何畸变。
放大的方法是将原图像的一个像素添到新图像的一个21k k ⨯的子块中去。
为了提高几何变换后的图像质量,常采用线性插值法。
该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。
2.2图像旋转原理
一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。
图像的旋转变换时图像的位置变换,但旋转后,图像的大小一般会改变。
在图像旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。