matlab课设.docx

上传人:b****5 文档编号:6648972 上传时间:2023-01-08 格式:DOCX 页数:35 大小:2.88MB
下载 相关 举报
matlab课设.docx_第1页
第1页 / 共35页
matlab课设.docx_第2页
第2页 / 共35页
matlab课设.docx_第3页
第3页 / 共35页
matlab课设.docx_第4页
第4页 / 共35页
matlab课设.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

matlab课设.docx

《matlab课设.docx》由会员分享,可在线阅读,更多相关《matlab课设.docx(35页珍藏版)》请在冰豆网上搜索。

matlab课设.docx

matlab课设

课程设计任务书

学生姓名:

专业班级:

指导教师:

工作单位:

信息工程学院

题目:

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

初始条件:

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

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

要求完成的主要任务:

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

1.必做题

(1)极限的计算、微分的计算、积分的计算、级数的计算、求解代数方程、求解常微分方程;

(2)矩阵的最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算

(3)多项式加减乘除运算、多项式求导、求根和求值运算、多项式的部分分式展开、多项式的拟合、插值运算。

2.选做题

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

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

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

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

时间安排:

第1周:

安排任务,布置题目;

第2—17周:

设计仿真,撰写报告

第18周:

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

指导教师签名:

年月日

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

年月日

目录

摘要1

Abstract2

1、前言3

2、编程及运行结果4

2、1常见基本运算4

2.1.1极限的计算4

2.1.2微分的计算4

2.1.3积分的计算5

2.1.4级数的计算5

2.1.5求解代数方程6

2.1.6求解常微分方程6

2.2矩阵基本计算7

2.2.1矩阵的最大值7

2.2.2矩阵的最小值8

2.2.3矩阵的均值9

2.2.4矩阵的方差10

2.2.5矩阵的转置11

2.2.6矩阵的逆11

2.2.7矩阵的行列式12

2.2.8矩阵特征值的计算12

2.2.9矩阵的相乘13

2.2.10矩阵右除和左除13

2.2.11矩阵的幂运算14

2.3多项式的基本运算15

2.3.1多项式加减15

2.3.2乘除运算15

2.3.3多项式的求导16

2.3.4多项式的求根17

2.3.5多项式的求值运算17

2.3.6多项式的部分分式展开18

2.3.7多项式的拟合20

2.3.8插值运算20

3、图像选择及变换22

3.1原始图像选择读取22

3.1转换图像为灰阶图像24

4图像处理及代码程序25

4.1图像亮度对比度调整25

4.1.1函数说明及参数选择25

4.1.2源程序及运行结果25

4.2图像放大和缩小26

4.2.1函数说明及参数选择26

4.2.2源程序及运行结果26

3.3图像任意角度的旋转27

3.3.1函数说明及参数旋转27

3.3.2源程序及运行结果28

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

3.4.1函数说明及参数选择28

3.4.2源程序及运行结果29

4.5图像加入噪声31

4.5.1函数说明及参数选择31

4.5.2源程序及运行结果31

5感悟体会小结34

参考文献35

 

摘要

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

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

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

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

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

关键词:

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

 

Abstract

MATLABisadirect,efficientcomputerlanguage,andatthesametime,ascientificcomputingplatform.Itfordataanalysisanddatavisualization,algorithmandapplicationdevelopmenttoprovidethemostcoreofmathandadvancedgraphicstools.Accordingtoprovideitwiththemorethan500mathandengineeringfunction,engineeringandtechnicalpersonnelandscientificworkerscanintegratedenvironmentofdevelopingorprogrammingtocompletetheircalculation.

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

Keywords:

MATLABbrightnessandcontrastrotationinterpolationnoiseamplification

 

1、前言

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

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

 

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

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

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

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

图1matlab操作界面

2、编程及运行结果

2、1常见基本运算

2.1.1极限的计算

极限函数limit格式:

limit(F,x,a)

limit(F,a)

limit(F)

limit(F,x,a,'right')

limit(F,x,a,'left')

求数列{(1+1/2+1/3+...+1/n-ln(n+1))}的极限

举例编程如下:

运行结果:

2.1.2微分的计算

微分函数diff格式:

Y=diff(X)

Y=diff(X,n)

Y=diff(X,n,dim)

举例编程如下:

运行结果:

2.1.3积分的计算

积分函数int格式:

integerstates=int(hm.states)

例:

的积分。

2.1.4级数的计算

级数函数symsum格式:

r=symsum(s)

r=symsum(s,v)

r=symsum(s,a,b)

r=symsum(s,v,a,b)

举例编程如下:

运行结果:

2.1.5求解代数方程

函数solve格式:

g=solve(eq)

g=solve(eq,var)

g=solve(eq1,eq2,...,eqn)

g=solve(eq1,eq2,...,eqn,var1,var2,...,varn)

例:

求4*(x+2)^2-9*(x-3)^2=0的解。

2.1.6求解常微分方程

函数dsolve格式:

r=dsolve('eq1,eq2,...','cond1,cond2,...','v')

r=dsolve('eq1','eq2',...,'cond1','cond2',...,'v')

例:

求下列微分方程的解析解

2.2矩阵基本计算

2.2.1矩阵的最大值

调用函数ind2sub格式:

[I,J]=ind2sub(siz,IND)

[I1,I2,I3,...,In]=ind2sub(siz,IND)

举例编程如下:

运行结果:

2.2.2矩阵的最小值

调用函数find格式:

indices=find(X)

indices=find(X,k)

indices=find(X,k,'first')

indices=find(X,k,'last')

编程如下:

2.2.3矩阵的均值

调用函数mean格式:

M=mean(A)

M=mean(A,dim)

编程如下:

2.2.4矩阵的方差

调用函数var格式:

V=var(X)

V=var(X,1)

V=var(X,w)

V=var(X,w,dim)

编程如下:

2.2.5矩阵的转置

调用函数conj格式:

ZC=conj(Z)

举例编程如下:

运行结果:

2.2.6矩阵的逆

调用函数inv格式:

Y=inv(X)

编程如下:

2.2.7矩阵的行列式

调用函数det格式:

d=det(X)

编程如下:

2.2.8矩阵特征值的计算

调用函数eig格式:

d=eig(A)

d=eig(A,B)

[V,D]=eig(A)

[V,D]=eig(A,'nobalance')

[V,D]=eig(A,B)

[V,D]=eig(A,B,flag)

编程如下:

2.2.9矩阵的相乘

举例编程如下:

2.2.10矩阵右除和左除

举例编程如下:

运行结果:

 

举例编程如下:

运行结果:

2.2.11矩阵的幂运算

举例编程如下:

2.3多项式的基本运算

2.3.1多项式加减

举例编程如下:

运行结果:

2.3.2乘除运算

举例编程如下:

例:

计算多项式2x^3-x^2+3和2x+1的乘除

2.3.3多项式的求导

调用函数polyder格式:

k=polyder(p)

k=polyder(a,b)

[q,d]=polyder(b,a)

举例编程如下:

运行结果

2.3.4多项式的求根

调用函数roots格式:

r=roots(c)

求:

2x^3-x^2+3的根

2.3.5多项式的求值运算

调用函数polyval格式:

y=polyval(p,x)

y=polyval(p,x,[],mu)

[y,delta]=polyval(p,x,S)

[y,delta]=polyval(p,x,S,mu)

例:

已知p(x)=2x^3-x^2+3,取x=2,求p(x)在x处的值

2.3.6多项式的部分分式展开

调用函数residue格式:

[r,p,k]=residue(b,a)

[b,a]=residue(r,p,k)

举例编程如下:

运行结果:

则得:

 

2.3.7多项式的拟合

调用函数polyfit格式:

p=polyfit(x,y,n)

[p,S]=polyfit(x,y,n)

[p,S,mu]=polyfit(x,y,n)

举例编程如下:

运行结果:

2.3.8插值运算

调用函数interp1格式:

yi=interp1(x,Y,xi)

yi=interp1(Y,xi)

yi=interp1(x,Y,xi,method)

yi=interp1(x,Y,xi,method,'extrap')

yi=interp1(x,Y,xi,method,extrapval)

pp=interp1(x,Y,method,'pp')

举例编程如下:

运行结果:

 

 

3、图像选择及变换

3.1原始图像选择读取

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

图3.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('C:

\Users\Administrator\Desktop\xp\xy.png');%RGB:

原始图像,真彩色;

Info=imfinfo('C:

\Users\Administrator\Desktop\xp\xy.png')

figure

imshow(RGB)

title('原始图像')

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

图3.1.2读取后显示图片

3.1转换图像为灰阶图像

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

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

A=rgb2gry(‘filename.fmt’);

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

程序源代码如下:

I=rgb2gray(RGB);%I:

灰阶图像

figure

imshow(I)

title('灰阶图像')

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

图3.2.1灰阶图片

 

4图像处理及代码程序

4.1图像亮度对比度调整

4.1.1函数说明及参数选择

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

RGB2=imadjust(RGB1,...)

4.1.2源程序及运行结果

源程序如下:

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

figure

imshow(RGB1)

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

运行结果如图4.1.1所示:

图4.1.1对比度和亮度调节

4.2图像放大和缩小

4.2.1函数说明及参数选择

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

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

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

nearest、bilinear

4.2.2源程序及运行结果

源程序如下所示:

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

figure

imshow(X)

title('最邻近插入法')

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

figure

imshow(Y)

title('双三次插入法')

程序运行结果如图4.2.1、4.2.2所示:

图4.2.1最邻近插入法缩小一半

 

图4.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’)

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

图4.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('直方图均衡')

运行结果如下图4.4.1、4.4.2、4.4.3所示:

图4.4.1原始图像直方图

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

图4.4.3均衡后的直方图

4.5图像加入噪声

4.5.1函数说明及参数选择

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

J=imnoise(I,type,parameters)

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

类型名分别是:

gaussian、salt&pepper、speckle。

4.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('加乘性噪声')

程序结果如下图4.5.1、4.5.2、4.5.3所示:

图4.5.1加入高斯

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

图4.5.3加入乘性噪声后图片

5感悟体会小结

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

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

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

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

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

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

使我十分的受益。

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

 

参考文献

1.贺兴华《MATLAB7.X图像处理》人民邮电出版社2006.11.01

2.徐建华《图像处理与分析》.科学出版社1994.05

3.李文锋《图形图像处理与应用》.中国标准出版社2006.06

4.刘文耀《数字图像采集与处理》.电子工业出版社2007.08.01

5.赵树杰《数字图像处理》.西安电子科技大学出版社2000.03

 

本科生课程设计成绩评定表

姓名

性别

专业、班级

课程设计题目:

课程设计答辩或质疑记录:

 

成绩评定依据:

最终评定成绩(以优、良、中、及格、不及格评定)

 

指导教师签字:

年月日

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

当前位置:首页 > 考试认证 > 司法考试

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

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