图像几何变换程序设计图像处理综合训练.docx
- 文档编号:1137826
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:15
- 大小:1.81MB
图像几何变换程序设计图像处理综合训练.docx
《图像几何变换程序设计图像处理综合训练.docx》由会员分享,可在线阅读,更多相关《图像几何变换程序设计图像处理综合训练.docx(15页珍藏版)》请在冰豆网上搜索。
图像几何变换程序设计图像处理综合训练
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
计算机图象处理课程设计
题目:
图像几何变换程序设计
摘要
本次课程设计我的题目是图像几何变换和图像分割程序设计,计算机图像处理的实现主要以数学模型为基础,通过建立合适的算法来实现具体的图像处理,几何变换是最常见的图像处理手段,通过对变形的图像进行几何校正,可以得出准确的图像。
常用的几何变换功能包括图像的平移、图像的旋转、图像的缩放、图像的错切等。
作为数字图像处理的一个重要部分,一般用MATLAB编程工具设计一个完整的应用程序,实现相应的图像几何变换功能。
图像分割是一种非常重要的图像处理技术,它不仅得到了广泛的重视和研究,也在实际中得到了大量的应用。
本文主要介绍了计算机图像处理中的图像分割程序的设计与实现。
关键词:
图像几何变换、平移、旋转、放大缩小
一、前言
图形图像处理的应用领域涉及人类生活和工作的各个方面,它是从60年代以来随计算机的技术和VLSI的发展而产生、发展和不断成熟起来的一个新技术领域,理论上和实际应用上都并取得了巨大的成就。
数字图像处理与模拟图像处理的根本不同在于,它不会因图像的存储、传输或复制等一系列变换操作而导致图像质量的退化,所以图形图像的处理在我们的生活中又很重要的作用。
在对图像的研究和应用中,人们往往只对图像中的某些部分感兴趣。
这些部分通常称为目标或前景,它们一般对应图像中特定的、具体独特性质的区域。
为了辨识和分析目标,需要将它们分别提取出来,在此基础上才有可能对目标进一步利用。
。
二、算法分析与描述
2.1图像几何变换
2.1.1图像的平移变换
图像的平移变换就是将图像中的像素点按照要求的量进行垂直、水平移动。
图像的水平处理,只是改变了原有景物在画面上的位置,而图像的内容不发生变化。
初始坐标为(x0,y0)的点经过平移(tx,ty)(以向右,向下为正方向)后,坐标变为(x1,y1)。
这两点之间的关系是:
x1=x0+tx
y1=y0+ty
使用矩阵的形式来表达如下:
x1y11=x0y01
值得注意的是,一个数字图像(灰度图)是以一个矩阵来描述的,因此,如果不扩大存放处理后的矩阵的大小,则会出现图像的部分内容移出画面的情况。
2.1.2图像的旋转变换
图像的旋转是指以图像中的某一点为原点以逆时针或顺时针方向翻转一定的角度,其翻转公式如下:
x1=x0cosa-y0sina;
y1=-x0sina+y0cosa;
用矩阵表示为:
x1y11=x0y01
其中,(x1,y1)是原图像的像素点的坐标;(x0,y0)是对应像素点经过翻转变换后的图像的像素点的坐标。
我们旋转所在的坐标系和图像显示时对应的Windows屏幕坐标系是不一样的,这里xoy为旋转坐标系,x'o'y'为屏幕坐标系。
实际上我们可以分为三步进行整个旋转变换:
1.将坐标系x'o'y'变成xoy;
2.将该点顺时针旋转a角;
3.将坐标系xoy变回x'o'y'
将上面三步变换进行合成得到三个矩阵的级联矩阵;
(x0,y0)和(x1,y1)都是x‘o’y‘坐标系中的点;
2.1.3图像的放大以及缩小
如果一幅图像要放大k1*k2倍,就是将图像中每个像素复制到k1*k2个像素所构成的子块中,这些子块再按原来的排列顺序进行排列,就可以实现图像的方的方法。
图像缩小的方法跟图像放大的方法雷同。
三、详细设计过程
3.1图像几何变换
3.1.1图像平移:
1.图像平移的基本原理
图像平移是将一副图像中所有的点都按照指定的平移量在水平,垂直方向移动,平移后的图像与源图像相同。
平移后的图像上的每一点都可以在原图像中找到对应的点。
X=X0+X
Y=Y0+Y
利用其次坐标,变换前后图像上的点F0(X0,Y0)和P(X,Y)之间的关系可以用如下的矩阵变换表示为:
X010XX
Y=01YY
10011
图像放缩的基本理论
图像比例缩放是指将给定的图像在X轴方向按比例缩放FX倍,在Y轴方向上按比例缩放FY倍从而获得一副新的图像。
比例缩放前后两点F0(X0,Y0),P(X,Y)之间的关系用矩形形式可以表示为:
XFX00X0X=FxX0
Y=0Fy0y0
10001Y=FyY0
三个入口参数:
原图像1,
缩放倍数r,插值方式mode
最近邻 双线性
插值 插值
双三次插值
3.1.2图像的旋转
3.1.3图像的放大
放大倍数为1.25倍
D=imread('wa.jpg');
F=imresize(D,1.25);
figure,imshow(F),title('放大后的图像');
截图:
四、调试过程中出现的问题及相应解决办法
通过MATLAB界面运行程序进行图像几何变换时,图像有可能变换不了。
可能是所需要变换的图片为灰度图像或者二值图像。
需要先将RGB图像转换一下。
五、程序运行截图及其说明
图像几何变换
图像平移:
图5.1图象低通滤波
图像的旋转
图5.2图像的旋转
图像的放大
图5.3图像的放大
图像的镜像
图5.4图像的水平镜像
图5.5图像的垂直镜像
6、简单操作手册
打开MATLAB软件,单击File下拉菜单。
选择NEW或者Open创建一个新的GUI或者打开一个已有的GUI(后缀名为.fig的文件)。
然后根据提示进行操作。
打开已经创建好的GUI程序。
然后进行所需要的操作。
比如我需要进行图像的水平翻转
设计总结
我的综合训练题目是图像几何变换程序设计,在这两周的图形图像处理综合训练过程当中,收获很多。
在平常的课程学习过程当中,书上的知识感觉不是太难,只要自己认真听讲,下课后再仔细回顾回顾就能很快掌握,自以为什么都明白了,但在课设过程中却发现,要将知识实际运用起来却是十分困难的,所以在今后的学习过程中我一定要加强实际运用的能力训练,更好的将学来的知识转化到解决实际问题之中。
通过此次综合训练,使我计算机图像处理的工程及其实现有了更深的理解,获得了很多宝贵的经验。
特别是怎么样通过理论与实践相结合,把理论知识应用到我们做的程序实践过程上去。
学会了很多关于计算机图像处理的经验和技巧,更重要的是,知道应如何在困难重重中一步一步细心的发现问题,解决问题,并在遇到问题时同学之间相互帮助中,深刻体会到了团体合作精神的重要性。
参考文献
[1]朱虹.计算机图象处理基础[M].科学出版社,2005
[2]RC.Gonzalez,RE.Woods著,阮秋琦,阮宇智等译.计算机图象处理(第2版).北京:
电子工业出版社,2003
[3]K.R.Castleman.计算机图象处理.北京:
电子工业出版社,2002
[4]章毓晋.图像处理与分析-图像工程(上册),清华大学,2001
[5]何斌等编著.VisualC++计算机图象处理.人民邮电出版社,2002
[6]张宏林编著.VisualC++计算机图象模式识别技术及工程实践.人民邮电出版社,2003.
[7]黄维通.VisualC++面向对象与可视化程序设计.清华大学出版社,2003
[8]RC.Gonzalez,RE.Woods,SL.Eddins著,阮秋琦,阮宇智等译.计算机图象处理(MATLAB版).北京:
电子工业出版社,2005
致谢
首先我要感谢我的老师,在设计过程中给了我很多宝贵意见和丰富的资料并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能迅速掌握新的技术。
同时感谢我的同学,在设计中遇到问题时和我积极地讨论,并提出了很多建设性的意见,没有他们的帮助,只靠我自己一定很难完成这次任务。
在今后的学习和工作中,我一定要发扬团队精神,齐心协力完成相应的设计工作。
附录
实现图像平移的文件的代码:
figure,imshow(F,[]);title('平移后图形');
figure,imshow(D);
functionpushbutton6_Callback(hObject,eventdata,handles)
globalT
axes(handles.axes2);%定义图像显示位置
I=handles.img;%选定操作图
T=getimage;%获取图像信息
prompt={'输入参数:
'};
defans={'0'};
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));
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
globalT
axes(handles.axes2);%定义图像显示位置;
I=handles.img;%选定操作图
T=getimage;%获取图像信息
prompt={'输入参数:
'};
defans={'0'};%定义数据放大缩小
p=inputdlg(prompt,'input',1,defans);%创建数据输入窗口
p1=str2num(p{1});
f=imresize(I,p1,'nearest');%选用插值方法最近邻法
figure,%新建窗口
imshow(f);%显示结果
title('处理后');
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
End.
实现图像旋转的文件的代码:
functionpushbutton8_Callback(hObject,eventdata,handles)
globalT
axes(handles.axes2);%定义图像显示位置;
T=getimage;%获取图像信息
prompt={'旋转角度:
'};
defans={'0'};
p=inputdlg(prompt,'input',1,d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 几何 变换 程序设计 处理 综合 训练
![提示](https://static.bdocx.com/images/bang_tan.gif)