图像几何变换程序设计.docx

上传人:b****6 文档编号:3727566 上传时间:2022-11-24 格式:DOCX 页数:18 大小:1.21MB
下载 相关 举报
图像几何变换程序设计.docx_第1页
第1页 / 共18页
图像几何变换程序设计.docx_第2页
第2页 / 共18页
图像几何变换程序设计.docx_第3页
第3页 / 共18页
图像几何变换程序设计.docx_第4页
第4页 / 共18页
图像几何变换程序设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

图像几何变换程序设计.docx

《图像几何变换程序设计.docx》由会员分享,可在线阅读,更多相关《图像几何变换程序设计.docx(18页珍藏版)》请在冰豆网上搜索。

图像几何变换程序设计.docx

图像几何变换程序设计

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

 

2012年秋季学期

 

图像处理综合训练

 

题目:

图像几何变换程序设计

专业班级:

姓名:

学号:

指导教师:

成绩:

 

目录

摘要1

一、前言2

二、算法分析与描述3

2.1图象平移3

2.2图象比例变换3

2.3图象水平、垂直翻转4

2.4图象旋转4

三、详细设计过程6

3.1算法分析6

3.2设计内容7

3.3流程图7

四、调试过程中出现的问题及相应解决办法9

五、程序运行截图及其说明10

六、简单操作手册13

设计总结17

参考资料18

致谢19

附录20

摘要

图形图像处理主要是通过计算机对图像进行处理,从而达到预期的那种效果的技术。

因为处理离不开计算机,所以又称计算机图像处理。

图像几何变换是计算机图像处理中很重要的一部分,主要包括图像的水平、垂直翻转,图像旋转变换,图像比例变换。

在图像处理中,可以通过MATLAB来实现图像的几何变换,此软件的语法结构简单,并且具有极强的数值计算、图形文字处理、数据分析、图形绘制及图像处理等功能。

关键字:

图像的几何变换;MATLAB;图像的旋转;垂直、水平翻转;比例变换

一、前言

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是一种既可交互使用又能解释执行的计算机编程语言。

所谓交互使用,是指用户输入一条语句后立即就能得到该语句的计算结果,而无需像C语言那样首先编写源程序,然后对之进行编译,连接,才能最终形成可执行文件。

MATLAB语言可以用直观的数学表达式来描述问题,从而避开繁琐的底层编程,因此可大大提高工作效率。

图像用数字任意描述像素点、强度和颜色。

描述信息文件存储量较大,所描述对象在缩放过程中会损失细节或产生锯齿。

在显示方面它是将对象以一定的分辨率分辨以后将每个点的色彩信息以数字化方式呈现,可直接快速在屏幕上显示。

分辨率和灰度是影响显示的主要参数。

图像适用于表现含有大量细节(如明暗变化、场景复杂、轮廓色彩丰富)的对象,如:

照片、绘图等,通过图像软件可进行复杂图像的处理以得到更清晰的图像或产生特殊效果。

图像几何变换主要是指数字图像的几何变换(或称为空间变换),即图像中点与点之间的空间映射关系。

是通过数学建模实现对数字图象进行几何变换的处理。

可以让我们从不同角度去观察或欣赏图片,增加对个方位图像的理解。

二、算法分析与描述

2.1图象平移

图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。

平移后的图像上的每一点都可以在原图像中找到

利用齐次坐标,变换前后图像上的点P0(x0,y0)和P(x,y)之间的关系可以用如下的矩阵变换表示为:

2.2图象比例变换

图象比例变换是指图象缩小。

图象缩小是通过减少像素个数来实现的,根据所期望缩小的尺寸数据,从原图象中选择合适的像素点,使图象缩小之后可以尽量保持原有图像的概貌特征不丢失。

以图象缩小为例设原图像大小为M*N,缩小为k1M*k2N,(k1<1,k2<1)。

算法步骤如下:

(1)设原图为F(i,j),i=1,2,…,M;j=1,2,…,N.压缩后图像是G(x,y),x=1,2,…,k1M,y=1,2,…,k2N.其中,c1=1/k1c2=1/k2 为采样间隔

(2)G(x,y)=F(c1*x,c2*y)

2.3图象水平、垂直翻转

图像的水平翻转操作是以原图像的垂直中轴线为中心,将图像分为左右两部分对称变换;图像的垂直镜像操作是以原图的水平中轴线为中心,将图像分为上限两部分对称变换。

翻转后的高和宽都不变。

设图像高度为Height,宽度为Width,原图中的(

)经过水平翻转后坐标将变为(Width-

)即

同样,(

)经过垂直翻转后坐标将变成为(

,Width-

),即

2.4图象旋转

图像的旋转是指以图像中的某一点为原点以逆时针或顺时针方向旋转一定的角度。

通常是围绕图像的起始点以逆时针旋转。

这样,就可以利用解析几何的方法来实现图像的旋转。

直角坐标系中的图像旋转(

图像旋转计算公式如下:

图2.1图像旋转示意图

其中,

是原图像

中的像素的坐标;

是对应像素点

经过旋转变换后图像

的像素的像素点坐标。

图像旋转以后会出现空穴的现象,可以用插值法来解决。

所谓插值法就是在判断为空穴的位置上填充一个估计的值。

因为估计值的选择不同,得到的方法的复杂度和效果也不同,在这里用的是均值插值法。

均值插值法是将空穴像素周围像素的均值作为填充值填在该空穴点中,如:

其空穴像素点为

的周围(上、下、左、右)的像素值为

,则该点的像素值

,即

三、详细设计过程

3.1算法分析

本课程设计通过菜单和按钮的方式来对图片进行各种几何变换,操作简单,处理结果一目了然。

系统具备良好的图形用户界面,通过按钮或菜单进行操作控制,能让用户方便地选择不同的图像文件进行处理,并显示图像处理的结果。

利用菜单按钮及简介的版块设计实现各功能的处理结果与操作方式。

介绍图片处理按钮菜单的功能。

主界面设计如下:

(1)主界面

3.2设计内容

图像的几何变换:

平移,缩放,翻转,旋转。

1平移:

平移是日常生活中最普遍的运动方式,而图像的平移是几何变换这中最简单的变换之一。

菜单中使用translate函数和movesult对图像进行平移,通过改变程序中的参数可以控制平移的方式,视需求而定。

2翻转:

实现水平,垂直,翻转处理,双精度取点后调用函数实现。

3缩放与旋转变换:

利用'nearest''bilinear''bicubic'三个函数实现图片的三种缩放与旋转处理。

利用imresize和imrotate两个函数实现缩放及旋转功能。

3.3流程图

(1)翻转

(2)翻转流程图

 

 

(2)缩放与旋转

图(3)缩放与旋转

四、调试过程中出现的问题及相应解决办法

对matlab函数调用不够熟悉,导致在设计的时候陷入很多误区。

比如,平移变换的方法二总是指示错误,后来几经调试,才排除错误,得到正确的结果。

还有提高部分的努力也是一样。

本次课程设计主要是运用了上课所学的知识与Matlab的强大函数调用功能,不足之处甚多,但是本次的设计中我们也有少许的创新之处,比如,Matlab参数录入子程序就是小组自己编写的,花了很多功夫收集资料以及改进。

五、程序运行截图及其说明

(1)未经处理的原图

图(4)原图

(2)图像进行平移变换:

图(5)平移后的结果

(3)水平翻转:

图(6)水平翻转

(4)垂直翻转:

图(7)垂直翻转

(5)旋转

图(8)旋转45度

六、简单操作手册

在matlab中打开kk.fig并运行,在打开的图形界面中单击:

文件--->打开,选中所要处理的图片,打开。

选择所要进行的变换方式,进行变换,

打开图片界面

图(9)操作界面

 

平移效果:

图(10)

 

图(11)

放大、缩小:

图(12)

图(13)双线性内插法放大2倍

水平翻转:

图(14)水平翻转

垂直翻转:

图(15)垂直翻转

旋转:

图(16)

图(17)图像旋转100度(截取部分)

撤销、退出:

“撤销”可以实现图像的还原,“退出”可以退出编辑

图(18)

设计总结

通过这次“基于matlab的数字图像处理”的课程设计,学到了很多很多,最基本的就是重新熟悉了matlab语言,不仅仅只是在matlab编程上面有所提高和对界面设计熟悉,对数字图像处理也有了更深刻的认识。

首先,明白了图像对于matlab而言就是矩阵,灰度图像和彩色图像对应于不同维数的矩阵,分别为二维和三维,其中三维矩阵每一位代表一种颜色。

矩阵可以使实数,也可以使复数,不同的图像矩阵的元素对应于不同的类型,有double,uint8等类型。

由于几乎所有的matlab函数及其工具箱函数都可以使用double作为参数类型,不过由于64bit来表示图像数据存储量特别巨大,所以matlab还支持图像数据的无符号整型存储,所以使用时还要注意输出数据类型的转换。

最后,我们必须要明白理论指导实践,要想实现预期的效果,必须明白它实现的机制和相应的算法,只有通过相应的理论来指导,我们才能有所创新,才能有所突破,而不只是单纯的引用相应的处理函数。

例如对于截图函数,它只能是截取坐标轴内的图像,对坐标轴意外的图像却不能处理,而且对于同时显示在坐标轴上的几张图像,它只能处理最后显示的那张,如果我们通过对它改进,能实现像qq截图那样的功能就很强大了。

不过通过这次的实现,我对图像的模式,几何变换的原理,图像的平移,水平、垂直翻转,缩放以及旋转等原理都有了更清楚的认识,也明白了它们的实现机制。

matlab还有很多很多新功能等待我们去探索。

通过这次的课程设计,我们受益匪浅。

参考资料

[1]郑阿奇,曹戈,赵阳.MATLAB实用教程[M].北京:

电子工业出版社2002年版

[2]张弘.数字图像处理与分析[M].北京:

机械工业出版社2005年版

[3]孙兆林.MATLAB6.X图像处理[M].北京:

清华大学出版社2010年版

 

致谢

通过此次课程设计,在一定程度上提高了我的实际动手能力,同时也培养了我思考问题、解决问题的能力。

对于matlab软件的应用能力也得到了很大的提高,了解到了很多自己有所不足的地方。

虽然只有短短的两周时间,但是这使我认识到了做设计的乐趣,也明白了课程设计对于知识的吸收和要点的理解是非常重要,在两周的时间里,遇到了很多问题,周围同学和老师的帮助起了很大的作用,非常感谢他们,充分体会到了团队合作的重要性。

附录

Matlab程序实现代码

(1)图片的平移

平移

axes(handles.axes2);%定义图像显示位置

I=handles.img;%选定操作图

T=getimage;%获取图像信息

prompt={'输入参数:

'};

defans={'2'};

p=inputdlg(prompt,'input',1,defans);%创建数据输入窗口

p1=str2num(p{1});

J=double(I);%定义为双精度型

H=size(I);%定义尺寸

I_moveresult=zeros(H);%平移后背景变成了黑色的

x_move=p1;y_move=p1;

I_moveresult(x_move+1:

H

(1),y_move+1:

H

(2),1:

H(3))=J(1:

H

(1)-x_move,1:

H

(2)-y_move,1:

H(3));

imshow(mat2gray(I_moveresult));

(2)图片的放大、缩小

缩放

axes(handles.axes2);%定义图像显示位置;

I=handles.img;%选定操作图

T=getimage;%获取图像信息

prompt={'输入参数:

'};

defans={'2'};%定义数据,放大缩小

p=inputdlg(prompt,'input',1,defans);%创建数据输入窗口

p1=str2num(p{1});

f=imresize(I,p1,'nearest');%选用插值方法最近邻法

figure,%新建窗口

imshow(f);%显示结果

(3)图片翻转

水平翻转

axes(handles.axes2);%定义图像显示位置;

A1=handles.img;%选定操作图

A1=double(A1);%定义为双精度型

H=size(A1);%定义尺寸

A3(1:

H

(1),1:

H

(2),1:

H(3))=A1(1:

H

(1),H

(2):

-1:

1,1:

H(3));%水平翻转

imshow(uint8(A3));%显示结果

垂直翻转

axes(handles.axes2);%定义图像显示位置;

A1=handles.img;%选定操作图

A1=double(A1);%定义为双精度型

H=size(A1);%定义尺寸

A2(1:

H

(1),1:

H

(2),1:

H(3))=A1(H

(1):

-1:

1,1:

H

(2),1:

H(3));%垂直翻转

imshow(uint8(A2));%显示结果

(4)图片的旋转

旋转

axes(handles.axes2);%定义图像显示位置;

T=getimage;%获取图像信息

prompt={'旋转角度:

'};

defans={'0'};

p=inputdlg(prompt,'input',1,defans);%创建数据输入窗口

p1=str2num(p{1});%把字符串转换为数值

f=imrotate(handles.img,p1,'nearest');%旋转并定义插值方法

imshow(f);%显示结果

(5)撤销(还原)

axes(handles.axes2);%还原

y=imread(S);

f=imshow(y);

handles.img=y;

guidata(hObject,handles);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1