MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx

上传人:b****1 文档编号:4582360 上传时间:2023-05-03 格式:DOCX 页数:25 大小:828.05KB
下载 相关 举报
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第1页
第1页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第2页
第2页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第3页
第3页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第4页
第4页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第5页
第5页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第6页
第6页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第7页
第7页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第8页
第8页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第9页
第9页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第10页
第10页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第11页
第11页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第12页
第12页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第13页
第13页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第14页
第14页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第15页
第15页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第16页
第16页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第17页
第17页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第18页
第18页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第19页
第19页 / 共25页
MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx

《MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx(25页珍藏版)》请在冰点文库上搜索。

MATLAB课程设计基于MATLAB的图像处理的基本运算Word下载.docx

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

关键词:

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

1.1MATLA的基本用途1

1.2MATLAB的语言特点1

1.3MATLAB系统构成1

2.数据采集2

2.1图像的选取2

2.2图像亮度和对比度的调整2

2.2.1编辑M文件2

2.2.2MATLAB支持的图像格式和类型3

2.2.3图像的读取3

2.2.4调整图像亮度和对比度4

3.图像的几何操作6

3.1插补操作6

3.1.1插补功能介绍6

3.1.2插补具体操作6

3.2放缩操作8

3.2.1放缩功能介绍8

3.2.2具体操作9

3.3旋转操作10

3.3.1旋转功能介绍10

3.3.2具体操作10

4.直方图统计12

4.1灰度图的获取12

4.1.1灰度图的转换功能介绍12

4.1.2具体操作12

4.2直方图以及直方图均衡13

4.2.1直方图函数功能介绍13

4.2.2直方图具体操作14

5.图像的噪声处理15

5.1添加噪声的功能介绍15

5.2添加噪声的具体操作16

6.总结(心得体会)18

7.参考文献19

1.MATLAB简介

1.1MATLA的基本用途

MATLAB是矩阵实验室(MatrixLaboratory)之意。

除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。

经过不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。

成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具。

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图像的选取

从互联网上下载一张图片,图像为彩图,能够满足设计要求,如图1所示。

图1原彩色图

2.2图像亮度和对比度的调整

2.2.1编辑M文件

MATLAB是解释型语言,就是说MATLAB命令行中敲入的命令在当前MATLAB进程中被解释运行。

为方便起见,有两种方法可以使MATLAB的力量得到扩展——脚本和函数。

这两种方法都用像emacs一样的文本编辑器中编写的m文件(因为扩展名是.m所以这样命名,m文件还称点m文件)。

m文件的好处在于它可以保存命令,还可以轻易地修改命令而无需重新敲入整个命令行。

新建m文件的方法为File->

New->

M-File。

2.2.2MATLAB支持的图像格式和类型

1、MATLAB支持的几各图像文件格式:

(1)JPEG(JointPhotogyaphicExpeytGroup):

联合图像专家组的图像压缩格式。

(2)BMP(WindowsBitmap):

有1位、4位、8位、24位非压缩图像,8位RLE(RunlengthEncoded)的图像。

(3)TIFF(TaggedNetworkGraphics):

处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。

(4)PNG(PortableNetworkGraphics):

处理1位、4位、8位、16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。

(5)GIF(GraphicsInterchangeFormat):

任何1位到8位的可交换的图像。

等等14种。

2、MATLAB支持五种图像类型,即:

(1)二值图像:

Double数据——图像为

的整数矩阵,元素值范围[0,1];

unit8和unit16数据——图像为

的整数矩阵,元素值范围[0,1]。

(2)索引图像:

的整数矩阵,元素值范围[0,p];

的整数矩阵,元素值范围[0,p-1];

(3)灰度图像:

的浮点数矩阵,元素值范围[0,1];

的整数矩阵,元素值范围[0,255]或[0,65535];

(4)RGB图像:

(5)多帧图像阵列。

2.2.3图像的读取

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

这种方法不像其他的编程语言一样,需要编写复杂的代码,只需要简单的调用MATLAB提供的函数即可。

利用函数imread()可完成图形图像文件的读取,语法:

a=imread(filename,fmt)

[X,map]=imread(filename,fmt)

[...]=imread(filename)

[...]=imread(filename,idx)(只对TIF格式的文件)

[...]=imread(filename,ref)(只对HDF格式的文件)

2.2.4调整图像亮度和对比度

MATLAB中的图像调整技术用于图像的改善。

此处的改善有两方面的含义:

客观方面,可以提高图像的信噪比;

主观方面,通过修正图像的亮度和对比度是某些特征更加容易辨认,。

为了调整图像的亮度和对比度,利用MATLAB中的J=imadjust(I,[low_in;

high_in],[low_out;

high_out],gamma)命令实现图像的亮度和对比度调整。

关于这条命令的说明如下所示:

将图像I中的亮度值映射到J中的新值,即将low_in至hige_in之间的值映射到low_out至high_out之间的值。

low_in以下与high_in以上的值被剪切掉了,也就是说,low_in以下的值映射到low_out,high_in以上的值映射到high_out。

它们都可以使用空的矩阵[],默认值是[01]。

Matlab中文论坛

将图像I中的亮度值映射到J中的新值,其中gamma指定描述值I和值J关系的曲线形状。

如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数值(灰暗)输出,如果省略此参数,默认为(线性映射)。

相关的MATLAB命令为:

a=imread('

E:

/北戴河.jpg'

);

%读取图像路径

figure,

subplot(1,3,1)

imshow(a);

%显示图像

title('

原彩色图像'

K=imadjust(a,[0.30.7],[0.81]);

%将图像调的明亮

subplot(1,3,2)

imshow(K);

明亮的图像'

J=imadjust(a,[0.30.7],[00.2]);

%将图像调的灰暗

subplot(1,3,3)

imshow(J);

灰暗的图像'

这段命令可以原彩图读取和对图像的亮度和对比度的调整使得图像变得明亮和灰暗。

调整后的结果如下图2所示。

图2图像亮度和对比度的调整

由上面的处理结果可以看出,经过图像的亮度和对比度调整之后,图像的亮度和对比度发生了明显的变化。

将图像I中的亮度值映射到J中的新值,其中gamma指定描述值I和值J关系的曲线形状。

如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数值(灰暗)输出。

和理论结果一致。

3图像的几何操作

MATLAB图像处理工具箱中提供了一些基本的图像处理工具,包括几何操作函数。

这些函数支持所有的图像类型。

利用它们,可以对图像进行插值,缩放和旋转等几何操作。

3.1插补操作

3.1.1插补功能介绍

MATLAB中的immerize函数用于图像的插补。

MATLAB工具箱中提供了3种插补操作。

分别为'

nearest'

(默认值)最近邻插值,'

bilinear'

双线性插值'

,bicubic'

双三次插值。

这三种插补方法的运算方式基本类似。

对于每一种来说。

为了确定插补像素点的数据值,用户必须在输入的图像中查找到与输出像素对应的点。

这三种插补的方法区别在于其对像素点颠覆值的不同。

对于最近邻插值来说,输出像素的赋值为当前点的像素点。

对于双线性插值来说,输出像素的赋值为2X2矩阵所包含的有效点的加权平均值。

对于双三次插值来说,输出像素的赋值为4X4矩阵所包含的有效点的加权平均值。

这里的像素的数目直接影响了运算过程的复杂度。

因此双线性插补的方法需要的运算时间比邻插补方法需要的时间长。

同样双三次插值比双线性插补方法需要的时间要长。

3.1.2插补具体操作

输入MATLAB命令:

k=imresize(a,1,method);

根据method的不同,可以对图像进行不同方式的插值方式。

最近邻插值具体程序如下所示:

figure,

subplot(1,2,1)

k=imresize(a,1);

subplot(1,2,2)

imshow(k);

最近邻插入图像'

最近邻插值输出的图像如图3所示:

图3最近邻插值输出

双线性插值具体程序如下所示:

J=imresize(a,1,'

双线性插入图像'

双线性插值输出的图像如图4所示:

图4双线性插值

三线性插值具体程序如下所示:

a=imread('

l=imresize(a,1,'

bicubic'

imshow(l);

三线性插入图像'

双三次插值输出的图像如图5所示:

图5双三次插值图像输出

由上面的处理结果可以看出,经过不同的插值处理运算后,根据插值的计算方法的不同,得到的图像显示结果出来的时间不一致,算法越复杂,所需要得到结果的时间越长。

3.2放缩操作

3.2.1放缩功能介绍

MATLAB影像工具箱中的immersize函数可以通过一种特定的插补方法来改变图像的大小。

该函数的语法如下面所述:

B=immersize(A,m,method)。

如果用户没有指定插补方法,则该函数将采用缺省的近邻插补方法。

另外,我们还可以根据指定的放大系数来改变图像的大小。

例如,下面的代码可以将X中的像素数目增加一倍。

Y=immersize(X,2)。

其中2为放大的系数。

如果希望缩小系数,只需将放大系数设置在0到1之间即可。

3.2.2具体操作

输入MATLAB命令:

immersize(A,m,method),根据m的不同,可以得到不同的图像大小。

下面是具体的程序:

k=imresize(a,0.1);

缩小后的图像'

J=imresize(a,3,'

subplot(1,3,3)

放大后的图像'

)根据上面的程序,可以得到下面的图像:

图6放大和缩小图

3.3旋转操作

3.3.1旋转功能介绍

在MATLAB处理工具箱中的imrotate函数可以通过一种特定的插补方法来改变图像显示的角度。

该函数的语法如下所示:

B=imrotate(A,angle,method)

该函数以图像中心点为基准,以角度angle逆时针方向旋转。

指定angle为负值,可实现图像顺时针旋转。

该函数是旋转图像A,使用指定的差值方法,method是可以有下列值之一的一个文本字符串,默认值是包含在大括号({}).

如果用户没有指定插补方法,则该函数将采用缺省的近邻插补方法。

另外,用户还需指定旋转的角度。

3.3.2具体操作

B=imrotate(A,angle,method)得到旋转图像,根据angle的不同,得到的旋转角度也不同。

下面是具体的程序:

subplot(2,2,1)

J=imrotate(a,90);

subplot(2,2,2)

逆时针旋转90度'

K=imrotate(a,-90);

subplot(2,2,3)

顺时针旋转90度'

L=imrotate(a,45);

subplot(2,2,4)

imshow(L);

逆时针旋转45度'

根据上面的程序,可以得到下面的图像:

图7旋转图像

4.直方图统计

在MATLAB处理工具箱中有imhist函数,可以用这个函数对图像进行直方图统计,至于图像的均衡处理,可以采用histeq这个函数,但是这两个函数只是适用于二维图像,因而我们在操作的过程中首先得对图像进行灰度图的转换。

4.1灰度图的获取

4.1.1灰度图的转换功能介绍

灰度图像保存在—个矩阵中,矩阵的每个元素代表—个像素点。

矩阵可以是双精度类型,值域为[0,1],也可以为uint8类型,其数据范围为[0,256],矩阵的每个元素值代表不同的亮度或灰度级,亮度值为0表示黑色;

亮度值为1代表白色。

为了转换为灰度图,利用MATLAB中的rgb2gray()命令实现RGB图像到灰度图像的转化。

转化后在使用命令isgray()判断图像是否变为灰度图,如果是灰度图将返回为1,不是将返回0。

灰度图转换成功后,将转化后的灰度图读取出来。

4.1.2具体操作

输入MATLAB中的rgb2gray()命令实现RGB图像到灰度图像的转化。

k=rgb2gray(a);

isgray(k);

灰度图像'

根据上面的程序,可以得到下面的图像:

图8灰度图的获取

4.2直方图以及直方图均衡

前面已经提到过可以采用imhist函数和histeq函数,对图像进行直方图统计以及图像的均衡处理。

下面对其功能分别进行介绍:

4.2.1直方图函数功能介绍

imhist(I)显示图像I的直方图,图像的灰度数由图像类型指定,如果I为灰度图像,imhist使用一个默认的256值,如果I为二值图像,imhist则使用2值。

imhist(I,n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。

如果I是二值图像,那么n仅有两个值。

J=histeq(I,hgram)实现了所谓"

直方图规定化"

,即将原是图象I的直方图变换成用户指定的向量hgram。

J=histeq(I,n)均衡化后的级数n,缺省值为64。

[J,T]=histeq(I,...)返回能将图像I的灰度直方图变换为图像J的直方图的变换T。

[newmap,T]=histeq(X,...)是针对索引色图像调色板的直方图均衡。

4.2.2直方图具体操作

分别输入MATLAB中的imhist和histeq命令实现对图像进行直方图统计以及图像的均衡处理。

x=imhist(k);

x1=x(1:

10:

256);

horz=(1:

figure,

subplot(1,2,1)

bar(horz,x1);

直方

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2