基于MATLAB数字图像处理的实现和仿真.docx

上传人:b****2 文档编号:503889 上传时间:2022-10-10 格式:DOCX 页数:51 大小:1.75MB
下载 相关 举报
基于MATLAB数字图像处理的实现和仿真.docx_第1页
第1页 / 共51页
基于MATLAB数字图像处理的实现和仿真.docx_第2页
第2页 / 共51页
基于MATLAB数字图像处理的实现和仿真.docx_第3页
第3页 / 共51页
基于MATLAB数字图像处理的实现和仿真.docx_第4页
第4页 / 共51页
基于MATLAB数字图像处理的实现和仿真.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

基于MATLAB数字图像处理的实现和仿真.docx

《基于MATLAB数字图像处理的实现和仿真.docx》由会员分享,可在线阅读,更多相关《基于MATLAB数字图像处理的实现和仿真.docx(51页珍藏版)》请在冰豆网上搜索。

基于MATLAB数字图像处理的实现和仿真.docx

基于MATLAB数字图像处理的实现和仿真

通信专业课程设计一

太原科技大学

课程设计(论文)

 

设计(论文)题目:

基于MATLAB数字图像处理的实现和仿真

 

2010年12月31日

 

太原科技大学课程设计(论文)任务书

学院(直属系):

华科学院电子信息工程系时间:

2010年12月17日

学生姓名

指导教师

设计(论文)题目

基于MATLAB数字图像处理的实现和仿真

主要研

究内容

学习MATLABGUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop。

按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。

然后按照拟定的功能要求进行程序设计和调试。

研究方法

主要运用MATLAB工具箱对图像进行处理和分析,通过编写程序实现对数字图像的处理。

主要技术指标(或研究目标)

综合运用MATLAB工具箱实现图像处理的GUI程序设计。

教研室

意见

 

教研室主任(专业负责人)签字:

年月日

 

目录

摘要II

第1章绪论1

第2章数字图像处理系统设计2

2.1设计概括2

2.2文件3

2.2.1打开3

2.2.2保存3

2.2.3退出3

2.3编辑3

2.3.1灰度3

2.3.2亮度5

2.3.3截图7

2.3.4缩放7

2.4旋转9

2.4.1上下翻转9

2.4.2左右翻转10

2.4.3任意角度翻转11

2.5噪声12

2.6滤波13

2.6.1中值滤波13

2.6.2自适应滤波13

2.6.3平滑滤波14

2.7直方图统计15

2.8频谱分析16

2.8.1、频谱图16

2.8.2通过高通滤波器17

2.8.3通过低通滤波器18

2.9灰度图像处理19

2.9.1二值图像19

2.9.2创建索引图像20

2.10颜色模型转换21

2.11操作界面设计22

第3章程序调试及结果分析23

总结24

参考文献25

附录26

基于MATLAB数字图像处理的实现和仿真

摘要

数字图像处理(DigitalImageProcessing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。

在数字图像处理过程中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。

MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。

它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。

根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。

本文利用MATLAB图像处理工具箱,根据需求进行程序的功能分析和界面设计,实现数字图像的灰度处理、亮度处理、截图、缩放、旋转、噪声、滤波、直方图统计、频谱分析、颜色模型转换等。

关键词:

数字图像处理,MATLAB

第1章绪论

数字图像处理,即用计算机对图像进行处理。

与人类对视觉机理研究的历史相比,它是一门相对年轻的学科。

但在其短短的历史中,它却以程度不同的成功被广泛应用于几乎所有与图像有关的领域口数字图像处理技术在20多年的时间里,迅速地发展成为一门独立的有强大生命力的学科。

数字图像处理的手段有光学方法和电子学(数字)方法。

前者已经有很长的一发展历史,从简单的光学滤波到现在的激光全息技术。

光学处理理论已经日趋完善,而且处理速度快,信息容量大,分辨率高,处理经济。

但是光学处理图像精度不够高,稳定性能差,操作不方便。

最早的图像处理是上世纪六七十年代,随着电子技术和计算机技术的不断提高和普及,数字图像处理进入高速发展时期。

数字图像处理就是利用数字计算机或者其它数字硬件,对从图像信息转换而得的电信号进行某些数学运算,以提高图像的实用性。

例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等等。

数字图像处理技术处理精度比较高,而且还可以通过改进处理软件来优化处理效果。

但是,由于数字图像处理的数据量非常庞大,因此处理速度相对较慢,这就限制了数字图像处理的发展。

随着计算机技术的飞速发展,计算机的运算速度大大提高,这将大大促进数字图像处理技术的发展。

数字图像处理在它短短的发展历史中,迅速发展成为了一门独立的具有强大生命力的学科,它应用于很多领域:

遥感技术、医用图像处理、工业领域中、军事公安、文化艺术等方面。

数字图像处理技术研究内容很多,主要包括以下几个方面:

图像变换、图像编码压缩、图像增强和复原、图像分割、图像描述图像识别等。

数字图像处理具有再现性好、处理精度高、适用面广、灵活性高、成本低等优点。

在图像研究领域中图像特征的研究是一重要的研究方向。

人们观察图像时主要通过观察图像纹理、亮度、几何等关键特征,从而来识别理解图像。

实际上通过图像特征的提取匹配不仅用于图像识别,还可以用于图像分割、配准、拼接等各个方面。

对图像特征的研究已经取得了很多研究成果,随着人们探知世界的深入,对图像特征的研究将更加重要。

第2章数字图像处理系统设计

2.1设计概括

由于要实现的功能并不是很多,所以在排版的过程中,把各个功能都安排在目录栏上,整体安排如下图所示:

图2.1设计概括

同时在调节亮度时,虽然可以同对话框的形式输入调节的比例系数,但是这样效果不好了,不容易调节,因此这里考虑用滚动条来调节。

因此,总体的设计界面如下图所示:

图2.2设计界面

2.2文件

2.2.1打开

为了让使用者更方便的使用,所以在设计的时候,通过对话框的形式来选择文件,选择uigetfile函数来实现,uigetfile函数显示一个打开文件对话框,该对话框自动列出当前路径下的目录和文件,由于这个GUI程序的操作对象是图像文件,所以设置这里的缺省后缀名为“.bmp”。

Uigetfile函数的调用格式为[name,path]=yigetfile(…),在按下对话框中的执行按钮“打开”后,返回选择的文件名和路径,分别保存到“name”和“path”中。

如果按下取消按钮或是发生错误,则返回值是0。

根据返回值的情况,如果是0,则弹出提示错误的对话框,否则,通过imread函数读出图像数据,把图像数据赋值给全局变量handles.img。

2.2.2保存

同样也通过对话框的形式来保存图像数据,通过uigetfile函数选择文件名和路径,用getimage(gca)取出坐标2变换后的图像数据保存到变量i,最后用imwrite函数,把数据i存到指定的文件。

2.2.3退出

退出比较简单,程序如下所示:

clc;

closeall;

close(gcf);

2.3编辑

2.3.1灰度

将RGB图像转化成为灰度图像的过程成为图像的灰度化处理。

彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255×255×255)的颜色的变化范围。

而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。

灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。

图像的灰度化处理可用两种方法来实现。

第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。

第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应,以这个亮度值表达图像的灰度值,公式为:

(2-1)

由于RGB图像是三维图像,所以图像数据是一个三维数组,为了显示灰度图像,把三维图像降为二维,可以只取其中的二维数据,实现方法程序为:

y=(handles.img(:

:

1));%当然也可以选择(:

:

2)或(:

:

3)

imshow(y);

但是这样的话,根据程序所选的不同,图像数据也不同,显示也就不一样。

另一种方法就是,运用rgb2gray函数实现彩色图像到灰度图像的转换。

程序为:

y=rgb2gray(handles.img);

imshow(y);

这个程序只能用于RGB图像转换灰度图像,当原始图像本来就是灰度图像时,运行该程序时就会出错,但是使用者在使用时有时并不知道这些,为了使该程序更加完善,应该在使用者原先图像时灰度图像时使用该功能时,应该要显示提示类信息。

所以在开始时应该要有一个RGB图像或是灰度图像的判断过程。

完整的程序如下:

ifisrgb(handles.img)

y=rgb2gray(handles.img);

imshow(y);

else

msgbox('这已经是灰度图像','转换失败');

end

如果原图是RGB,执行该操作的结果如下图:

图2.3灰度处理对比图

2.3.2亮度

亮度是指颜色的相对明暗程度,通常使用从0%(黑色)至100%(白色)的百分比来度量。

亮度处理是指图像整体变亮或者变暗,实现方法:

加大或减小每个像素的三色数,公式为:

其中:

(2-2)

式中:

V为调整后颜色值

为原颜色值d为亮度调整系数

用imadjust函数,其调用格式如下:

g=imadust(f,[low_inhigh_in],[low_outhigh_out]),gamma)

gamma表示映射性质,默认值是1表示线性映射。

由于该函数有五个参数需要输入,为了方便用户改变,所以这里设计一个输入对话框,用户通过对话框把五个参数赋值给[low_inhigh_in],[low_outhigh_out],gamma这五个参数,如下一组命令建立了如下图所示的输入对话框:

 

图2.4命令对话框

prompt={'输入参数1','输入参数2','输入gamma'};

defans={'[00.7]','[01]','1'};

p=inputdlg(prompt,'输入参数',1,defans);

但是,这种方法并不能很好的让用户能够对图像进行任意的亮度和对比度变化调整,有时并不事先知道参数的值要多少,也不关心,而是任意调节的,直到满意为止。

所以应该用滑动条来调节图像的亮度和对比度,这样更适合用户的使用习惯。

由于imadjust函数有五个参数,所以原则上需要设计五个滑动条来调节对比度,这对用户来说显然比较麻烦,因此在设计的时候固定其中的三个参数,通过调节两个参数的值来改变亮度和对比度。

[0handles.beta],[01],handles.gm,这里的变量handles.beta和handles.gm就通过滑动条得到,滑动条设计如下图:

图2.5滑动条设计图

亮度调整的tag名为ld,取值范围0~1,gamma值的tag名为gamma,取值范围为0~5。

获取滑动条参数的程序如下:

handles.beta=get(handles.ld,'value');

handles.gm=get(handles.gamma,'value');

执行该操作,调节滑动条到上图所示位置,结果如下图:

图2.6亮度处理对比图

2.3.3截图

提取目标图像中的任意部分,公式:

imcrop('图象名',[x起点,y起点,x宽度,y宽度]。

在MATLAB中,用函数imcrop实现对图像的剪切操作。

该操作剪切的是图像中的一个矩形子图,用户可以通过参数指定这个矩形四个顶点的坐标,也

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

当前位置:首页 > 解决方案 > 学习计划

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

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