精通MATLAB图像处理.ppt

上传人:小飞机 文档编号:6056389 上传时间:2023-09-18 格式:PPT 页数:58 大小:4.13MB
返回 下载 相关 举报
精通MATLAB图像处理.ppt_第1页
第1页 / 共58页
精通MATLAB图像处理.ppt_第2页
第2页 / 共58页
精通MATLAB图像处理.ppt_第3页
第3页 / 共58页
精通MATLAB图像处理.ppt_第4页
第4页 / 共58页
精通MATLAB图像处理.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《精通MATLAB图像处理.ppt》由会员分享,可在线阅读,更多相关《精通MATLAB图像处理.ppt(58页珍藏版)》请在三一办公上搜索。

1、2023/9/18,1,第一章 Matlab概述,宁夏大学新华学院 梅梅,2023/9/18,2,MATLAB的优势与特点,1.友好的工作平台和编程环境2.简单易用的编程语言3.强大的科学计算和数据处理能力4.出色的图形处理功能5.应用广泛的模块集合工具箱6.使用的程序接口和发布平台,2023/9/18,3,MALAB系统的构成,1.MATLAB开发环境2.MATLAB数学函数库3.MATLAB语言4.MATLAB图形处理系统5.MATLAB应用程序接口,2023/9/18,4,MATLAB的工具箱,Matlab 图像处理工具箱Image Processing Toolbox提高图像质量,使模

2、糊的图像变得清晰;提取图像的有效特征,以便进行模式识别;通过图像变换和有效编码来压缩其频带或数据,以便传输或存储。,2023/9/18,5,图像获取工具箱 Image Acquisition Toolbox,通过该工具箱可以直接将MATLAB环境同图像采集设备连接起来,预览图像,采集数据,其主要功能如下:、现场视频和图像信号的获取;、支持标准模拟,数字图像采集设备;、现场视频信号预览;、支持多种图像制式;、允许同步采集和处理;,2023/9/18,6,(1)、大量的信号和线性系统模型(2)、数字及模拟滤波器设计,分析及实现(3)、FFT、DCT、Hilbert及其他变换(4)、统计信号处理(5

3、)、用统计方法进行时间序列建模及谱估计(6)、波形生成、窗口生成(7)、集成的图形界面用于滤波器设计、分析,谱分析及信号的可视化测量,信号处理工具箱函数(signal Processing Toolbox),2023/9/18,7,主要功能有:(1)、完整的GUI和命令行功能,用于分析,综合和去噪、压缩信号和图像(2)、小波和信号处理工具箱,其中包括实现从尺度到频率变换的函数(3)、连续小波变换,用于多出度信号分析(4)、分解和分析多分辨率信号和图像(5)、信号和图像的小波包变换,小波工具箱,2023/9/18,8,第二章 MATLAB基本运算,Matlab 原本就是 Matrix Labor

4、atory(矩阵实验室)的缩写,所以他会认识矩阵,我们应该不会感到意外。我们用 A=1,2;3,4 指派一个 2x2 方阵给变量 A。输入矩阵的时候,我们用中括号夹住两端,用逗号(,)或者空格分开元素,用分号(;)分列。元素可以是常数、变量和任何计算出来的数值,2023/9/18,9,MATLAB数据类型,1、变量与常量 变量是数值计算的基本单元。与C语言等其他高级语言不同,MATLAB语言中的变量无需事先定义,一个变量以其名称在语句命令中第一次合法出现而定义,运算表达式中不允许有未定义的变量,也不需要预先定义变量的类型,MATLAB会自动生成变量,并根据变量的操作确定其类型,2023/9/1

5、8,10,2、字符串,字符串是MATLAB中符号运算的基本元素,也是文字等表达方式的基本元素,在MATLAB中,字符串作为字符数组用单引号()引用到程序中,还可以通过字符运算组成复杂的字符串。字符串数值和数字数值之间可以进行转换,也可以执行字符串的有关操作,2023/9/18,11,3、元胞数组,元胞是元胞数组(Cell Array)的基本组成部分。元胞数组与数字数组相似,以下标来区分,单元胞数组由元胞和元胞内容两部分组成。用表示元胞数组的内容,用圆括号()表示元胞元素。与一般的数值数组不同,元胞可以存放任何类型、任何大小的数组,而且同一个元胞数组中各元胞的内容可以不同。,2023/9/18,

6、12,数组及其运算,MATLAB中数组(array)可以说无处不在,任何变量在MATLAB中都是以数组的形式存储和运算的。根据数组元素个数和配列方式,可分为如下几类:(1)没有元素的空数组(2)只有一个元素的标量,它实际是一行一列的数组(3)只有一行或一列元素的向量,分别叫做行向量和列向量,也统称为一维数组(4)普通的具有多行多列元素的二维数组(5)超过二维的多维数组,2023/9/18,13,数组的创建,1、空数组 创建空数组很简单,只需要变量赋值为空的方括号即可2、一维数组 创建一维行向量,只需要把所有用空格或逗号分隔的元素用方括号括起来,而创建一维列向量,则需要在方括号括起来的元素之间用

7、分号分隔3、二维数组 常规创建二维数组的方法实际上和创建一维数组方法类似,就是综合运用方括号,逗号,空格以及分号 方括号把所有元素括起来,不同行元素之间用分号分隔,同一行元素之间用逗号或空格间隔,按照逐行排列的方式顺序书写每个元素,2023/9/18,14,数组创建实例,2023/9/18,15,矩阵及其运算,矩阵的创建由m行n列构成的数组a称为m*n阶矩阵,它总共有m*n个元素组成,2023/9/18,16,复数及其运算,1、复数的表示MATLAB是以i或j字元来代表虚部复数运算的。一个复数可表示为:x=a+bi,其中a称为实部,b称为虚部。且满足如下关系:r=(a2+b2)*1/2,tan

8、o=b/a.一个复数可以看做是关于虚部和实部的符号函数,可用两种方法构造:1.用直接法构造两种形式的复数。2.用符号函数法构造两种形式的复数,2023/9/18,17,复数构造实例,2023/9/18,18,符号运算,符号运算概述 符号数学工具箱是操作和解决符号符号表达式的符号数学工具箱集合,有复合、简化、微分、积分,以及求解代数方程和微分方程的工具。另外,还有一些用于线性代数的工具,求解逆,行列式、正则形式的精确结果,找出符号矩阵的特征值而没有由数值计算引入的误差。工具箱还支持可变精度运算。符号运算与数值运算的主要区别如下:(1)数值运算中必须先对变量赋值,然后才能参与运算(2)符号运算无需

9、事先对独立变量赋值,运算结果以标准的运算形式表达。,2023/9/18,19,符号变量和符号表达式,符号变量和符号表达式用sym函数来创建。如x=sym(x)运行后,符号变量x这口箱子里面存放字母x。如果要同时创建几个符号变量,要用到syms函数。如syms a b c x y在定义了符号变量的基础上,就可以定义符号表达式。如f=sym(a*x2+b*x+c)%定义符号表达式,并将它放入f这口箱子。这样就可以很方便地分析一元二次方程,通过对f执行符号操作,可以进行积分、微分等符号运算工作。如:对变量f求微分,用微分函数diff()。,2023/9/18,20,df=diff(f)在符号表达式中

10、,对于自变量的确定,如果事先没有指定自变量的情况下,MATLAB会按照数学常规自行决定谁是自变量。确定原则:除了和之外,最接近的小写字母被认定为自变量。如果我们在编程的过程中,不能确定自变量,有一个函数可以告诉你:findsym,2023/9/18,21,符号表达式创建实例,2023/9/18,22,符号表达式的四则运算,factor(S):对S分解因式,S是符号表达式或符号矩阵expand(S):对S进行展开,S是符号表达式或符号矩阵collect(S):对S合并同类项,S是符号表达式或符号矩阵collect(S,v):对S按变量v合并同类项,S是符号表达式或符号矩阵simplify(S):

11、应用函数规则对S进行化简simple(S):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程,2023/9/18,23,常用的符号运算,常用的符号运算有求极值,级数求和,微积分,解微分方程等(1)limit 是求极限的符号运算,常用的格式为:limit(F,x,a,right)或limit(F,x,a,left)表示当自变量x从右侧或左侧逼近a时,函数F的极值(2)diff 是求微分最常用的符号函数,其输入参数既可以是函数表达式,也可以是符号矩阵。常用的格式是diff(f,x,n),表示f关于x求n阶导数(3)int 是求积分最常用的符号函数,格式:int(f,r,x0,x1)其

12、中,f为所要积分的表达式,r为积分变量,若为定积分,2023/9/18,24,则x0和x1为积分上下限。(4)symsum 是级数求和的符号函数,其常用的格式如下:S=symsum(fk,k,k0,kn),其中fk味级数的通项,k为级数自变量,k0和kn为级数求和的起始项和终止项,且可设置为inf(5)dsolve 是求解常微分方程的符号函数,其常用的格式如下:dsolve(eqn1,condition,var),该函数求解微分方程eqn1在初始条件condition下的特解。参数var描述方程中的自变量符号,省略时按默认原则处理,若没有给出初始条件condition,则求解方程的通解,202

13、3/9/18,25,关系运算和逻辑运算,2023/9/18,26,关系运算函数及逻辑运算函数,2023/9/18,27,第三章 MATLAB程序设计,程序设计概述 MATLAB不仅是一种功能强大的高级语言,而且是一个集成的交互式开发环境,用户可以通过MATLAB提供的编辑调试器编写和调试MATLAB代码.MATLAB提供了代码书写和调试的集成开发环境,用户可以在调试器中完成书写和调试过程。单击MATLAB主界面的“新建”工具按钮或者选择“File”“New”“M-File”菜单命令,就可以打开MATLAB代码编辑器-调试器 开发MATLAB程序一般需要经历代码编写、调试、优化几个阶段。,202

14、3/9/18,28,程序设计的基本原则,2023/9/18,29,M文件,M文件的类型:1、脚本M文件2、函数M文件M文件的结构:1、函数声明行2、H1行3、帮助文字4、M文件正文5、注释部分,2023/9/18,30,M文件的创建实例,2023/9/18,31,程序流程控制,分支控制语句:可以使程序中的一段代码只在满足一定条件时才执行,因此也称为分支选择。MATLAB有两种分支语句:if语句和switch语句if结构的语法形式如下:if logical_expression statementselseif logical_expression statementselse logical_

15、expression statementsend,2023/9/18,32,循环控制语句,循环控制语句能够使某段代码多次重复执行,MATLAB中提供了两类循环语句,分别是:for和while循环1、for循环 for index=start:increment:end statementsend2、while循环while expression statementsend,2023/9/18,33,3、continue语句 continue语句用在循环中,表示当前循环不再继续向下执行,而是直接对循环变量进行递增,进入下一次循环。4、break语句break语句用于推出循环。,2023/9/18

16、,34,程序调试,MATLAB程序调试主要是发现和纠正程序中的错误。常见的程序错误:一、运算发面的错误1、矩阵下标索引使用错误2、矩阵运算对象维数不匹配的错误3、元素与矩阵运算的错误二、函数方明的错误1、函数没有定义2、函数输出变量未赋值3、在命令窗口中定义函数,2023/9/18,35,调试方法,MATLAB程序有直接调试法和工具调试法1、直接调试法:就是在M文件中,将某些语句后面的分号去掉,迫使M文件输出一些中间计算结构,一便发现可能的错误。2、工具调试法:就是在程序中设置一些断点,利用调试菜单(Debug)中的一些选项进行调试。,2023/9/18,36,调试工具,2023/9/18,3

17、7,第五章 MALAB图像处理基础,MATLAB图像文件的格式1、PCX(Window Paintbar)PCX图像文件格式处理1、4、8、16、24位等图像数据。其中文件内容包括文件头128字节、图像数据和扩展颜色映射表数据。2、BMP(Window Bitmap)BMP图像文件格式处理1、4、8、24位非压缩图像,8位RLE图像。文件内容包括头文件。位图信息数据块和图像数据。3、HDF:图像文件格式有8、24位光栅图像数据集4、JPEG:图像文件格式是一种称为联合图像专家组的图像压缩格式5、TIFF:图像文件格式处理1、4、8、24位非压缩图像6、XWD:图像文件格式包括1、8位Zpixm

18、aps/XYBitmaps,1位XYBitmaps,2023/9/18,38,图像类型,索引图像灰度图像RGB图像二值图像,2023/9/18,39,索引图像及颜色表说明实例,2023/9/18,40,灰度图像结构,2023/9/18,41,灰度图像显示,2023/9/18,42,RGB图像显示,2023/9/18,43,二值图像结构及部分矩阵,2023/9/18,44,MATLAB中的颜色模型,颜色模型的分类1、RGB模型2、HSV模型3、YCbCr模型4、NTSC模型,2023/9/18,45,颜色模型的转换,2023/9/18,46,图像处理基本函数,图像处理是MATLAB工具箱中的一个

19、很重要的应用。MATLAB图像处理工具箱集成了很多图像处理的算法,为从事图像处理工作的科研人员和学生提供了很多便利。利用matlab强大的图像处理工具箱,可以实现很多功能如下所示 读写图像数据,显示图像 图像运算 图像增强 图像滤波 图像分割 图形恢复 形态学操作,2023/9/18,47,图像处理函数,2023/9/18,48,将图像读入及显示应用实例,2023/9/18,49,图像写回命令应用实例,2023/9/18,50,标准图像显示技术,imshow函数显示灰度图像显示二值图像显示索引图像显示真彩图像显示图像文件中的图像,2023/9/18,51,显示灰度图像的函数应用实例,2023/

20、9/18,52,二值图像显示应用实例,2023/9/18,53,显示索引图像,调用imshow函数显示索引图像的格式如下:imshow(X,map)其中X代表索引图像的数据矩阵,map为颜色映射表 另外,显示索引图像时,imshow函数将同时设置一些用来控制颜色的句柄图形的属性,2023/9/18,54,显示真彩图像,调用imshow函数显示真彩图像的格式吐下:imshow(RGB)其中,RGB代表该真彩图像的m*n*3的数据阵列。显示图行文件中的图像格式为:imshow 文件名;需要说明的是,该文件名必须带有合法的扩展名,并且图像文件必须保存在当前目录下,或在MATLAB默认目录下,要显示一

21、副在当前目录下的.jpg格式图像,可以使用如下语句imshow greens.spg,2023/9/18,55,第九章 图像的分析,9.2图像的边界分析边缘检测 在图像中,边缘指图像中对应边缘的边界,即反应图像中像素值剧烈变化的曲线。MATLAB图像处理工具箱使用edge函数来检测边缘,寻找像素值剧烈变化的像素点。edge函数用来求边界的方法很多,其中有sobel、prewitt、log、zeroscross和canny方法(1)对于sobel方法,其常见调用方法如下:BW=edge(I,sobel)BW=edge(I,sobel,thresh)BW=edge(I,sobel,thresh,d

22、irection)BW=edge(I,sobel,thresh,direction,options)其中I是输入的图像,sobel指所用的边缘检测方法为sobel;thresh指阈值,低于该阈值的像素值将被忽略;direction是指sobel方法的检测方向,可取值horizontal,vertical或both;options是一个可选的输入,在默认情况下为thinning,即边缘细化,当取nothinning的时候,边缘不细化,因此可加快算法的速度;BW是返回的图像的边缘,像素值为1的像素构成了图像的边缘。,2023/9/18,56,对于prewitt方法,其常用的调用方法如下,BW=edge(I,prewitt)BW=edge(I,prewitt,thresh)BW=edge(I,prewitt,thresh,direction)其中I是输入的图像;prewitt指所用的边缘检测方法为prewitt;thresh指阈值,低于该阈值的像素值将被忽略;direction是指prewitt方法的检测方向,可取值horizontal,vertical或both;BW是返回的边缘,为二值图像,取值为1的是边缘。,2023/9/18,57,对于roberts方法,其常见调用方法如下,BW=,2023/9/18,58,原图像和三种方法检测的边缘,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号