数字图像几何变换的分析与实现

更新时间:2024-01-26 18:47:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

摘要 ...................................................................... III Abstract .................................................................... V 第一章 前言 ............................................................. - 1 -

1.1数字图像概述 ..................................................... - 1 -

1.1.1数字图像 ................................................... - 1 - 1.1.2数字图像处理 ............................................... - 2 - 1.2数字图像处理的特点及目的 ......................................... - 3 -

1.2.1数字图像处理的特点 ......................................... - 3 - 1.2.2数字图像处理的目的 ......................................... - 3 - 1.3 数字图像几何变换介绍 ............................................ - 4 - 第二章 图像几何变换的理论 ............................................... - 7 -

2.1图像的数字化 ..................................................... - 7 -

2.1.1采样 ....................................................... - 7 - 2.1.2量化 ....................................................... - 8 - 2.1.3采样与量化参数的选择 ....................................... - 9 - 2.2数字图像类型 ..................................................... - 9 -

2.2.1位图 ...................................................... - 10 - 2.2.2位图的有关术语 ............................................ - 11 - 2.3数字图像几何变换的原理 .......................................... - 12 -

2.3.1几何变换基础 .............................................. - 12 - 2.3.2图像缩放的原理 ............................................ - 15 - 2.3.3图像旋转的原理 ............................................ - 17 - 2.3.4图像剪取的原理 ............................................ - 18 - 2.3.5插值的原理 ................................................ - 18 -

第三章 图像几何变换的实现 .............................................. - 21 -

3.1实现图像的缩放 .................................................. - 21 -

3.1.1 imresize函数 ............................................. - 21 -

I

3.1.2图象缩放实现结果 .......................................... - 21 - 3.2实现图像的旋转 .................................................. - 25 -

3.2.1 imrotate函数 ............................................. - 25 - 3.2.2图象旋转实现结果 .......................................... - 26 - 3.3实现图像的剪取 .................................................. - 28 -

3.3.1 imcrop函数 ............................................... - 28 - 3.3.2图象缩放实现结果 .......................................... - 29 -

第四章 结论和展望 ...................................................... - 33 - 参考文献 ............................................................... - 35 - 致谢 ................................................................... - 37 -

II

数字图像几何变换的分析与实现

摘要

数字图像几何变换是计算机图像处理领域中的一个重要组成部分,也是值得探讨的一个重要课题。在图像几何变换中主要包括图像的缩放、图像的旋转、图像的移动、图像的剪取、图像的块操作等内容。文章主要探讨了数字图像的几何变换(包括图像的缩放、旋转、剪取)理论,井在此基础上用MATLAB实现的过程。

关键词:图像几何变换,缩放,旋转,剪取

III

IV

Analysis and Realization of Digital Image Geometry Transform

Abstract

Digital image geometry transform is an important part in computer image processing area.It mainly includes image zoom ,image rotation,image motion,image crop,image block manipulation,etc.In this paper,we have discussed the theory about the digital image geometry transform(It includes image zoom ,image rotation,image crop),and preliminary experimental results have been obtained by running the MATIAB program.

Key words:Geometry transform of digital image,image zoom,image rotation,image crop

V

数字图像几何变换的分析与实现

第一章 前言

1.1数字图像概述

1.1.1数字图像

在20世纪20年代,图像处理首次应用于改善伦敦和纽约之间海底电缆发送的图片质量。直到20世纪50年代数字计算机发展到一定水平后,数字图像处理才真正引起人们的兴趣。1964年美国喷气推进实验室(JPL),用计算机对“徘徊者2号”太空船发回的大批月球照片进行处理,受到明显的效果。60年代末,数字图像处理已经形成了比较完善的体系,形成一门新的学科。60年代到70年代,由于离散数学的创立和完善,使数字图像处理技术得到迅猛的发展,理论和方法进一步完善,应用范围更加广阔。这一时期,图像处理主要与模式识别和图像理解的研究相联系,如文字识别、医学图像处理、遥感图像的处理等。70年代后期至今,各个应用领域对数字图像处理提出越来越高的要求,促进这门学科向更高级的方向发展,特别是在景物理解和机器视觉方面,图像由二维处理变成三维解释。近几年来随着计算机和各个领域研究的迅速发展,科学计算可视化、多媒体技术等的研究和应用,数字图像处理从一个专门领域的学科变成了一种新型的科学研究和人机界面的工具。从二十世纪六十年代美国航空和太空总署(NASA)的喷气推进实验室第一次使用计算机对太空船发回的大批月球图片进行处理到信息技术不断提高的今天,数字图像的应用处理技术得到了广泛的应用,形成了自己的技术特色和完善的学科体系。

用计算机进行图像处理的前提是图像必须以数字格式存储,我们把以数字格式存放的图像称之为数字图像。常见的各种照片、图片、海报、广告画等均属模拟图像,要将模拟图像数字化后生成数字图像,需要利用数字化设备。目前,将模拟图像数字化的主要设备是扫描仪,将视频画面数字化的设备有图像采集卡。当然,也可以利用数码照相机直接拍摄以数字格式存放的数字图像。模拟图像经扫描仪进行数字化或由数码相机拍摄的自然景物图像,在计算机中均是以数字格式存储的。既然是数字,计算机当然可以方便地进行各种处理,以达到视觉效果和特殊效果。

在计算机中,图像被分割成如下所示的像素(Pixel),各像素的灰度值用整数表示。一幅M?N个像素的数字图像,其像素灰度值可以用M行、N列的矩阵G表示:

- 1 -

?g11?gG??21?...??gM1g12g22...gM2...g1N?...g2N?? ......??...gMN?1.1.2数字图像处理

数字计算机最擅长的莫过于处理各种数据,数字化的图像可以看成是存储在计算机中的有序数据,当然可以通过计算机对数字图像进行处理。我们把利用计算机对图像进行去除噪声、增强、复原、分割、提取特征等的理论、方法、和技术称为数字图像处理(Digital Image Processing)。一般,图像处理是用计算机和实时硬件实现的,因此也称为计算机图像处理(Computer Digital Image Processing)。

在日常生活中,图像处理已经得到广泛应用。例如,电脑人像艺术,电视中的特殊效果,自动售货机钞票的识别,邮政编码的自动识别和利用指纹、虹膜、面部等特征的身份识别等。在医学领域,很早以前就采用X射线透视、显微镜照片等来诊断疾病。现在,计算机图像处理已成为疾病诊断的重要手段,用一般摄影方法不能获取的身体内部的状况,也能由特殊的图像处理装置获取,最具代表性的就是X射线CT(Computerized Tomograph)。

数字图像处理的产生和迅速发展主要受如下三个方面的影响。

一是计算机的发展。早期的计算机无论在计算速度或存储容量方面,难于满足对庞大图像数据进行实时处理的要求。随着计算机硬件技术及数字化技术的发展,计算机、内存及外围设备的价格急剧下降,而其性能却有了大幅度提高。过去只能用大型计算机完成的庞大处理,现在,在个人计算机上也能够轻而易举地实现。

二是数学的发展,特别是离散数学理论的创立和完善,为数字图像处理奠定了理论基础。

三是军事、医学和工业等方面应用需求的不断增长。自20世纪20年代以来,图像处理首次应用于改善伦敦和纽约之间海底电缆发送的图片质量以来,经过几十年的研究与发展,数字图像处理的理论和方法进一步完善,应用范围更加广阔,已经成为一门新兴的学科,并在向更高级的方向发展。如在景物理解和计算机视觉(机器视觉)方面,图像处理已由二维处理发展到三维理解或解释。近几年来,随着计算机和各个相关领域研究的迅速发展,科学计算可视化、多媒体技术等研究和应用的兴起,数字图像处理从一个专门领域的学科,变成了一种新型的科学研究和人机界面的工具。

目前数字图像处理技术已成为计算机科学、信息科学、生物学、医学等学科研究的热点。这是因为图像处理学科不仅可以促进人类的进步,还可以带来巨大的经济和社会效益。

- 2 -

1.2数字图像处理的特点及目的

1.2.1数字图像处理的特点

数字图像处理是利用计算机的计算功能,实现与光学系统模拟处理相同效果的过程。数字图像处理具有如下特点:

(1)处理精度高,再现性好。利用计算机进行图像处理,其实质是对图像数据进行各种运算。由于计算机技术的飞速发展,计算精度和计算的正确性都毋庸置疑;另外,对同一图像用相同的方法处理多次,也可得到完全相同的效果,具有良好的再现性。

(2)易于控制处理效果。在图像处理程序中,可以任意设定或变动各种参数,能有效控制处理过程,达到预期处理效果。这一特点在改善图像质量的处理中表现更为突出。

(3)处理的多样性。由于图像处理是通过运行程序进行的,因此,设计不同的图像处理程序,可以实现各种不同的处理目的。

(4)图像数据量庞大。图像中包含有丰富的信息,可以通过图像处理技术获取图像中包含的游泳的信息,但是,数字图像的数据量具大,一幅数字图像是由图像矩阵中的像素组成的,通常每个像素用红、绿、蓝三种颜色表示,每种颜色用8bit表示灰度级。则一幅1024×1024不经压缩的真彩色图像,数据量达3MB(即1024×1024×8bit×3=24Mb)。如此庞大的数据量给存储、传输和处理都带来巨大的困难。如果精度及分辨率再提高,所需处理时间将大幅度增加。

(5)处理费时。由于图像数据量大,因此处理比较费时。特别是处理结果与中心像素邻域有关的处理过程花费时间更多。

(6)图像处理技术综合性强。数字图像处理涉及的技术领域相当广泛,如通信技术、计算机技术、电子技术、电视技术等,当然,数学、物理学等领域更是数字图像处理的基础。

1.2.2数字图像处理的目的

一般来说,对图像进行加工和分析主要有如下三方面的目的:

(1)提高图像的视感质量,以达到赏心悦目的目的。如去除图像中的噪声,改变图像的亮度、颜色,增强图像中的某些成份、抑制某些成份,对图像进行几何变换等,从而改善图像的质量,以达到或真实的、或清晰的、或色彩丰富的、或意想不到的艺术效果。

(2)提取图像中所包含的某些特征或特殊信息,以便于计算机分析,例如,常用作模式识别、计算机视觉的预处理等。这些特征包括很多方面,如频域特性、灰度/颜色特性、边界/区域特性、纹理特性、形状/拓扑特性以及关系结构。

- 3 -

(3)对图像数据进行变换、编码和压缩,以便于图像的存储和传输。

1.3 数字图像几何变换介绍

我们在处理图像时往往会遇到需要对图像进行几何变换的一些问题。图像的几何变换时图像处理和图像分析的基础内容之一,它不仅提供了产生某些图像的可能,而且还可以使图像处理和分析的程序简单化,特别是图像具有一定的规律性时,一个图像可以由另一个图像通过几何变换来实现。所以,为了提高图像处理和分析程序设计的速度和质量,开拓图像程序应用范围的新领域,对图像进行几何变换是十分必要的。

图像的几何变换不改变图像的像素值,而是改变像素所在的几何位置。从变换的性质分,图像的几何变换有图像的位置变换(平移、镜像、旋转)、图像的形状变换(放大、缩小、错切)等基本变换以及图像的复合变换等。其中使用最频繁的是图像的缩放和旋转,不论照片、图画、书报,还是医学X光和卫星遥感图像都会用到这两项技术。

MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。在本文中我们用MATLAB的图像处理工具包实现了图像的缩放、旋转和剪取。

图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。

(1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp,tif、tiff、pcx 、jpg 、gpeg 、hdf、xwd等格式图像文;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。

(2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性算。例如,conv2(I,J)实现了I,J两幅图像的卷积。

(3) 图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换

- 4 -

(FFT) 、离散余弦变换 (DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。

(4) 图像的分析和增强。针对图像的统计计算MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。

(5) 图像的数学形态学处理。针对二值图像,MATLAB 提供了数学形态学运算函数;蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等丰富的数学形态学运算。

以上所提到的 MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。

- 5 -

- 6 -

第二章 图像几何变换的理论

2.1图像的数字化

从广义上说,图像是自然界景物的客观反映,是人类认识世界和人类本身的重要源泉。图像对我们并不陌生。我们生活在一个信息时代,科学研究和统计表明,人类从外界获得的信息约有75%来自视觉系统,也就是从图像中获得的。

我们接触到的现实世界中的图像多为模拟图像,但是计算机只能处理数字信息,所以,数字图像处理的一个先决条件就是将连续图像离散化,转换为数字图像。设连续图像

f(x,y)经数字化后,可以用一个离散量组成的矩阵g(i,j)(即二位数组)来表示

?f(0,0)?f(1,0)g(i,j)???...??f(m?1,0)f(0,1)f(1,1)...f(m?1,1)............f(0,n?1)?f(1,n?1)??

?...?f(m?1,n?1)?矩阵中的每一个元素称为像元、像素或图像元素。而g(i,j)代表(i,j)点的灰度值,即亮度值。以上数字化有以下几点说明:

(1)由于g(i,j)代表该点图像的光强度,而光是能量的一种形式,故g(i,j)必须大于零,且为有限值,即0?g(i,j)??。

(2)数字化采样一般是按正方形点阵取样的,除此之外还有三角形点阵、正六边形点阵取样。

(3)以上是用g(i,j)的数值来表示(i,j)位置点上灰度级值的大小,即只反映了黑白灰度的关系,如果是一幅彩色图像,各点的数值还应当反映色彩的变化,可用g(i,j,?)表示,其中?是波长。如果图像是运动的,还应是时间t的函数,即可表示为g(i,j,?,t)。

图像的数字化包括采样和量化两个过程。 2.1.1采样

图像在空间上的离散化称为采样。也就是用空间上部分点的灰度值代表图像,这些点成为采样点。由于图像是一种二维分布的信息,为了对它进行采样操作,需要先将二维信号变为一维信号,再对一位信号完成采样,具体做法是,先沿垂直方向按一定间隔从上到下顺序地沿水平方向直线扫描,取出各水平线上灰度值的一维扫描。而后再对一维扫描线

- 7 -

信号按一定间隔采样得到离散信号,即先沿垂直方向采样,再沿水平方向采样对两个步骤完成采样操作。对于运动图像(即时间域上的连续图像),需先在时间轴上采样,再沿垂直方向采样,最后沿水平方向采样由这三个步骤完成。

对一幅图像采样时,若每行图像为M个,每列像素为N个,则图像大小为M?N。 在进行采样时,采样点间隔的选取是一个非常重要的问题,它决定了采样后图像的质量,即忠实于原图像的程度。采样间隔的大小选取要依据原图像中包含的细微浓淡变化来决定。一般,图像中细节越多,采样间隔应越小。根据一维采样定理,若一维信号g(t)的最大频率为?,以T?12?为间隔进行采样,则能够根据采样结果g(iT)(i??,?1,0,1,...)完全恢复g(t),即

g(t)?i????g(iT)s(t?iT)

??式中s(t)?sin(2??t) 2?t2.1.2量化

模拟图像经采样后,在时间和空间上的离散化为像素。但采样所得的像素值(即灰度值)仍是连续量。把采样后所得的各像素的灰度值从模拟量到离散量的转换称为图像灰度的量化。若连续灰度值用z来表示,对于满足zi?z?zi?1的z值,都量化为整数qi。qi称为像素的灰度值,z与qi的差称为量化误差。一般,像素值量化后用一个字节8bit来表示。把由黑—灰—白的连续变化的灰度值,量化为0—255共256级灰度值,灰度值的范围为0—255,表示亮度从深到浅,对应图像中的颜色为从黑到白。

连续灰度值量化为灰度级的方法有两种,一种是等间隔量化,另一种是非等间隔量化。等间隔量化就是简单地把采样值的灰度范围等间隔地分割并进行量化。对于像素灰度值在黑—白范围较均匀分布的图像,这种量化方法可以得到较小的量化误差。该方法也称为均匀量化或线形量化。为了减小量化误差,引入了非均匀量化的方法。非均匀量化是依据一幅图像具体的灰度值分布的概率密度函数,按总的量化误差最小的原则来进行量化。具体做法是对图像中像素灰度值频繁出现的灰度值范围,量化间隔取小一些,而对那些像素灰度值极少出现的范围,则量化间隔取大一些。由于图像灰度值的概率分布密度函数因图像不同而异,所以不可能找到一个适用于各种不同图像的最佳非等间隔量化方案。因此,实际上一般都采用等间隔量化。

- 8 -

2.1.3采样与量化参数的选择

一副图像在采样时,行、列的采样点与量化时每个像素量化的级数,既影响数字图像的质量,也影响到该数字图像数据量的大小。假定图像取M?N个样点,每个像素量化后的灰度二进制位数为Q,一般Q总是去2的整数幂,即Q?2k,则存储一幅数字图像所需的二进制位数b为

b?M?N?Q

字节数B为

B?M?N?Q 8对一幅图像,当量化级数Q一定时,采样点数M?N对图像质量有着显著的影响。采样点数越多,图像质量越好;当采样点数减少时,图上的块状效应就逐渐明显。同理,当图像的采样点数一定时,采用不同量化级数的图像质量也不一样。量化级数越多,图像质量越好,当量化级数越少时,图像质量越差,量化级数最小的极端情况就是二值图像,图像出现假轮廓。

一般,当限定数字图像的大小时,为了得到质量较好的图像可采用如下选择: (1)对缓变的图像,应该细量化,粗采样,以避免假轮廓。 (2)对细节丰富的图像,应细采样,粗量化,以避免模糊(混叠)。

对于彩色图像,是按照颜色成分——红(R)、绿(G)、蓝(B)分别采样和量化的。若各种颜色成分均按8bit量化,即每种颜色量级别是256,则可以处理

256?256?256?16777216种颜色。

2.2数字图像类型

为了更方便地处理数字图像,根据数字图像的特性将其分成不同的类型。静态图像可分为矢量图(Vector)和位图(Bitmap),位图也称为栅格图像。

矢量图示用一些列绘图指令来表示一幅图,如AutoCAD中的绘图语句。这种方法的本质是用数学(更准确地说是几何学)公式描述一幅图像。图像中每一个形状都是一个完整的公式,称为一个对象。对象是一个封闭的整体,所以定义图像上对象的变化和对象与其它对象的关系对计算机来说是简单的,所有这些变化都不会影响到图像中的其他对象。公式化表示图像使得矢量图具有两个优点:一是它的文件数据量很小;二是图像质量与分辨率无关,这意味着无论将图像放大或缩小了多少次,图像总是以显示设备允许的最大清晰度显示。在计算机计算与显示一幅图像时,也往往能看到画图的过程。但是,矢量图有

- 9 -

一个明显的缺点,就是不易制作色调丰富或色彩变化太多的图像,而且绘出来的图像不是很逼真,同时也不易在不同的软件间交换文件。在Corel Draw和Adobe Illustrator中生成的图像均为矢量图。

位图是通过许多像素点表示一副图像,每个像素具有颜色属性和位置属性。位图可以从传统的相片、幻灯片上制作出来或适用数字相机得到,也可以利用Windows的画笔(Painbrush)用颜色点填充网格单元来创建位图。

在本文中,所采用图像为位图,下面详细介绍有关位图的内容。 2.2.1位图

位图可以分成如下四种:线画稿(LineArt)、灰度图象(GrayScale)、索引颜色图像(Index Color)和真彩色图像(True Color)。

(1)线画稿

线画稿只有黑白两种颜色,这种形式通常也称为“黑白艺术”、“位图艺术”、“一元化艺术”。用扫描仪扫描图像,当设置成LineArt格式时,扫描仪以一位颜色模式来看待图像。若颜色点为黑,则扫描仪将相应的像素位元置为0,否则置为1。线画稿适合于由黑白两色构成而没有灰度阴影的图像。

(2)灰度图像

在灰度图像中,像素灰度级用8bit表示,所以每个像素都是介于黑色和白色之间的256(28=256)种灰度中的一种。灰度图像只有灰度颜色而没有彩色。我们通常所说的黑白照片,其实包含了黑白之间的所有灰度色调。从技术上来说,就是具有从黑到白的256种灰度色域(Gamut)的单色图像。

(3)索引图像

在介绍索引图像之前,我们首先了解PC机时如何处理颜色的。大多数扫描仪都是以24位模式对图像进行采样,即可以从图像中采样出1670万种不同的颜色。用这种方式获得的颜色通常称为RGB颜色。颜色深度为每像素24位的数字图像是目前所能获取、浏览和保存的颜色信息最丰富的彩色图像,由于它所表达的颜色远远超出了人眼所能辨别的范围,故将其称为“真彩色”。在真彩色出现之前,由于技术上的原因,计算机在处理时并没有达到24位的真彩色水平,为此人们创造了索引颜色。索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。

- 10 -

(4)真彩色图像

真彩色图像将像素的色彩能力推向了顶峰。“真彩色”是RGB颜色的另一种流行的叫法。从技术角度考虑,真彩色是指写到磁盘上的图像类型,而RGB颜色是指显示器的显示模式。RGB图像的颜色是非映射的,它可以从系统的“颜色表”里自由获取所需的颜色,这种图像文件里的颜色直接与PC机上的显示颜色相对应。在真彩色图像中,每一个像素由红、绿和蓝三个字节组成,每个字节为8bit,表示从0到255之间的不同的亮度值,这三个字节组合,可以产生1670万种不同的颜色。 2.2.2位图的有关术语

(1)像素(Pixel)、点(Dot)和样点(Sample)

在计算机中,图像是由显示器上许许多多光点组成的,将显示在显示器上的这些点(光的单元)称为像素。像素的分割有不同的方法,实际常用正方形网格点阵分割方案,这是因为其像素网格点阵规范,易于在图像输入、输出设备上实现。在计算机图像处理中,还常用到点和样点这些术语。像素、点和样点是在计算机上对不同阶段的图像进行度量的称谓,这几个术语很容易混淆,故特一一做介绍。

首先说明样点和点的概念。扫描一幅图像时,需设置扫描仪的分辨率(Resolution),分辨率决定了扫描仪从源图像里每英寸取多少个样点。扫描仪将源图像看成由大量的网格组成,然后在每一个网格里取出一点,用该点的颜色值来代表这一网格里所有点的颜色值,这些被选中的点就是样点。扫描仪的分辨率单位为dpi(每英寸点数),但激光打印机的dpi与扫描仪的dpi(样点)是不同的。实际上,以150dpi分辨率扫描的图像,它的效果相当于激光打印机的1200dpi的效果。

(2)图像分辨率

图像分辨率是指每英寸图像含有多少个点或像素,分辨率的单位为dpi。例如,250dpi表示的就是该图像每英寸含有250个点或像素。在数字图像中,分辨率的大小直接影响到图像的质量。分辨率越高,图像细节越清晰,但产生的文件尺寸大,同时处理的时间也就越长,对设备的要求也就越高。所以在制作图像时要根据需要来选择分辨率。另外,图像的尺寸、图像的分辨率和图像文件的大小三者之间有着密切的联系。图像的尺寸越大,图像的分辨率越高,图像文件也就越大。所以,调整图像的大小和分辨率即可改变图像文件的大小

需要说明的是,与数字图像有关的分辨率除图像分辨率外,还包括屏幕分辨率(显示器上每单位长度显示的像素或点的数量)、打印机分辨率(打印机输出图像时每英寸的点

- 11 -

数)和扫描仪分辨率。在本文中不做一一说明。

2.3数字图像几何变换的原理

2.3.1几何变换基础

图像的几何变换,是指使用户获得或设计的原始图像,按照需要产生大小、形状和位置的变化。从图像类型分,图像的几何变换有二维平面图像的几何变换和三维图像的几何变换以及由三维向二维平面投影变换等。从变换的性质分,图像的几何变换有平移、比例缩放、旋转、反射和错切等基本变换,透视变换等复合变换,以及插值运算等。在本文中,我们只讨论2D图像的几何变换。

对于2D图像几何变换及变换中心在坐标原点的比例缩放、反射、错切和旋转等各种

?ab?变换,都可以用2?2的矩阵表示和实现。但是一个2?2变换矩阵T???却不能实现图cd??像的平移以及绕任意点的比例缩放、反射、错切和旋转等各种变换。因此,为了能够用统一的矩阵线性变换形式,表示和实现这些常见的图像几何变换,就需要引入一种新的坐标,即齐次坐标。利用齐次坐标来变换处理,才能实现上述各种2D图像的几何变换。下面以图像的平移为例,说明用齐次坐标表示的二维图像几何变换的矩阵,并在此基础上推广至其它情况。

现设点P0(x0,y0)进行平移后,移到P(x,y),其中x方向的平移量为?x,y方向的平移量为?y。那么点P(x,y)的坐标为

?x?x0??x ?y?y??y0?这个变换用矩阵的形式可以表示为

?x??10??x0???x??y???01??y????y? ?????0????ab?而平面上点的变换矩阵T???中没有引入平移常量,无论a、b、c、d取什么值,都不cd??能实现上述的平移变换。因此,需要使用2?3阶变换矩阵,取其形式为

?10?x?T??? 01?y??此矩阵的第一、二列构成单位矩阵,第三列元素为平移常量。由上述可知,对2D图像进

- 12 -

行变换,只需要将图像的点集矩阵乘以变换矩阵即可,2D图像对应的点集矩阵是2?n阶的,而上式扩展后的变换矩阵是2?3阶的矩阵,这不符合矩阵相乘时要求前者的列数与后

?x?者的行数相等的规则。所以需要在点的坐标列矩阵??中引入第三个元素,增加一个附加

?y??x??,这样用三维空间点(x,y,1)表示二维空间点(x,y),即采用y坐标,扩展为3?1的列矩阵?????1??一种特殊的坐标,可以实现平移变换,变换结果为

?x??10?x????x0??x??x?P?T?P0??y?????? ???y??y?01?y??1??0??y????x?x0??x式?符合上述平移后的坐标位置。通常将2?3阶矩阵扩充为3?3阶矩阵,以拓宽

y?y??y0?功能。由此可得平移变换矩阵为

?10?x?? T??01?y????001??下面在验证一下点P(x,y)按照3?3的变换矩阵T平移变换的结果

?10?x??x0??x0??x??x???y???y??y???y? P?T?P0??01?y???0??0?????001????1????1????1??从上式可以看出,引入附加坐标后,扩充了矩阵的第3行,并没有使变换结果受到影响。这种用n+1维向量表示n维向量的方法称为齐次坐标表示法。

因此,2D图像中的点坐标(x,y)通常表示成齐次坐标(Hx,Hy,H),其中H表示非零的任意实数。当H=1时,则(x,y,1)就称为点(x,y)的规范化齐次坐标。显然规范化齐次坐标的前两个数是相应二维点的坐标,没有变化,仅在原坐标中增加了H?1的附加坐标

由点的齐次坐标(Hx,Hy,H)求点的规范化齐次坐标(x,y,1),可按如下公式进行:

x?Hx HHyy?

H- 13 -

齐次坐标在2D图像几何变换中的另一个应用事:如某点S(60000,40000)在16位计算机上表示则大于32767的最大坐标值,需要进行复杂的操作。但如果把S 的坐标形式变成(Hx,Hy,H)形式的齐次坐标,则情况就不同了。在齐次坐标系中,设H?1,则(60000,2xy1140000)的齐次坐标为(,,),那么所要表示的点变为(30000,20000,),此点显然在16

2222位计算机上二进制数所能表示的范围之内。因此,采用齐次坐标,并将变换矩阵改成3?3阶的形式后,便可实现所有2D图像几何变换的基本变换。

在上述基础上,将二维图像几何变换的矩阵推广至其它情况。

利用齐次坐标及改成3?3阶形式的变换矩阵,实现2D图像几何变换的基本变换的一

?x0i??x0i??的形式,然后乘以相y般过程式:将2?n阶的二维点集矩阵??表示成齐次坐标?0i???y0i?2?n??1??3?n应的变换矩阵即可完成,即

变换后的点集矩阵=变换矩阵T?变换前的点集矩阵

(图像上各点的新齐次坐标) (图像上各点的原齐次坐标) 设变换矩阵T为

?abT???cd??lmp?q?? s??则上述变换可以用公式表示为

?Hx1'?'?Hy1?H?''?Hx2...Hxn?x1?y''?Hy2...Hyn?T???1?H...H??1?3?nx2...xn?y2...yn?? 1...1??3?n图像上各点的新齐次坐标规范化后的点集矩阵为

?x1'?'?y1?1?''?x2...xn''?y2...yn?

1...1??3?n引入齐次坐标后,表示2D图像几何变换的3?3矩阵的功能就完善了,可以用它完成2D图像的各种几何变换。下面讨论3?3阶变换矩阵中各元素在变换中的功能。几何变换的

3?3矩阵的一般形式为

- 14 -

?abT???cd??lmp?q?? s???ab?3?3阶矩阵T可以分成四个子矩阵。其中,?这一子矩阵可使图像实现恒等、??cd?2?2?p?比例、反射(或镜像)、错切和旋转变换。?lm?这一行矩阵可以使图像实现平移变换。???q?这一列矩阵可以使图像实现透视变换。但当p?0,q?0时它无透视作用。?s?这一元素可以使图像实现全比例变换。例如,将图像进行全比例变换,即

?100??x0i??xi??010???y???y? ???0i??i???00s????1????s??由此可见,当s?1时,图像按比例缩小;当0?s?1时,整个图像按比例放大;当s?1时,图像大小不变。 2.3.2图像缩放的原理

图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴按比例缩放fy倍,从而获得一幅新的图像。如果fx?fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fx?fy,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。

设原图像中的点P0(x0,y0)比例缩放后,在新图像中的对应点为P(x,y),则比例缩放前后两点P0(x0,y0)、P(x,y)之间的关系用矩阵形式可以表示为

?x??fx?y???0?????1????00??x0??y? fy0???0?01????1??0其逆运算为

?1??x0??fx?y???0?0????1???0??

01fy0?0???x?? 0???y????1??1????- 15 -

??x0??即??y?0??xfx yfy比例缩放所产生的图像中的像素可能在原图像中找不到相应得像素点,这样就必须进行插值处理。有关插值的内容在后面我们会讨论。下面首先讨论图像的比例缩小。最简单的比例缩小时当fx?fy?1时,图像被缩到一半大小,此时缩小后图像中的(0,0)像素2对应于原图像中的(0,0)像素;(0,1)像素对应于原图像中的(0,2)像素;(1,0)像素对应于原图像中的(2,0)像素,以此类推。图像缩小之后,因为承载的数据量小了,所以画布可相应缩小。此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作,即取原图的偶(奇)数行和偶(奇)数列构成新的图像。如果图像按任意比例缩小,则需要计算选择的行和列。

如果M?N大小的原图像F(x,y)缩小为kM?kN大小(k?1)的新图像I(x,y)时,则

I(x,y)?F(int(c?x),int(c?y))

其中,c?1。由此公式可以构造出新图像。 k当fx?fy(fx,fy?0)时,图像不按比例缩小,这种操作因为在x方向和y方向的缩小比例不同,一定会带来图像的几何畸变。图像不按比例缩小的方法是:如果M?N大小的旧图F(x,y)缩小为k1M?k2N(k1?1,k2?1)大小的新图像I(x,y)时,则

I(x,y)?F(int(c1?x),int(c2?y)) 其中c1?11,c2?,由此公式可以构造出新图像。 k1k2图像的缩小操作中,是在现有的信息里如何挑选所需要的有用信息。而在图像的放大操作中,则需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。当fx?fy?2时,图像被按全比例放大二倍,放大后图像中的(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)像素,依此类推。其实这是将原

- 16 -

图像每行中的像素重复取值一遍,然后每行重复一次。

按比例将原图像放大k倍时,如果按照最近邻域法则需要将一个像素值添在新图像的

k?k的子块中。显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。当

图像在x方向和y方向不按比例放大,此时这种操作由于x方向和yfx?fy(fx,fy?0)时,

方向的放大倍数不同,一定会带来图像的几何畸变。放大的方法是将原图像的一个像素添到新图像的一个k1?k2的子块中去。为了提高几何变换后的图像质量,常采用线性插值法。该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。 2.3.3图像旋转的原理

一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换时图像的位置变换,但旋转后,图像的大小一般会改变。在图像旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。

同样,图像的旋转变换也可以用矩阵变换来表示。设点P0(x0,y0)逆时针旋转?角后的对应点为P(x,y)。那么,旋转前后点P0(x0,y0)、P(x,y)的坐标分别是:

?x0?rcos? ?y?rcos??0?x?rcos(???)?rcos?cos??rsin?sin??x0cos??y0sin? ??y?rsin(???)?rsin?cos??rcos?sin??x0sin??y0cos?写成矩阵表达式为

?x??cos??y???sin??????1????0?sin?cos?00??x0??y? 0???0?1????1??其逆运算为

?x??cos??y????sin??????1????0sin?cos?00??x0??y? 0???0?1????1??利用上述方法进行图像旋转时需要注意如下两点:

(1)图像旋转之前,为了避免信息的丢失,一定要有坐标平移。

(2)图像旋转之后,会出现许多空洞点。对这些空洞点必须进行填充处理,否则画

- 17 -

面效果不好,一般也称这种操作为插值处理。

以上所讨论的旋转是绕坐标轴原点(0,0)进行的。如果图像旋转是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图象平移回原来的坐标原点,这实际上是图像的复合变换。如将一幅图像绕点(a,b)逆时针旋转?度,首先将原点平移到(a,b),即

?10?a?? A??01?b????001??然后旋转

?cos?B???sin???0?sin?cos?00?0?? 0??然后再平移回来

?10a?? C??01b????001??综上所述,变换矩阵为T?C?B?A。 2.3.4图像剪取的原理

有些时候我们为了减少图像所占存储空间,舍弃图像的无用部分,只保留感兴趣的部分,这就需要用到图像的剪取。在本文中,我们只讨论对原图像剪取一个形状为矩形的部分的操作。对一幅图像进行剪取操作前,首先初始化该图像,这样图像上每个点,就对应了一个二维坐标,即(x,y)。首先,我们先取二维坐标系上的一点(x0,y0),这点就作为要截取的矩形的左上角的起始坐标。然后我们定义一两个常量?x、?y,其中,?x代表矩形

?y代表矩形的宽度,的长素,然后舍弃掉在矩形外的点,这样,在整个坐标系上,由(x0,y0)、

(x0??x,y0)、(x0,y0??y)和(x0??x,y0??y)四个点所围成的矩形部分便被保留下来。 2.3.5插值的原理

由于对变换之后的整数坐标位置的像素值进行估计的好坏以及数据结构的选择的优劣,直接会影响到图像显示视觉效果与存储空间的大小,所以,在图像处理中必须考虑到图像处理的插值方法和图像的存储类型。同样这也是整个图像处理中必须考虑的两个基本问题。

- 18 -

插值(Interpolation),有时也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。有些相机使用插值,人为地增加图像的分辨率。插值算法的数值精度与插值函数有关,插值函数的设计是插值算法的核心。在MATLAB中为图像处理提供了三种插值方法:最近邻插值(Nearest Neighbor Interpolation),双线性插值(Bilinear Interpolation),和双三次插值(Bicubic Interpolation)。

最近邻插值是最简单的插值方法,它的本质就是放大像素。新图像的像素颜色是原图像中与创造的像素位置最接近像素的颜色。如果把原图像放大200%,1个像素就会被放大成4个与原像素颜色相同的像素。多数的图像浏览和编辑软件都会使用这种插值方法放大数码图像,因为这不会改变原图像的颜色信息,并且不会产生防锯齿效果。然而,在实际放大照片中这种方法并不合适,因为这种插值会增加图像的可见锯齿。

图2-1 双线性插值法原理图

双线性插值的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值,这种方法具有放锯齿效果,创造出来的图像拥有平滑的边缘,锯齿难以察觉。其原理如图2-1所示。

图中点f(x,y)为插值点。计算公式如下:

f(x,0)?f(0,0)?x?f(1,0)?f(0,0)?f(x,1)?f(0,1)?x?f(1,1)?f(0,1)? f(x,y)?f(x,0)?y?f(x,1)?f(x,0)?

- 19 -

双三次插值是一种更加复杂的插值方式,在计算新像素点的值时,要将周围的16个点全部考虑进去。它能创造出比双线性插值更平滑的图像边缘,同时也需要更大的计算量。点(i?u,j?v)目的像素值f(i?u,j?v)可由如下插值公式得到:

f(i?u,j?v)??A?*?B?*?C?

?A???s(u?1)s(u?0)s(u?1)s(u?2)?

?f(i?1,j?1)?f(i?0,j?1)?B????f(i?1,j?1)??f(i?2,j?1)?S(v?1)??S(v?0)?? ?C????S(v?1)???S(v?2)??f(i?1,j?0)f(i?0,j?0)f(i?1,j?0)f(i?2,j?0)f(i?1,j?1)f(i?0,j?1)f(i?1,j?1)f(i?2,j?1)f(i?1,j?2)?f(i?0,j?2)?? f(i?1,j?2)??f(i?2,j?2)?1?2*Abs(x)^2?Abs(x)^3,0?Abs(x)?1??S(x)?4?8*Abs(x)?5*Abs(x)^2?Abs(x)^3,1?Abs(x)?2

?0,Abs(x)?2?S(x)是对Sin(x*?)/x的逼近。

- 20 -

第三章 图像几何变换的实现

在本文的实现过程中,我们主要利用了MATLAB的图像处理工具包来编写程序。MATLAB图像处理工具包是由一系列支持图像处理操作的函数组成的,所支持的图像处理操作有:几何操作、区域操作和块操作;线性滤波和滤波器设计;变换(DCT变换);图像分析和增强;二值图像操作等。

本论文所采用图像为分辨率为150?224的灰度图像,其格式为JPEG。

3.1实现图像的缩放

3.1.1 imresize函数

MATLAB图像处理工具箱中的函数imresize可以用上述3种方法对图像进行插值缩放,如果不指定插值方法,则默认使用最近邻插值法。

imresize函数的语法格式为: B=imresize(A,m,method)

B=imresize(A,[mrows ncols],method) B=imresize(?,method,n) B=imresize(?,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使用一个前端平滑滤波器,默认的滤波器尺寸为11*11。也可通过参数n指定滤波器的尺寸,即B=imresize(?,method,n)。对于nearest插值方法,imresize不使用前端滤波器,除非函数明确指定。

B=imresize(?,method,h)使用用户设计的插值核h进行插值,h可以看作一个 二维FIR滤波器。

3.1.2图象缩放实现结果

首先,我们用最近邻插法将图像按原比例放大1.5倍,语句如下:

- 21 -

i=imread('qb.jpg'); a=1.5 j=imresize(i,a); imshow(i),title(1) figure,imshow(j),title(2) 其运行结果如下:

21

图1为原图,图2为用最近临插法按原比例放大1.5倍后的图像。

下面我们分别用双线性插值法和将双三次插值法将图像按原比例放大1.5倍,并与采用最近邻插法放大的图像做比较,语句如下:

i=imread('qb.jpg'); a=1.5 j=imresize(i,a);

k=imresize(i,a, 'bilinear'); l=imresize(i,a, 'bicubic'); imshow(j),title(1) figure,imshow(k),title(2) figure,imshow(l),title(3)

- 22 -

12

3

图1为采用最近邻插法所得图像,图2为采用双线性插值法所得图像,图3为双三次插值法所得图像。

下面我们用双线性插值法将图像按原比例缩小为0.8倍,语句如下:

- 23 -

i=imread('qb.jpg'); a=0.8

j=imresize(i,a ,'bilinear'); imshow(i),title(1) figure,imshow(j),title(2)

12

图1为原图,图2为用双线性插值法按原比例缩小为0.8倍后的图像。 下面,我们用双线性插值法,返回一个400行、400列的图像。语句如下: i=imread('qb.jpg');

j=imresize(i,[400 400],'bilinear'); imshow(i),title(1) figure,imshow(j),title(2)

1

- 24 -

2

图1为原图,图2为用双线性插值法所得到的400行、400列图像。由以上两图我们看到,原图像为一个150行、224列的图像,其长宽比由原来的2:3变为1:1,因此图像会产生畸变(图中人物变胖)。

3.2实现图像的旋转

3.2.1 imrotate函数

在对数字图像进行旋转的时候,各像素的坐标将会发生变化,使得旋转之后不能正好落在整数坐标处,需要进行插值。在工具箱中的函数imrotate可用3种方法对图像进行插值旋转,默认的插值方法也是最近邻插值法。函数imrotate的语法格式为:

B=imrotate(A,angle,method) B=imrotate(A,angle,method,'crop')

函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线形插值)及bicubic(双三次插值),默认值为 nearest。一般来说,旋转后的图像会比原图大,超出原图像的部分值为0。用户也可以指定crop参数对旋转后的图像进行剪切(取图像的中间部分),使返回的图像与原图大小相同。

- 25 -

3.2.2图象旋转实现结果

首先,我们用双线性插值法将原图像旋转45度,不裁去超出原图的部分,语句如下: i=imread('qb.jpg'); a=45

j=imrotate(i,a,'bilinear'); imshow(i),title(1) figure,imshow(j),title(2)

21

图1为原图,图2为用双线性插值法旋转45度后的图像,未裁去超出原图的部分。 下面,我们用双线性插值法将原图像旋转45度,裁去超出原图的部分,并与未裁去超出部分的做比较,语句如下:

i=imread('qb.jpg'); a=45

j=imrotate(i,a,'bilinear'); k=imrotate(i,a, 'bilinear', 'crop'); imshow(k),title(1) figure,imshow(j),title(2)

- 26 -

21

出部分的,可见图1与原图大小相同。

图1为用双线性插值法将原图像旋转45度,裁去超出原图的部分,图2为未裁去超

下面,我们用双线性插值法将原图像旋转60度,并与旋转45度的图像做比较,语句如下:

i=imread('qb.jpg'); a=45 b=90

j=imrotate(i,b,'bilinear'); k=imrotate(i,a,'bilinear'); imshow(j),title(1) figure,imshow(k),title(2)

1

- 27 -

2

图1为用双线性插值法将原图像旋转90度所得图像,图2为旋转45度的所得图像。

3.3实现图像的剪取

3.3.1 imcrop函数

有时只需要处理图像中的一部分,或者需要将某一部分取出,这样就要对图像进行剪取。图形的裁剪处理可使用imcrop函数实现。

函数imcrop用于剪取图像中的一个矩形子图,用户可以通过参数指定这个矩形顶点的坐标,也可以用鼠标指针选取这个矩形。其语法规则如下:

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(X,map,rect)和RGB2=imcrop(RGB,rect)按指定的矩形框rect剪切图像,rect是一个四元向量[xmin ymin

- 28 -

width height],分别表示矩形左上角的坐标和长度及宽度。[?]=imcrop(x,y,?)在指定坐标系统(x,y)中剪取图像。[A,rect]=imcrop(?)

和[x,y,A,rect]=imcrop(?)在用户交互剪取图像的同时返回剪取框的参数rect。 3.3.2图象缩放实现结果

首先,我们从坐标(0,0)开始,从原图上剪取一个长度为100,宽度为100的矩形部分,语句如下:

i=imread('qb.jpg'); j=imcrop(i,[0 0 100 100]); imshow(i),title(1) figure,imshow(j),title(2)

12

图1为原图,图2为以坐标(0,0)开始,剪取长度为100,宽度为100的矩形部分。 下面,我们以坐标(50,50)开始,剪取长度为100,宽度为100的矩形部分,并与以坐标(0,0)开始,剪取同样大小的图像相比较,语句如下:

i=imread('qb.jpg'); j=imcrop(i,[0 0 100 100]); k=imcrop(i,[50 50 100 100]); imshow(k),title(1) figure,imshow(j),title(2)

- 29 -

12

图1为以坐标(50,50)开始,剪取长度为100,宽度为100的矩形部分,并与以坐标(0,0)开始,取长度为100,宽度为100的矩形部分。

下面,我们以坐标(25,25)开始,剪取长度为100,宽度为100的矩形部分,并与以坐标(25,25)开始,剪取长度为125,宽度为150的图像相比较,语句如下:

i=imread('qb.jpg');

j=imcrop(i,[25 25 100 100]); k=imcrop(i,[25 25 125 150]); imshow(j),title(1) figure,imshow(k),title(2)

21

图1为以坐标(25,25)开始,剪取长度为100,宽度为100的矩形部分,图2为以坐标(25,25)开始,剪取长度为125,宽度为150的图像。

下面我们在原图像上用鼠标拖动出一个矩形框,返回该矩形框的起始坐标、长度和宽度,语句如下

i=imread('qb.jpg'); [A,rect]=imcrop(i) 截取部分如下图所示:

- 30 -

返回的值为 rect =

41.0000 7.0000 75.0000 75.0000 我们将返回的rect值带入到以下语句中: i=imread('qb.jpg'); j=imcrop(i,[41 7 75 75]); imshow(i),title(1) figure,imshow(j),title(2)

可得图像,该图像与用鼠标截取的图像完全相同。

- 31 -

- 32 -

第四章 结论和展望

本论文采用了MATLAB作为工具,以最近邻插法、双线性插值法和双三次插值法三种常用数字图像插值算法为基础,实现了数字图像的比例缩放、旋转和剪取一系列几何变换。通过研究可以发现,插值算法的选取直接影响到数字图像在经过几何变换之后的质量。最近邻插法质量最差,但是算法简单,速度快;双线性插值法质量好,但是需要较大的计算量才能完成;双线性插值法无论在质量上还是速度上,都介于两者之间。插值技术的提高是以数学方法的改进和提高为前提的。运用到现实中,还应结合硬件处理速度选择合适的算法,硬件处理速度的提高也是实现复杂算法的前提。随着数学的发展和计算机硬件水平的提高,将会有更优秀的插值算法运用到实际当中,数字图像几何变换的质量和速度将得到很大程度上的提高。

通过本次毕业设计,我学到了很多东西。在这个过程中,也遇到了各种各样的困难,但通过老师指导和自己的努力都得到了解决,同时少走了很多弯路,使自己的能力得到很大程度的提升。当然也存在很多的不足,本文只是利用MATLAB图像处理工具完成,并未加入自己创新的成份,这是今后有待提高的。

- 33 -

- 34 -

参考文献

[1] 章毓晋.图像工程上册——图像处理和分析[M].北京:清华大学出版社,1999.3

[2] 章毓晋.图像工程下册——图像理解与计算机视觉[M].北京:清华大学出版社,2000.8 [3] 张兆礼,赵春晖,梅晓丹.现代图像处理技术[M].北京:人民邮电出版社,2001.1l [4] 崔屹.图像处理与分析——数学形态学方法及应用[M].北京:科学出版社,2000.4 [5] 贾云得.机器视觉[M].北京:科学出版社,2000.4

[6] 陈桂明,张明照,戚红雨.应用MATLAB语言处理数字信号与数字图像[M].北京:科学出版社,2000.1 [7] 何斌,马大予,于运坚,朱红莲.VisualC++数字 图像处理[M].北京:人民邮电出版社,2001.4

- 35 -

- 36 -

致谢

在三个月的时间里我做完了毕业设计。在这次毕业设计中,我要感谢所有帮助支持我的老师和同学。

本课题的设计应用且涉及到的知识较多、范围较宽。在董增寿老师的帮助和支持下我的课题得以顺利进行并圆满完成,在此对董老师表示衷心的感谢。在本次设计中董老师对待知识严谨的态度,对工作兢兢业业、一丝不苟的精神都深深的感染了我们,对即将踏上社会的我们上了最精彩的一堂预备课。

感谢学院为我们提供良好的设计环境,也感谢实验室老师对我们的批评和指正。 还要感谢帮助我的同学。能够顺利完成这次毕业设计,除了老师的指导,还离不开同组同学的共同探讨以及大家的团结协作精神。

大学四年,学校为我们提供了良好的生活和学习环境,老师在学习和思想上谆谆教导,同学在生活和学习上无私帮助,各大出版社的参考资料,这都是这次毕业设计得以顺利完成的必要条件。再次感谢对在这次毕业设计的过程中对我帮助过的所有的老师和同学。

- 37 -

本文来源:https://www.bwwdw.com/article/lw0w.html

Top