基于matlab的图像处理技术及用户界面设计.docx
- 文档编号:6570565
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:17
- 大小:1.95MB
基于matlab的图像处理技术及用户界面设计.docx
《基于matlab的图像处理技术及用户界面设计.docx》由会员分享,可在线阅读,更多相关《基于matlab的图像处理技术及用户界面设计.docx(17页珍藏版)》请在冰豆网上搜索。
基于matlab的图像处理技术及用户界面设计
学校
基于matlab的图像处理技术及用户界面设计
姓名x
学号x
课程数字图像处理
专业年级xx
指导教师xxxx
2011年1月5日
基于matlab的图像处理技术及用户界面设计
学生:
x
指导老师:
x
(学校系,地名邮编)
1.前言
数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。
MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。
它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。
根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。
MATLAB中集成了功能强大的图像处理工具箱。
由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强、再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。
2.设计分析
2.1设计目的
综合运用MATLAB工具箱实现图像处理的GUI程序设计。
2.2设计要求
(1)学习各种简单的图像处理算法,实现对图像的基本操作,如图像的打开,关闭,保存;数字图像的基本处理,如图像放大、缩小、旋转、位移、滤波、锐化等。
(2)菜单栏包括:
文件,几何变换,灰度处理(点运算),图像增强等项。
(3)主界面部分包含两个图像显示,和部分按钮及需要输入的参数。
由于界面大小有限,部分功能留在菜单栏中。
(4)描述所设计的系统功能和所用的算法,对系统的功能和算法进行详细的论述。
(5)编写程序代码和调试程序,设计一个基于MATLAB的数字图像处理系统。
2.3总体设计分析
设计图形的初始界面如图2.1所示:
图2.1软件界面
本软件在菜单栏添加了四个菜单选项,分别实现文件操作、几何变换、灰度处理及图像增强等多种功能。
头部是用四个静态框组成。
用一个axes控件显示原始图像,另一个axes控件显示每一步处理后的图像。
对于坐标是用来对比缩放图像时查看其效果的。
3.实现方法
具体设计主要有四个部分组成,分别是文件、几何变换、灰度处理及图像增强,然后每一部分又有不同的选项,文件中包括:
打开、重载、RGB转换为灰度、保存处理结果、关闭及退出;几何变换中包括:
垂直镜像、水平镜像、图像缩放及图像旋转;灰度处理包括:
反色、直方图均衡、全局线性变换及分段线性变换;图像增强中有:
加噪声、平滑、锐化及伪彩色增强。
其中加噪声又有两种,椒盐噪声和高斯噪声;平滑中包括邻域平均法和中值平均法;锐化分为梯度锐化和拉普拉斯锐化;伪彩色增强包括亮度切割法和灰度级彩色变换法。
下面就其程序及效果做详细说明。
3.1文件打开
程序说明:
为了让使用者方便的使用,所以在设计的时候,通过对话框的形式来选择文件,选择uigetfile函数来实现,uigetfile函数显示一个打开文件对话框,该对话框自动列出当前路径下的目录和文件,由于这个GUI程序的操作对象是图像文件,所以设置这里的缺省后缀名为“.jpg”。
Uigetfile函数的调用格式为[name,path]=uigetfile(…),在按下对话框中的执行按钮“打开”后,返回选择的文件名和路径,分别保存到“name”和“path”中。
如果按下取消按钮或是发生错误,则返回值是0。
根据返回值的情况,如果是0,则弹出提示错误的对话框,否则,通过imread函数读出图像数据,把图像数据赋值给全局变量I。
运行效果:
图3.1文件打开图
3.2文件重载
其实文件重载和文件打开是相差不大的,基本功能相同。
主要区别是重新载入一张要求处理的图片,相当于给全局变量I符新值。
3.3RGB转换为灰度
程序说明:
由于小软件中有许多功能是针对于灰度图像进行处理的,所以在进行这些操作之前是必须转化成灰度的,转换成灰度也成了必备的功能了。
其实转换非常简单,只需要调用函数rgb2gray(),然后将保存图像的变量放入括号即可。
运行效果:
图3.2真彩转灰度图
3.4文件保存
程序说明:
同样也通过对敌框的形式来保存图像数据,通过uigetfile函数选择文件名和路径,用imwrite函数,把数据I存到指定的文件中。
运行效果:
图3.3文件保存图
3.5关闭
程序说明:
关闭只是对当前的操作进行关闭,把显示的两副图置为空白,并且把程序中的数据I也清空,恢复到打开时的状态。
运行效果:
图3.4点击关闭前图
图3.5点击关闭后的效果图
3.6退出项
退出,顾名思义就是退出整个软件,把所有的窗口及操作都终止。
3.7垂直镜像
运行效果:
图3.6垂直镜像图
3.8水平镜像
运行效果:
图3.6水平镜像图
3.9图像缩放
程序说明:
使用函数imresize来实现对图像的放大或缩小。
插值方法可选用三种方法,最近邻插值,双线性插值,双三次插值。
该函数的调用格式为:
B=imresize(A,m,method)。
其中,参数method用于指定插值的方法,本软件中设置其为“bilinear”,缩放的倍数由用户自己设定。
运行效果:
图3.7放大图
图3.8缩小图
运行效果:
图3.9旋转45度图
运行效果:
图3.11反色效果图
3.10直方图均衡
运行效果:
图3.12直方图均衡效果图
3.11全局线性变换
运行效果
3.12分段线性变换
运行效果
3.13添加噪声
经常用到的噪声有二种,高斯噪声,椒盐噪声,可以通过以下两个函数来实现:
y=imnoise(handles.img,'gaussian',p);%高斯噪声
y=imnoise(x,'salt&pepper',p);%椒盐噪声
p的参数设定默认值为0.02,原图加入高斯噪声和椒盐噪声后结果分别如图3.13和图3.14所示。
图3.13加椒盐噪声图
图3.14加高斯噪声图
3.13平滑处理选项
将图像平滑可以用邻域平均法和中值滤波法。
领域平均法的思想是用像素及其指定邻域内像素的平均值或加权平均值作为该像素的新值,以便去除突变的像素点,从而滤除一定的噪声。
常用的模板是全1的矩阵,然后求平均。
邻域平均法的主要优点是算法简单,但它在降低噪声的同时使图像产生模糊,特别是在边缘和细节处。
模板尺寸越大,则图像模糊程度越大。
由于邻域平均法去邻域平均值,因而噪声也被平均到平滑图像中,它对椒盐噪声的平滑效果并不理想。
中值滤波法是一种非线性滤波,它能在滤除噪声的同时很好地保持图像边缘。
中值滤波的原理很简单,它把以某像素为中心的小窗口内的所有像素的灰度按从小到大的顺序,取排序结果的中间值作为该像素的灰度值。
为方便操作,中值滤波通常取含奇数个像素的窗口。
可以用函数来使图像平滑即y=medfilt2(I,[5,5]);其中y表示处理后的图像,I表示原图像。
3.13锐化处理
图像的锐化的目的是使模糊的图像变清晰,增强图象边缘等细节。
为了能增强任何方向的边缘,将图像锐化的方法有梯度算子和拉普拉斯算子。
而梯度算子包括水平垂直差分法和Robert交叉算子,其中Robert交叉算子使用2*2邻域内的两对角像素来计算两个偏导数,是一阶微分。
拉普拉斯算子是一种各向同性的二阶微分算子,其常用的模板有[0-10;-14-1;0-10]、[-1-1-1;-18-1;-1-1-1]、[1-21;-24-2;1-21]等。
对图像进行锐化可以用的函数为:
梯度算子:
y=edge(I,'roberts');其中y表示处理后的图像,I表示原图像,
拉普拉斯算子:
h=[0-10;-14-1;0-10];y=conv2(i,h,'same');x=i-y;
其中x表示处理后的图像,h是拉普拉斯算子的模板,I表示原图像。
3.14伪彩色增强
伪彩色增强是把黑白图像的各不同灰度级按照线性或非线性的映射函数变换成不同的彩色,得到一幅彩色图像的技术。
它使原图像细节更易辨认,目标更容易识别。
伪彩色增强的方法主要有以下三种。
密度分割法
灰度级一彩色变换
频率域伪彩色增强
密度分割法或称强度分割法是伪彩色增强中一种最简单的方法,如图3.4.4所示。
它是把黑白图像的灰度级从0(黑)到M0(白)分成N个区间Ii(i=1,2,…,N),给每个区间Ii指定一种彩色Ci,这样,便可以把一幅灰度图像变成一幅伪彩色图像。
此法比较直观简单,缺点是变换出的彩色数目有限。
4.调试以及分析
在程序设计过程中遇到了许多问题例如一个函数只能对灰度图像处理,不能对RGB图像处理,那么如何才能对RGB图像处理呢?
了解MATLAB和数字图像处理的人都知道用到的很多函数是针对二维数据的,而RGB图像的数据是一个三维矩阵,所以处理要与灰度图像不同,在开始的时候,我认为应该找一个能够应用于三维矩阵的函数,结果却没找到,后来想到可以把三维数据进行降维处理,同样使用二维的函数,只要是同样处理三次。
比如,彩色图像的滤波处理,直方图均衡等。
再例如同一个操作对灰度图像可以使用,当用户选择的是彩色图像时,该操作就会出错?
这是由于设计程序时,本身程序是有针对性的,有些程序只能对灰度图像有效,有些对彩色图像有效,但是用户并不清楚这些,所以在设计的过程中就要考虑全面,要分开设计。
在本次课程设计中,我均对每个程序的开始时,用ifisrgb(x)进行判断。
等等很多问题都要自己去查阅资料,分析问题并解决问题。
5.结论
通过本次课程设计,对MATLABGUI设计流程有了比较深刻的了解与体会,同时也了解了一般软件设计的过程。
在设计过程中遇到了很多的问题,通过解决这些问题,使用软件的能力得到了很大的提高。
MATLAB具有非常强大的二维和三维绘图功能,各种科学运算结果的可视化非常专业。
计算的可视化可以将杂乱的数据通过图形表示从中观察出其内在的关系。
MATLAB可以使用不同的线形、彩色、数据点标记等来修饰图像,也可以设计出图形用户界面,很方便。
参考文献
1.关于数字图像处理的中外文文献资料如:
数字图像处理阮秋琦阮宇智等译电子工业出版社
2.程序编译相关书籍
3.matlab在图像处理中的应用于广州杨秀娟广州海洋大学
4.基于matlab的图像处理的研究邓洪涛赵庆展石河子大学信息科学与技术学院
5.基于matlab的图像处理方法及分析刘翠艳天津工业大学
6基于matlab的图像处理系统的设计与实现张红梅张智高华志强内蒙古名族大学
7.利用matlab的图形用户界面设计交互式演示实验孙福玉赤峰学院
8.在MATLAB图形用户界面设计中使用ACTIVE控件李亚军赵刚王华等四川大学电子信息学院
致谢
在此报告撰写过程中,要特别感谢导师高艳霞教授的指导与督促,没有高艳霞老师的帮助与指导就没有这么完美的系统。
求学历程是艰苦的,但又是快乐的。
尤其在碰到问题时,然后去寻找方法解决的过程,可以让我学到好多东西,包括知识与习惯。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 图像 处理 技术 用户界面 设计