matlab课程设计 武汉理工 图像处理.docx

上传人:b****6 文档编号:6424508 上传时间:2023-01-06 格式:DOCX 页数:24 大小:4.33MB
下载 相关 举报
matlab课程设计 武汉理工 图像处理.docx_第1页
第1页 / 共24页
matlab课程设计 武汉理工 图像处理.docx_第2页
第2页 / 共24页
matlab课程设计 武汉理工 图像处理.docx_第3页
第3页 / 共24页
matlab课程设计 武汉理工 图像处理.docx_第4页
第4页 / 共24页
matlab课程设计 武汉理工 图像处理.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

matlab课程设计 武汉理工 图像处理.docx

《matlab课程设计 武汉理工 图像处理.docx》由会员分享,可在线阅读,更多相关《matlab课程设计 武汉理工 图像处理.docx(24页珍藏版)》请在冰豆网上搜索。

matlab课程设计 武汉理工 图像处理.docx

matlab课程设计武汉理工图像处理

课程设计任务书

学生姓名:

喻珩专业班级:

信息sy0801班

指导教师:

艾青松工作单位:

信息工程学院

题目:

基于MATLAB的图像处理的基本运算

初始条件:

(1)使用matlab软件进行操作

(2)选择一个图像进行处理

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)能够对图像亮度和对比度变化调整,并比较结果

(2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几种插值的效果

(3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。

(4)对图像加入各种噪声,比较效果。

时间安排:

第1周:

安排任务,布置题目;

第2—17周:

设计仿真,撰写报告

第18周:

完成设计,提交报告,答辩

 

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

目录

摘要I

AbstractII

1.MATLAB简介1

1.1MATLAB用途1

1.2MATLAB的语言特点2

1.3MATLAB系统构成2

2图像选择及变换2

2.1原始图像选择读取2

2.2转换图像为灰阶图像5

3图像处理及代码程序6

3.1图像亮度对比度调整6

3.1.1函数说明及参数选择6

3.1.2源程序及运行结果6

3.2图像放大和缩小7

3.2.1函数说明及参数选择7

3.2.2源程序及运行结果7

3.3图像任意角度的旋转8

3.3.1函数说明及参数旋转8

3.3.2源程序及运行结果8

3.4图像直方图统计和均衡9

3.4.1函数说明及参数选择9

3.4.2源程序及运行结果9

3.5图像加入噪声11

3.5.1函数说明及参数选择11

3.5.2源程序及运行结果11

4图像处理结果比较分析13

4.1调整对比度和亮度后图像比较13

4.2图像放大缩小及旋转后比较14

4.3进行直方图均衡后图像比较14

4.4加入各种噪声后图像比较16

5感悟体会小结17

参考文献18

附录19

全部源程序代码:

19

摘要

MATLAB是—套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成—个方便的、界面友好的用户环境。

MATLAB强大的扩展功能为各个领域的应用提供了基础,由各个领域的专家相继给出了MATLAB工具箱,其中主要有信号处理,控制系统,神经网络,图像处助,鲁棒控制,非线性系统控制设计,最优化,小波,通信等工具箱,这此工具箱给各个领域的研究和工程应用提供了有力的工具。

借助于这些“巨人肩膀上的工具”,各个层次的研究人员可直现方便地进行分析、计算及设计工作,从而大大地节省了时间。

本次课程设计的目的在于较全面了解常用的数据分析与处理原理及方法,能够运用相关软件进行模拟分析。

通过对采集的图像进行常规的图像的亮度和对比度的调整,并进行最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几种插值的效果,以及对图像进行直方图和直方图均衡并加入噪声进行对比,达到本次课程设计的目的

关键词:

MATLAB亮度和对比度插值放大旋转噪声

 

Abstract

MATLABis-setofhigh-performancenumericalcomputationandvisualizationsoftware,whichcombinesnumericalanalysis,matrixcomputation,signalprocessingandgraphicsinoneform-aconvenient,user-friendlyuserenvironment.MATLABisapowerfulextensionapplicationinvariousfieldstoprovideabasisbyexpertsinvariousfieldshavebeengivenaMATLABtoolbox,whicharesignalprocessing,controlsystems,neuralnetworks,imageprocessingsupport,robustcontrol,nonlinearcontrolsystemdesign,optimization,wavelets,communicationstoolkit,whichthiskittothevariousareasofresearchandengineeringapplicationsapowerfultool.Withthese"toolsontheshouldersofgiants,"researchersatalllevelscannowbeeasilyanalyzeddirectly,calculationanddesignwork,whichgreatlysavestime.

Thetrainingaimstostrengthenthebasisofamorecomprehensiveunderstandingofcommonlyuseddataanalysisandprocessingprinciplesandmethodsrelatedtotheuseofsimulationsoftware.Imagescollectedbyconventionalimagebrightnessandcontrastadjustments,andthenearestneighborinterpolationandbilinearinterpolationalgorithmtotheuserselectedimageareatozoominandoutseveraltimesandrotatethewholeoperation,andsave,comparetheeffectofseveralinterpolationandtheimagehistogramandhistogramandcomparedwithnoise,tothepurposeofthiscoursedesign.

Keywords:

MATLABbrightnessandcontrastrotationinterpolationnoiseamplification

1.MATLAB简介

1.1MATLAB用途

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

 

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

如图matlab操作界面如下1.1.1所示:

图1.1.1matlab操作界面

1.2MATLAB的语言特点

(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。

运算符丰富。

(2).MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。

(3)程序限制不严格,程序设计自由度大。

(4)MATLAB的图形功能强大。

(5)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。

(6)由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。

1.3MATLAB系统构成

主要由以下五部分构成:

MATLAB系统构成

(1)MATLAB语言

(2)MATLAB工作环境

(3)图形处理

(4)MATLAB数学函数库

(5)MATLAB应用编程人员接口(API)

2图像选择及变换

2.1原始图像选择读取

图像选择方面,只是随便的选择了一个图片,原始图片如下图2.1.1:

图2.1.1选择原始图片

MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。

这次采用的是imread函数来实现图像文件的读取操作,采用的格式如下:

A=imread(‘filename.fmt’)

该语句用于读取字符串“filename”对应的灰度图像或彩色图像,“fmt”指定了文件的格式。

采用imfinfo函数查询图像文件的信息。

其语句格式如下:

Info=imfinfo(‘filename.fmt’)

该语句可以在命令窗口会显示出文件的基本信息。

采用imshow函数进行图像的显示,采用的格式如下:

A=imread(‘filename.fmt’);imshow(A);

当这种显示方式要求被显示的图像要么在当前目录下或MATLAB的目录下。

采用rgb2gray函数进行真彩色图像与灰阶强度图像的转变其格式调用如下:

A=rgb2gry(‘filename.fmt’);得到的图像可以进行统计与处理,能完成要求。

图像读入与显示和变化的源代码如下:

%第一步,获取图像,并显示各种基本信息

clear;

closeall;

RGB=imread('E:

/dota670.jpg');%RGB:

原始图像,真彩色;

Info=imfinfo('E:

/dota670.jpg')

figure

imshow(RGB)

title('原始图像')程序运行结果如下图2.1.2所示:

图2.1.2读取后显示图片

命令窗口中,显示如下:

Info=

Filename:

'E:

/dota670.jpg'

FileModDate:

'08-一月-201122:

00:

58'

FileSize:

47709

Format:

'jpg'

FormatVersion:

''

Width:

500

Height:

371

BitDepth:

24

ColorType:

'truecolor'

FormatSignature:

''

NumberOfSamples:

3

CodingMethod:

'Huffman'

CodingProcess:

'Sequential'

Comment:

{}

Orientation:

1

Software:

'ACDSystemsDigitalImaging'

DateTime:

'2010:

12:

2817:

58:

11'

YCbCrPositioning:

'Centered'

DigitalCamera:

[1x1struct]

2.2转换图像为灰阶图像

在后期的处理中,有部分程序需要用到灰阶图片,因此提前将图片进行转换,得到灰阶图片。

采用rgb2gray函数进行真彩色图像与灰阶强度图像的转变其格式调用如下:

A=rgb2gry(‘filename.fmt’);

得到的图像可以进行统计与处理。

程序源代码如下:

I=rgb2gray(RGB);%I:

灰阶图像

figure

imshow(I)

title('灰阶图像')

程序运行结果如下图2.2.1所示:

图2.2.1灰阶图片

3图像处理及代码程序

3.1图像亮度对比度调整

3.1.1函数说明及参数选择

对比度和亮度调节采用的是imadjust函数,其调用格式如下:

RGB2=imadjust(RGB1,...)

3.1.2源程序及运行结果

源程序如下:

RGB1=imadjust(RGB,[.2.30;.6.71],[]);

figure

imshow(RGB1)

title('彩图对比度亮度调整')

运行结果如图3.1.1所示:

图3.1.1对比度和亮度调节

3.2图像放大和缩小

3.2.1函数说明及参数选择

采用imresize函数,其调用格式如下:

B=imresize(A,[mrowsncols],method)

对于参数的选择,mrowsncols是选择放大或缩小的倍数,method是选择才用最邻近插入法还是双三次插入法,参数分别为:

nearest、bilinear

3.2.2源程序及运行结果

源程序如下所示:

X=imresize(RGB,0.5,'nearest');

figure

imshow(X)

title('最邻近插入法')

Y=imresize(RGB,2,'bilinear');

figure

imshow(Y)

title('双三次插入法')

程序运行结果如图3.2.1、3.2.2所示:

3.2.1最邻近插入法缩小一半

3.2.2最邻近插入法,放大一倍

3.3图像任意角度的旋转

3.3.1函数说明及参数旋转

函数使用的是imrotate函数,其调用格式如下所示:

B=imrotate(A,angle,method,bbox)

期中参数method是选择才用最邻近插入法还是双三次插入法,参数分别为:

nearest、bilinear

旋转后的图像重新保存为一个图像文件,使用imwrite函数,其调用格式如下:

imwrite(BW,'test.tif')

3.3.2源程序及运行结果

源程序如下:

B=imrotate(RGB,90,'nearest','crop');

figure

imshow(B)

title('图像角度旋转')

imwrite(B,’text.tif’)

程序的运行结果下图3.3.1所示:

图3.3.1进行图像的任意角度旋转

3.4图像直方图统计和均衡

3.4.1函数说明及参数选择

由于图像的直方图统计只能处理灰阶图像,因此,要使用之前转换好了的灰阶图像进行处理,使用imhist函数画直方图,使用histeq函数进行直方图的均衡,再显示各个图像。

函数调用形式如下:

imhist(I)

H=histeq(I);

imhist(H)

3.4.2源程序及运行结果

figure

imhist(I)

title('直方图')

figure

H=histeq(I);

imshow(H)

title('直方图均衡处理图片')

figure

imhist(H)

title('直方图均衡')

运行结果如下图3.4.1、.、3.4.2、3.4.3所示:

图3.4.1原始图像直方图

图3.4.2经过直方图均衡后的图像

图3.4.3均衡后的直方图

3.5图像加入噪声

3.5.1函数说明及参数选择

函数使用imnoise函数进行图片的噪声加入,其调用格式如下:

J=imnoise(I,type,parameters)

期中,type是噪声的类型,由高斯噪声,椒盐噪声,乘性噪声。

类型名分别是:

gaussian、salt&pepper、speckle。

3.5.2源程序及运行结果

%第六步加入噪声

E=imnoise(RGB,'gaussian',0,0.05);

figure

imshow(E)

title('加高斯噪声')

F=imnoise(RGB,'salt&pepper',0.05);

figure

imshow(F)

title('加椒盐噪声')

G=imnoise(RGB,'speckle',0.05);

figure

imshow(G)

title('加乘性噪声')

程序结果如下图3.5.1、3.5.2、3.5.3、所示:

图3.5.1加入高斯

图3.5.2加入椒盐噪声后的图片

图3.5.3加入乘性噪声后图片

4图像处理结果比较分析

4.1调整对比度和亮度后图像比较

如图4.1.1所示,在对比度和亮度调节设置后,图片显示如下:

图4.1.1原始图像与对比度变化后比较

在函数imadjust中,调节“RGB1=imadjust(RGB,[.2.30;.6.71],[]);”中的[]中的值可以改变对比度。

当使范围变化时,可以得到如下图像。

4.2图像放大缩小及旋转后比较

使用双线性插值法和最邻近插值法,分别对图像进行放大缩小,对比结果如下图4.2.1所示:

图4.2.1图像的放大缩小和旋转

4.3进行直方图均衡后图像比较

对原始图片的直方图和直方图均衡后的结果进行比较,如下图4.3.1所示:

图4.3.1原始图像直方图和直方图均衡后结果

观察原始图片与直方图均衡后的结果如下图4.3.2所示:

图4.3.2直方图均衡图片和原始图片比较

4.4加入各种噪声后图像比较

为各种图片加入噪声,和原始图片进行比较如下图4.4.1所示:

图4.4.1加入各种噪声和原始图片比较

5感悟体会小结

这次课程设计让自己更深的了解了MATLAB的程序设计及图像处理的内容,在这次设计中,学习到了很多的东西和知识,并且积累了大量的宝贵经验,归结如下:

1.更全面的认识了MATLAB这个软件,并且能够熟练的使用MATLAB的基本功能,掌握了MATLAB的程序设计的基本方式方法和步骤。

2.学习了图像的处理的各项基本函数的使用,特别对MATLAB的帮助功能有了很深刻的了解,能够独立的完成函数的编写及功能的实现,再也不是什么函数都需要使用网络来询问,学习了图像噪声的使用,让我对专业知识有了更深的了解,对我以后的学习很有方向性。

3.在程序设计中,特别是对各个函数的使用中,看英文资料成为了必须的,这让我大量的接触了专业英语,是一个很意外的收获。

让我能够接触更广阔的知识,使我以后的学习更加的有效开阔。

当然,网络上找资源也是这次实验课设的宝贵收获,在这次课程设计中,我大量运用了网络资源,积极的注册技术论坛,学到了很多知识。

使我十分的受益。

不过,通过这次课程设计,也让我认识到了很多的不足,让我知道了自己知识的浅薄和要学习的东西还很多很多,还需要我继续的努力。

参考文献

1.《MATLAB语言及其在电子信息工程中的应用》王洪元主编  清华大学出版社

2.《MATLAB在数字图像处理中的应用》机械工业出版社

3.《精通MATLAB7》王正林,刘明编著,北京-电子工业出版社

4.《MATLAB从入门到精通》周建兴编著,人民邮电出版社

5.《精通MATLAB图像处理》张强,王正林,电子工业出版社

6.《详解MATLAB数字图像处理》张德丰电子工业出版社

附录

全部源程序代码:

%matlab课程设计

%第一步,获取图像,并显示各种基本信息

clear;

closeall;

RGB=imread('myclasspicture.jpg');%RGB:

原始图像,真彩色;

Info=imfinfo('myclasspicture.jpg')

figure

imshow(RGB)

title('原始图像')

%第二步将真彩色图转换为灰阶图,进行直方图绘制

I=rgb2gray(RGB);%I:

灰阶图像

figure

imshow(I)

title('灰阶图像')

figure

imhist(I)

title('直方图')

%第三步调整图像的亮度和对比度

J=imadjust(I);%调整对比度

figure,

imshow(J);

title('对比度亮度调整')

RGB1=imadjust(RGB,[.2.30;.6.71],[]);

figure

imshow(RGB1)

title('彩图对比度亮度调整')

%第四步直方图均衡

figure

H=histeq(I);

imshow(H)

title('直方图均衡处理图片')

figure

imhist(H)

title('直方图均衡')

%第五步邻近插入法和双线性插入法进行放大缩小。

X=imresize(RGB,0.2,'nearest');

figure

imshow(X)

title('最邻近插入法')

Y=imresize(RGB,3,'bicubic');

figure

imshow(Y)

title('双三次插入法')

%第五步任意角度旋转

B=imrotate(RGB,90,'nearest','crop');

figure

imshow(B)

title('图像角度旋转')

imwrite(B,'test.jpg')

%第六步加入噪声

E=imnoise(RGB,'gaussian',0,0.05);

figure

imshow(E)

title('加高斯噪声')

F=imnoise(RGB,'salt&pepper',0.05);

figure

imshow(F)

title('加椒盐噪声')

G=imnoise(RGB,'speckle',0.05);

figure

imshow(G)

title('加乘性噪声')

 

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

当前位置:首页 > 高等教育 > 其它

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

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