您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Matlab数字图像处理2015版
MATLAB数字图像处理西安石油大学计算机学院1.Matlab简介Matlab–美国MathWorks公司出品的商业数学软件,一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。1.Matlab简介–Matlab已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。1.Matlab简介Matlab的发行–1984年,Matlab1.0(DOS版,182K,20多个函数)–1992年,Matlab4.0(93年推出Windows版,加入simulink)–1994年,Matlab4.2(得到广泛重视和应用)–1999年,Matlab5.3(真正实现32位运算)–2002年,Matlab6.5(采用JIT加速器)–2004年,Matlab7.0–自2006年起,Matlab每年更新两次–2015年3月:MATLAB8.5即R2015a1.Matlab简介Matlab的安装–购买(下载)Matlab软件–插入光盘,自动运行;或点击安装程序setup.exe1.Matlab简介Matlab的特点与功能–Matlab是一个交互式软件系统输入一条命令,立即就可以得出该命令的结果–Matlab具有很强的数值计算功能Matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)提供十分丰富的数值计算函数,方便计算,提高效率Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握1.Matlab简介–Matlab的绘图功能Matlab提供丰富的绘图命令,很方便实现数据的可视化–Matlab编程功能Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。1.Matlab简介–Matlab丰富的工具箱(toolbox)根据专门领域中的特殊需要而设计的各种可选工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification……1.Matlab简介Matlab系统的启动–使用Windows“开始”菜单–双击Matlab快捷图标Matlab系统的退出–在Matlab主窗口File菜单中选择ExitMatlab–在Matlab命令窗口输入exit或quit–单击Matlab主窗口的“关闭”按钮1.Matlab简介Matlab的工作界面命令窗口当前工作目录当前工作空间输入命令的历史记录命令提示符2.Matlab矩阵表示矩阵定义:直接输入–矩阵用方括号“[]”括起–矩阵同一行中的元素之间用空格或逗号分隔–矩阵行与行之间用分号分开–直接输入法中,分号可以用回车代替例:A=[123;456;789]2.Matlab矩阵表示矩阵元素可以是任何数值表达式矩阵元素的单独赋值例:x=[-1.3,sqrt(3),(1+2+3)*4/5]例:x(5)=abs(x(1))Matlab自动将向量x的长度扩展到5,并将未赋值部分置零。例:x(5)=abs(x(6))??2.Matlab矩阵表示大矩阵可以把小矩阵作为其元素例:A=[A;111213]在原矩阵的下方加一行如何在原矩阵的右边添加一列?例:A=[A’;111213]A=A’2.Matlab矩阵表示单个元素的引用多个元素的引用:冒号的特殊用法例:A(2,3)利用小括弧和元素所在的位置(下标)x(i):向量x中的第i个元素A(i,j):矩阵A中的第i行,第j列元素a:b:c产生一个由等差序列组成的向量;a是首项,b是公差,c确定最后一项;若b=1,则b可以省略。例:x=1:2:5y=1:2:62.Matlab矩阵表示例:x(1:3)A(3,1:3)A(i:j,m:n)表示由矩阵A的第i到第j行和第m到第n列交叉线上的元素组成的子矩阵。可利用冒号提取矩阵的整行或整列。例:A(1,:)A(:,1:3)A(:,:)3.Matlab帮助系统Matlab帮助系统–help显示指定命令的简短使用说明–doc以网页形式显示指定命令的帮助页例:helpeig例:doceig4.Matlab数值运算Matlab变量命名原则–以字母开头,不能以数字和下划线开头;–后面可以跟字母、数字和下划线–长度不超过63个字符–变量名区分字母的大小写变量=表达式•表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号“=”左边的变量4.Matlab数值运算–分号和续行符的作用若不想在屏幕上输出结果,可以在语句最后加分号;如果语句很长,可用续行符“…”(三个点)续行。续行符的前面留一个空格。例:4.Matlab数值运算系统预定义变量–pi:圆周率–Inf:无穷大–NaN:Not-a-Number,一个不定值,如0/0;–i,j:虚部单位应尽量避免给系统预定义变量重新赋值!4.Matlab数值运算数与算术表达式–Matlab中的数默认是双精度实数;–复数的输入z=3+4iz=3+4*i3,-9,0.4,1.603e-12,3.23e+204.Matlab数值运算数学运算符–+加法–-减法–*乘法–/和\除法(右除和左除)–^幂运算命令分隔符:逗号和分号4.Matlab数值运算矩阵的基本运算–矩阵转置:A’–矩阵加和减:A+B,A-B–矩阵乘法:A*B–矩阵除法:A\B=A-1*B,A/B=A*B-1–矩阵的乘方:a^2–两个矩阵相应元素相乘:A.*B–两个矩阵相应元素相除:A./B4.Matlab数值运算建立矩阵的函数–eye(m,n)产生m行n列的单位矩阵–zeros(m,n)产生0矩阵–ones(m,n)产生全1矩阵–rand(m,n)产生随机元素的矩阵–size(a)返回包含两个元素的向量。–length(a)返回向量的长度。5.Matlab的工作方式交互式命令行工作方式M文件的程序工作方式–用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。命令文件:没有输入参数,也不返回输出参数。函数文件:可以输入参数,也可返回输出参数。5.Matlab的工作方式M文件的建立与编辑–建立新的M文件:从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令。–编辑已有的M文件:从MATLAB命令窗口的Flie菜单中选择OpenM-file命令。5.Matlab的工作方式命令文件将需要运行的命令编辑到一个命令文件中,然后在MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。【例1】建立一个命令文件e13将变量a,b的值互换。a=1:9;b=[11,12,13;14,15,16;17,18,19];c=a;a=b;b=c;①在MATLAB的命令窗口中输入e31,将会执行该命令文件。②点击“保存与运行”按钮③断点调试6.Matlab程序设计选择结构选择结构的语句有if语句和switch语句。–if语句格式一if条件语句组end格式二if条件语句组1else语句组2end6.Matlab程序设计格式三if条件1语句组1elseif条件2语句组2……elseif条件m语句组melse语句组m+1end6.Matlab程序设计例:输入三角形的三条边,求面积。A=input('请输入三角形的三条边:');ifA(1)+A(2)A(3)&A(1)+A(3)A(2)&A(2)+A(3)A(1)p=(A(1)+A(2)+A(3))/2;s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);elsedisp('不能构成一个三角形。')end运行:请输入三角形的三条边:[456]9.92166.Matlab程序设计–注意:Matlab中的&和&&对常用的与操作,没有差别&需要计算完前后两个式子的值,然后再来逻辑与;&&先计算前式的值,如果为0,则直接输出0,跳过后式的计算。更加智能化。&适用于矩阵间的逻辑运算,&&不适用,只适用于单个元素,包括数值和字符。6.Matlab程序设计–switch语句switch语句根据变量或表达式的取值不同,分别执行不同的语句。其格式为:switch表达式case值1语句组1case值2……case值m语句组motherwise语句组m+1end6.Matlab程序设计例:根据变量num的值来决定显示的内容。num=input('请输入一个数');switchnumcase-1disp('Iamateacher.');case0disp('Iamastudent.');case1disp('Youareateacher.');otherwisedisp('Youareastudent.');end6.Matlab程序设计–循环结构循环结构有for循环和while循环;while语句:while(逻辑表达式)程序模块;endfor语句for变量=初值:增量:结束值程序模块;end6.Matlab程序设计sum=0;i=0;while(i=100)sum=sum+1;i=i+1;endsum结果:sum=101forI=1:10A(I)=1/(I+1);endA结果:A=Columns1through70.50000.33330.25000.20000.16670.14290.1250Columns8through100.11110.10000.0909例7.Matlab用于图像处理7.1图像的读取和显示–图像的读取FILENAME指定图像文件的完整路径和文件名。如果在work工作目录下,只需提供文件名。FMT为图像文件的格式对应的标准扩展名。例:I=imread('D:\image.BMP');%读入图像A=imread(FILENAME,FMT)7.Matlab用于图像处理7.1图像的读取和显示–图像的显示I为要显示的图像矩阵。[lowhigh]为指定显示灰度图像的灰度范围。高于high的像素被显示成白色;低于low的像素被显示成黑色;介于High和low之间的像素被按比例拉伸后显示为各种等级的灰色。例:figure;imshow(I);title('原始图像');figure;%创建一个新的窗口,防止新图像覆盖旧图像imshow(I,[lowhigh])7.Matlab用于图像处理–图像的格式转换阈值法从灰度图、RGB图创建二值图。LEVEL为指定的阈值;(0,1)。im2bw(I,LEVEL);rgb2gray;从RGB图创建灰度图,存储类型不变。im2uint8将图像转换成uint8类型im2double将图像转换成double类型7.Matlab用于图像处理–提取图像信息whosff=imshow(‘image.tif’);whosf结果:NameSizeBytesClassf205x23247560uint8例7.Matlab用于图像处理7.2图像直方图–图像直方图描述图像各个灰度级的统计特性。例如:打开一幅图像,显示原图像,绘制其直方图。imhist(I);I=imread(‘red.bmp’);%读入图像[M,N]=size(I);%计算图像大小figure;%打开新窗口imshow(I);%显示原图像figure;%打开新窗口imhist(I)%显示直方图7.Matlab用于图像处理7.3直方图均衡化histeq(I);I=imread(‘red.bmp’);%读入图像J=histeq(I);%直方图均衡化imshow(I);%显示原始图像figure,
本文标题:Matlab数字图像处理2015版
链接地址:https://www.777doc.com/doc-4369317 .html