图像的几何变换及其matlab实现.docx

上传人:公**** 文档编号:560274212 上传时间:2023-11-22 格式:DOCX 页数:12 大小:408.89KB
返回 下载 相关 举报
图像的几何变换及其matlab实现.docx_第1页
第1页 / 共12页
图像的几何变换及其matlab实现.docx_第2页
第2页 / 共12页
图像的几何变换及其matlab实现.docx_第3页
第3页 / 共12页
图像的几何变换及其matlab实现.docx_第4页
第4页 / 共12页
图像的几何变换及其matlab实现.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《图像的几何变换及其matlab实现.docx》由会员分享,可在线阅读,更多相关《图像的几何变换及其matlab实现.docx(12页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理论文-图像的几何变换及其MATLAB实现学 院: 理 学 院 专 业:信息与计算科学 班 级: 信计1012 姓 名: 学 号: 任课老师: 集美大学理学院二一三年十一月二十八日目录摘要 1一、何谓数字图像处理1二、数字图像几何变换简介1三、MATLAB图像处理工具介绍1四、图像几何变换的MATLAB实现24.1图像几何变换的概述24.2 图像的平移变换24.3 图像的比例缩放44.4 图像的镜像变换54.5 图像的旋转变换74.6 图像的剪取8五、图像几何变换的应用以及技术局限 10参考文献 10摘要:图像变换就是把图像从空间域转换到变换域(如频率域)的过程。图像变换可以使人们从

2、另一角度来分析图像信号的特性,利用变换域中特有的性质,使图像处理过程更加简单、有效。图像变换是许多图像处理与分析技术的基础,而几何变换是图像变换中最基础也是应用最广泛的技术之一,本文基于MATLAB的图像处理工具,通过改变图像像素的空间位置或估算新空间位置上的像素值,从而实现图像的平移、缩放、旋转、镜像变换、图像插值等几何变换。关键字:图像变换、几何变换、MATLAB一、何谓数字图像处理数字图像处理(Digital Image Processing),就是利用数字计算机或则其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三

3、维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。二、数字图像几何变换简介今天数字技术时代,我们身边接触到很多的数字图像,而对数字图像的处理往往会遇到需要对图像进行几何变换的一些问题。图像几何变换是图像显示技术中的一个重要组成部分。在图像几何变换中主要包括图像的缩放、旋转、移动、剪取等内容。无论照片、图画、书报、还是医学X光和卫星遥感图像等领域都会用到这些技术。通过图像的几何变换技术,可以显著

4、提高图像处理效率和质量,为更进一步的图像处理奠定基础。三、MATLAB图像处理工具介绍MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件。它绝大多数的运算都是通过矩阵这一形式进行的,这一特点也就决定了MATLAB在处理数字图像上的独特优势。在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,二维图像进行均匀采样,就可以得到一幅离散化成MN样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。我们可以应用

5、MATLAB的图像处理工具包实现图像平移、缩放和旋转等几何变换。图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。 MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可实现图像的几何变换。四、图像几何变换的MATLAB实现4.1、图像几何变换的概述图像几何变换的实质是改变像素的空间位置或估算新空间位置上的像素值。图像几何变换的一般表达式: 其中,为变换后图像像素的笛卡尔坐标,

6、为原始图像中像素的笛卡尔坐标。这样就得到了原始图像与变换后图像的像素的对应关系。如果则有即变换后图像仅仅是原图像的简单拷贝。4.2、图像的平移变换图像平移就是将图像中所有的点都按照指定的平移量水平、垂直移动。设(x0,y0)为原图像上的一点,图像水平平移量为tx,垂直平移量为ty,则平移后点(x0,y0)坐标将变为(x1,y1)。显然(x0,y0)和(x1,y1)的关系如下:用矩阵表示如下:对该矩阵求逆,可以得到逆变换: 即这样,平移后的图像上的每一点都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应原图中的像素(-tx,-ty)。如果tx或ty大于

7、0,则(- tx,- ty)不在原图中。对于不在原图中的点,可以直接将它的像素值统一设置为0或则255(对于灰度图就是黑色或白色)。同样,若有点不在原图中,也就说明原图中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|tx |,高度扩大| ty |。Matlab实现J=imread(E:image3.jpg); figure; subplot(1,3,1); imshow(J); title(原图); s=translate(strel(1),50,-50); J1=imdilate(J,s);subplot(1,3,2);imshow(J1);title(左下方

8、平移);s=translate(strel(1),50,50); J2=imdilate(J,s);subplot(1,3,3);imshow(J2);title(右下方平移);运行结果:4.3、图像的比例缩放图像比例缩放是指将给定的图像在轴方向按比例缩放倍,在轴按比例缩放倍,从而获得一幅新的图像。如果,即在轴方向和轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。设原图像中的点比例缩放后,在新图像中的对应点为,则比例缩放前后两点、之间的关系用矩阵形式可以表示为:其中, 和分别为和坐标的缩放因子,其大于1表示放大,小于

9、1表示缩小。MATLAB实现:I=imread(E:image3.jpg);figure;imshow(I);title(原图);J1=imresize(I,0.5,nearest); figure;imshow(J1);title(缩小图);J2=imresize(I,2,nearest);figure;imshow(J2);title(放大图);运行结果:4.4、图像的镜像变换图像的镜像变换分为两种:一种是水平镜像,另外一种是垂直镜像。图像的水平镜像操作是将图像的左半部分和右半部分以图像垂直中轴线为中心镜像进行对换;图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心镜像进行

10、对换。设图像高度为lHeight,宽度为lWidth,原图中(x0,y0)经过水平镜像后坐标将变为(lWidth-x0,y0),其矩阵表达式为:逆运算矩阵表达式为: 即同样,(x0,y0)经过垂直镜像后坐标将变为(x0,lHeight-y0),其矩阵表达式为:逆运算矩阵表达式为: 即MATLAB实现:I=imread(E:MAN.tif);figure;subplot(1,3,1);imshow(I);title(原图);tform1=maketform(affine,-1 0 0;0 1 0;1 0 1);J1=imtransform(I,tform1,nearest); subplot(1

11、,3,2);imshow(J1);title(水平镜像);tform2=maketform(affine,1 0 0;0 -1 0;0 1 1);J2=imtransform(I,tform2,nearest); subplot(1,3,3);imshow(J2);title(垂直镜像);运行结果:4.5、图像的旋转一般图像的旋转是以图像的中心为原点,旋转一定的角度。旋转后,图像的大小一般会改变。和图像平移一样,既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。可以推导一下旋转运算的变换公式。如下图所示,点(x0,y0)经过旋转度后坐标变成(x1,y1)。在旋转前:旋转后:

12、写成矩阵表达式为:其逆运算如下:MATLAB实现:I=imread(E:WOMAN.jpg);figure;subplot(1,2,1);imshow(I);title(原图);M,N=size(I);ang=30;J=I; for i=1:M for j=1:N x=floor(i-M/2)*cos(ang*pi/180)-(j-N/2)*(-sin(ang*pi/180)+M/2); y=floor(j-N/2)*cos(ang*pi/180)+(i-M/2)*(-sin(ang*pi/180)+N/2); if(xM)&(y0)&(y0) J(i,j)=I(x,y); else J(i,

13、j)=0; end endendsubplot(1,2,2);imshow(J);title(图像旋转);运行结果:4.6、图像的剪取有时候我们为了减少图像所占存储空间,舍弃图像的无用部分,只保留感兴趣的部分,则需要用到图像的剪取。对一幅图像进行剪取操作前,首先初始化该图像,这样图像上每个点,就对应了一个二维坐标,即。首先,我们先取二维坐标系上的一点,这点就作为要截取的矩形的左上角的起始坐标。然后我们定义一两个常量、,其中,代表矩形的长素,代表矩形的宽度,然后舍弃掉在矩形外的点,这样,在整个坐标系上,由、和四个点所围成的矩形部分便被保留下来。MATLAB实现:i=imread(E:WOMAN.jpg);j=imcrop(i,0 0 100 100); %从坐标(0,0)开始,从原图上剪取一个长度100,宽度100的矩形部分subplot(1,2,1);imshow(i);title(原图);subplot(1,2,2);imshow(j);title(剪取后);运行结果:五、图像几何变换的应用以及技术局限图像的放大、缩小、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号