Matlab简介及图像处理基础课件_第1页
Matlab简介及图像处理基础课件_第2页
Matlab简介及图像处理基础课件_第3页
Matlab简介及图像处理基础课件_第4页
Matlab简介及图像处理基础课件_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 MATLAB简介及图像处理基础9.1 MATLAB简介 Matlab语言是由美国的Clever Moler博士于1980年开发的 设计者的初衷是为解决“线性代数”课程的矩阵运算问题 取名MATLAB即Matrix Laboratory 矩阵实验室的意思。1993年 MATH WORKS公司先后推出MATLAB 3.x, MATLAB 4.0;1997年MATLAB5.0;2001年MATLAB6.x;2004年MATLAB7.0。2011年MATLAB 7.12 MATLAB由总包和若干个工具箱构成。具有强大的数值计算能力,良好的符号计算功能和卓越的数据可视化能力。 9.1 MATLA

2、B简介一、MATLAB的特点 9.1 MATLAB简介 9.1 MATLAB简介二、 Matlab能在各领域做什么?工业研究与开发;学科方面的教学与研究 线性代数、高等数学、大学物理、自动控制理论、概率论与数理统计、数字信号处理、数字图像处理等课程基本教学工具。 数值分析、优化分析、数据处理、自动控制、信号处理等领域的数学计算。计算可视化、图形绘制、场景创建与虚拟现实、图像处理等分析处理经济学、化学和生物学等计算问题的所有其他领域中的教学与研究请欣赏例子例、用简短命令计算并绘制在0 x6范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=

3、sin(x.2),y3=(sin(x).2;plot(x,y1,x, y2,x, y3)用matlab中的simulink工具箱仿真PID控制算法(f1001.mdl文件)用matlab软件仿真数字水印算法实例(watermark_photo_noise.m文件)三、 Matlab的启动和用户界面 2、启动Matlab开机执行: 开始-所有程序-MATLAB6.5-MATLAB6.5或用鼠标双击桌面上matlab图标即可打开matlab命令平台1、安装Matlab 图9.1 MATLAB主界面3、Matlab6.5的用户界面 9.1 MATLAB简介 9.1 MATLAB简介图9.2 Comm

4、and Window窗口 9.1 MATLAB简介 9.1 MATLAB简介 9.1 MATLAB简介 9.1 MATLAB简介 9.1 MATLAB简介 9.1 MATLAB简介 9.1 MATLAB简介 图9.6 Current Directory窗口1、Matlab联机帮助命令 help 功能提供Matlab大部分主题的在线帮助信息help 显示help 主题一览表help plotxyz 显示有关三维做图指令帮助信息help sqrt 显示平方根功能和使用方式help help 显示help 的帮助信息虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,hel

5、p就无能为力了。1)命令行帮助四、Matlab7.0的基础知识 Lookfor函数 它可提供通过一般的关键词,搜索出一组与之相关的命令lookfor fourier 寻找含有傅立叶变换的相关指令help、lookfor 两个指令构成了matlab语言相当完善的在线帮助查询系统 lookfor fouri 寻找所有包含fouri的指令和注例如 FFT Discrete Fourier transform2)联机帮助在Matlab界面中单击工具条上的问号或点击Help菜单中的Matlab Help选项,可以打开联机帮助界面。what:显示当前目录下所有与matlab相关的文件及它们的路径。dir:

6、显示当前目录下所有的文件which:显示某个文件的路径cd path:由当前目录进入path目录cd .:返回上一级目录cd:显示当前目录type filename:在命令窗口中显示文件filenamedelete filename:删除文件filename2、 matlab与dos兼容命令3、matlab的数据与变量1) 建立数据 (1)直接输入数据注意“;”表示不显示定义的数据(2)自动产生数据?xx=1:10 xx从1到10,间隔为1xx = 1 2 3 4 5 6 7 8 9 10?xx=-2:0.5:1 xx从-2到1,间隔为0.5xx = -2.0000 -1.5000 -1.00

7、00 -0.5000 0 0.5000 1.0000?xx=linspace(-1,1,10) xx从-1到1等距离取10个点xx = Columns 1 through 7 -1.0000 -0.7778 -0.5556 -0.3333 -0.1111 0.1111 0.3333 Columns 8 through 10 0.5556 0.7778 1.00002) 变量查询函数who与whoswho作用列出在matlab工作空间中已经驻留的变量名清单?whoYour variables are:x1 xx y1 whos作用在给出驻留变量的同时,还给出他们的维数及性质whos Name S

8、ize Bytes Class x1 1x3 24 double array xx 1x10 80 double array y1 2x3 48 double arrayGrand total is 19 elements using 152 bytes3) 查询变量函数exist格式:i=exist(xx);其中xx为要查询的变量名;i 为返回值i=1 表示存在一个变量名为xx的矩阵i=0表示不存在和xx相关的变量和文件4)清除变量函数clear格式:Clear x1 %清除x1一个变量Clear x1 x2 %清除x1和x2两个变量注意:中间没有“,”或“;”号Clear 清除整个空间中的

9、所有变量注意clear 是无条件删除变量,且不可恢复5 )关闭图像窗口close格式:Close %关闭当前图像窗口Clear all %关闭所有图像窗口6 )清除工作命令窗口clc格式:clc %清除工作命令窗口内容CTRL+C 和CTRL+Break随时中断Matlab运行1 )变量定义:其值可以改变的量称变量注意:1)使用变量时无需变量声明 2)系统自动生成变量,并指定合适的存储空间 3)在重复使用变量时,自动更新内容。4、 变量、数据与函数规则: (1)由字母、数字和下划线组成,字母间不可留空格,且第一个字符为字母(2)变量名中的英文字母大小写是有区别的 如:A1B,a1b,A1b,a

10、1B是不同的变量 (3) 变量名的长度上限为63个字符Matlab常用特殊变量 eps 容差变量,计算机的最小数,定义为1.0到最近浮点数的距离,在 pc机上= 2-52 pi 圆周率的近似值3.1415926 inf或Inf 表示正无大,定义为1/0 NaN 不定量,它产生于0 ,0/0,/ 等运算 i,j 虚数单位 ans 对于未赋值运算结果,自动赋给ansdate日历clock 挂钟tic秒表开始toc秒表停止2) 注释和标点百分号后所有的文字为注释,注释语句不执行。?xx=1:10 xx从1到10,间隔为1xx = 1 2 3 4 5 6 7 8 9 10多条命令可以放在同一行,中间用

11、逗号或分号隔开。区别:逗号要求显示结果,分号禁止显示结果如:?x=4.5;y=5,f=1.9y = 5f = 1.90003 ) 复数表示Matlab复数不用特殊处理,用i ,j和sqrt(-x)表示复数运算形式与实数一样?a=1-2i,b=sqrt(-2),c=a+ba = 1.0000 - 2.0000ib = 0 + 1.4142ic = 1.0000 - 0.5858ireal(a),imag(a),abs(a),angle(a)命令来表示一个复数的实部、虚部、幅值和相角。4) 数学函数Matlab所支持的常用数学函数见下表。abs(x)绝对值或复数的幅值lcm(x,y)整数x和y的最

12、小公倍数acos(x)反余弦log(x)自然对数angle(x)复数相角log10(x)常用对数asin(x)反正弦real(x)复数实部atan(x)反正切round(x)四舍五入到最近的整数conj(x)复数共轭sign(x)符号函数cos(x)余弦sin(x)正弦exp(x)指数函数sqrt(x)平方根gcd(x,y)整数x和y的最大公约数tan(x)正切imag(x)复数虚部使用函数注意几点:1)函数一定要出现在等式右边2)每个函数对其自变量的个数和格式都有一定的要求,3)函数允许嵌套,例如:sqrt(abs(sin(225*pi/180)4)Matlab只对弧度操作,如sin(1)表

13、示的不是sin1,而是sin57.28578。 sqrt(5)ans = 2.2361 sqrt(-5)ans = 0 + 2.2361i例 round(1.2)ans = 1 round(5.6)ans = 6 sign(-5)ans = -1 sign(5)ans = 1 gcd(4,6)ans = 2 lcm(4,6)ans = 12 abs(-5.6)ans = 5.60005、 应用举例例11计算下式的结果,其中x3.5度,y6.7度。x=pi/180*(-3.5);y=pi/180*6.7; %将角度转换 为弧度值z=sin(abs(x)+abs(y)/sqrt(cos(abs(x

14、+y)z 0.1772例1-2我国人口按2000年第五次全国人口普查的结果为12.9533亿,如果年增长率为1.07,求公元2010年末的人口数。计算人口公式为:P1=P0(1+r) n ,其中: P1 为几年后的人口,P0为人口的初值,r为年增长率,n为年数。R=0.0107;N=2010-2000;P0=12.9533E8;P1=P0*(1.0+R)NP1=1.4408e+009例1-3求解ax2+bx+c=0方程的根,其中:a=1,b=2,c=3.分析一元二次方程的求根公式为a=1;b=2;c=3;d=sqrt(b*b-4*a*c)X1=(-b+d)/(2*a)X1= -1.000+1.

15、4142iX2=(-b-d)/(2*a)X2=-1.000-1.4142i.9.2 MATLAB编程基础一、数据生成及修改矩阵元素可以是任何matlab表达式 ,可以是实数 ,也可以是复数,复数可用特殊函数i,j 输入 a=1 2 3;4 5 6 x=2 pi/2;sqrt(3) 3+5i%例1-1 x = 1 2 3 4;2 3 4 5;3 4 5 6 A=1 2 34 5 62 3 4x = 1 2 3 4 2 3 4 5 3 4 5 6只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖 。当一个指令或矩阵太长时,可用续行

16、注意:由文本文件生成矩阵 txt文件中不含变量名称,文件名x为矩阵变量名,每行数值个数必须相等。 调用:load d:.例1-3load test.txttesttest = 1.1000 1.2000 1.3000 1.40001)部分扩充 D=A;B C 2 矩阵的修改%例3-4A=1 2 3 4; 5 6 7 8;B=eye(2);C=zeros(2);D=A;B CA为原矩阵,B,C中包含要扩充的元素,D为扩充后的矩阵2) 部分删除 A(:,n)=; A(m,:)= 3)部分修改 A(m,n)=a; A(m,:)=a b ; A(:,n)= a; b; %例3-5A = 1 2 3 4

17、;5 6 7 8;A(:,2)=A = 1 3 4 5 7 8结果:%例3-6A = 1 2 3 4;5 6 7 8;A(:,2)=10; 11A = 1 10 3 4 5 11 7 8结果:4) 结构改变 1 左右翻转 fliplr(A) 2 上下翻转 flipud(A) 3 逆时针旋转rot90(A,k); 4 平铺矩阵 B=repmat(A,m,n) %例1-7A = 1 2 3 4;5 6 7 8;fliplr(A)%例1-8A = 1 2 3 4;5 6 7 8;flipud(A)%例1-9A = 1 2 3 4;5 6 7 8;rot90(A)ans = 4 3 2 1 8 7 6

18、 5ans = 5 6 7 8 1 2 3 4ans = 4 8 3 7 2 6 1 5例 将一副图片进行左右翻转,上下翻转,并显示出来imagechange.m5) 矩阵元素的数据变换 (1 )取整数 floor; ceil; round; fix %例1-11A = 1 2; 3 4;B=repmat(A,3,2)B = 1 2 1 2 3 4 3 4 1 2 1 2 3 4 3 4 1 2 1 2 3 4 3 4结果:%例1-14A=3*randn(2)B1=floor(A)B2=ceil(A)B3=round(A)B4=fix(A)floor 按 方向取整; ceil 相反round按

19、四舍五入取整;fix按离0近的方向取整A = -1.2977 0.3760 -4.9968 0.8630B1 = -2 0 -5 0B2 = -1 1 -4 1B3 = -1 0 -5 1B4 = -1 0 -4 0 3 特殊矩阵1) 单位阵 eye调用格式:A=eye(n); B=eye(m,n); C=eye(size(A)%例3-17A=1 2 3; 2 3 4;B=eye(size(A)C=eye(3)B = 1 0 0 0 1 0C = 1 0 0 0 1 0 0 0 12)矩阵 ones 和零矩阵 zeros 调用格式:ones(n);ones(m,n);ones(m,n);one

20、s(size(A) zeros(n);zeros(m,n);zeros(m,n);zeros(size(A)%例3-18A=1 2 3; 2 3 4;B= ones(size(A)C=zeros(size(A)D=ones(3)E=zeros(3,2)B = 1 1 1 1 1 1C = 0 0 0 0 0 0D = 1 1 1 1 1 1 1 1 1E = 0 0 0 0 0 03 )随机阵 rand;randn 调用格式:rand;rand(n);rand(m,n);rand(m,n);rand(size(A) randn;randn(n);randn(m,n);randn(m,n);ra

21、ndn(size(A)0到1之间均匀分布的随机矩阵零均值单位方差正态分布的随机矩阵5 )魔方阵 magic%例3-20 A=1 2 3; 2 3 4;B= rand(size(A)%例3-21 m=10;n=15;x=m+(n-m)*rand(3)%例3-22A=1 2 3; 2 3 4 B= randn(size(A)B = 0.7621 0.0185 0.4447 0.4565 0.8214 0.6154x = 13.9597 10.8813 14.5845 14.6091 12.0285 12.0514 13.6910 14.6773 14.4682B = -1.6656 0.2877

22、1.1909 0.1253 -1.1465 1.1892%例3-23 生成均值为0.5,方差为0.05的3阶矩阵mu=0.5;sigma=0.05;x=mu+sqrt(sigma)*randn(3)x = 0.4916 0.4583 0.9882 0.5732 0.6623 0.4695 0.5391 0.3684 0.5255%例3-24M=magic(3)M = 8 1 6 3 5 7 4 9 2例 randntongji.m6) 对角阵 diag调用格式:A=diag(v,k);B=diag(v);v=diag(A,k)%例3-25v=1 2 3;A1=diag(v,-1)A2=diag

23、(v,0)A1 = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0A2 = 1 0 0 0 2 0 0 0 3以向量v元素作为矩阵A的第k条对角线元素。当k=0时,v为A的主对角线;当k0时,v为上方第k条对角线元素,反之,下方第k条对角线元素。v=diag(A,k)表示抽取A元素的第k条对角线元素构成向量v,k的含义同上。 MATLAB中文件形式:.m .mdl m文件“.m”分命令文件和函数文件两种。 1、 命令文件 没有输入参数和输出参数、只是命令行的组合. 命令文件最好保存在MATLAB7works子目录(工作目录)下(或非中文目录下). 文件名命名与变量命名类似,文件

24、名与内置函数及工具箱函数不应重名、与命令文件及工作空间中的变量也不应重名(最好不用中文名). 二、 m文件.9.2 MATLAB编程基础clear; %清除工作空间变量theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).2; %计算命令rho(2,:)=cos(10*theta).3;rho(3,:)=sin(theta).2;rho(4,:)=5*cos(3.5*theta).3;for i=1:4subplot(2,2,i);polar(theta,rho(i,:) %图形输出end2、 函数文件函数文件一般包括: 函数定义行: function 输出参数=

25、函数名(输入参数) % 返回变量多于一个时用方括号. % 函数名与所存的m文件名应同名. % 输入变量多于一个时用逗号”,”隔开. % 第二行,概括性信息,用于lookfor(查找)命令 % 第二行到第一非注释行之间为注释,用于help命令 % 空行后不显示。 函数体 注释语句以%开头,可在m文件任何地方、或一行代码的后面加注释语句,%后的代码部分为不执行部分。 输入和输出变量可以是标量、数组或矩阵 二、 m文件函数文件可以传递参数。函数文件中定义的变量都是局部变量;可以利用所有已知函数编制自己的M函数或者M文件,从而完成复杂的运算。M函数文件有自己的工作空间,与MATLAB工作空间是分开的。

26、M函数的变量都是内部变量,不会送到工作空间。M函数中若有return命令,函数将中断运行,返回工作空间。例4.16定义一个名为fcircle.m的函数文件,并调用该函数。先定义fcircle.m函数,将下述代码另存为工作目录下的fcircle.m文件 function s,p=fcircle(r) % 在m文件中定义函数 % FCIRCLE calculate the area and perimeter of a circle of radii r % r 圆半径 s 圆面积 p 圆周长 s=pi*r*r; p=2*pi*r; 在命令窗口可以调用该函数了s,p=fcircle(10)9.2

27、MATLAB编程基础三、程序流程控制应用MATLAB编程,主要是将解决问题的算法用MATLAB语句或函数来描述。MATLAB提供三种常用控制结构:顺序结构、选择结构、循环结构。由于在循环和条件语句中经常包含大量的MATLAB命令,故一般用在文件中,而不是直接用在工作空间。顺序结构选择结构循环结构1 顺序结构顺序结构就是依次执行程序的各条语句。%例2-29disp (the begin of the program)disp (the first line)disp (the end of the program)the begin of the programthe first linethe

28、 end of the program1)for循环结构 for-endfor循环语句允许按照固定的次数或者给定的范围重复完成运算。基本格式: for 变量初值:增量:结束值 程序模块 end2 循环结构s1:s3:s2for 语句的嵌套 for i=1:3 for j=5:-1:1 a(i,j)=i2+j2; end end a = 2 5 10 17 26 5 8 13 20 29 10 13 18 25 34举例计算1到5的三次方的值 for n=1:5 x(n)=n3; endx=1 8 27 64 1252)while 循环(while-end)while循环语句根据给出的条件,以不

29、定的次数求一组命令的值。while语句的结构 while 条件表达式 %当条件表达式为真时,执行循环体%内的语句,否则退出当前循环体 循环体 end应用举例 n=1;s=0; while n100) m break; end sum=sum+m; end应用举例3 分支结构条件语句if主要有两个条件语句结构:if_end 结构 和 if_else_end结构。if_end结构格式: if 条件表达式 程序模块 end应用举例y=0;for n=1:4 if n2 y=n2 endend求得结果:?if_else_end结构: if 条件表达式1 程序模块1 else if 条件表达式2 程序模

30、块2 else 程序模块3 enda=5;if a=0; disp(nihao1);else if a=1; disp(nihao2);else disp(nihao3);endendnihao39.3 MATLAB在图像处理中的应用 9.3 MATLAB在图像处理中的应用 9.3 MATLAB在图像处理中的应用9.3 MATLAB在图像处理中的应用 9.3 MATLAB在图像处理中的应用 9.3 MATLAB在图像处理中的应用 I2=imread(logo.tif);imshow(I2)二值图像可以使用logical函数把其他数据转换为二值图像 C=eye(64)D=logical(C) imshow(D) 9.3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论