数字图像处理02Matlab图像处理工具箱.ppt
《数字图像处理02Matlab图像处理工具箱.ppt》由会员分享,可在线阅读,更多相关《数字图像处理02Matlab图像处理工具箱.ppt(96页珍藏版)》请在三一办公上搜索。
1、数字图像处理第02章 Matlab图像处理基础,高振国,第2章 Matlab图像处理工具箱,1.Matlab基础2.Matlab图像处理工具箱四种图像类型四种图像类型的读取,写入,查询信息四种图像类型的显示图像类型的相互转换(九个函数)补充:图像的运算,针对不同的领域需要不同的图像处理算法,因此掌握一门高级语言来编写自己的图像处理程序,MATLAB无疑是一个不错的选择。,2.1 Matlab简介,Matlab(Matrix Laboratory)是当今很流行的科学计算软件。信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用,在诸如控制论、时间序列分析、系统仿真、图像信号处理等方
2、面产生了大量的矩阵及其他计算问题。Matlab软件适时推出,为人们提供了一个方便的数值计算和动态仿真平台。,Matlab简介-特点,1 高效、简单的程序环境2 强大的数值运算功能3 丰富的工具箱,Matlab是一个交互式的系统,其开发环境是MATLAB语言的基础和核心部分,全部功能都能在开发环境中实现。,提供大量的矩阵及其它运算函数,方便地进行一些很复杂的计算,而且运算效率极高。Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握。,根据各专门领域中的特殊需要提供了许多可选的工具箱,已有涉及数学、控制、通信、信号处理、图像处理、经济、地理等多种学科的20多种Matlab工具箱投入应
3、用。,可以在提示符后键入各种命令,变量管理中心,可以显示变量的名称、尺寸、字节和类别等信息。,提供当前路径下文件的操作。,显示已执行过的命令及相应时间。,系统中全部程序和帮助文件的管理和启动功能。,Matlab简介-开发环境,Matlab简介-M文件,Matlab通常使用命令驱动方式,当单行命令输入时,Matlab立即处理并显示结果,同时将运行说明和命令存入历史命令窗口。Matlab语句的磁盘文件称作M文件,因为这些文件名的末尾是.M形式。M文件有两种类型:命令(Script)文件 函数(function)文件,命令(Script)文件,第一类型M文件称为命令(Script)文件,特点如下:(
4、1)最简单的M文件,它是一系列命令、语句的简单组合;(2)没有输入和输出参数;(3)顺序执行文件后变量是全局变量,保存在工作空间中;(4)可以直接运行。,例:%绘制花瓣,test02_01.m 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 k=1:4 subplot(2,2,k),polar(theta,rho(k,:)end,命令(Script)文件,运行方式(1)将所有命令复制粘贴到命令行窗口
5、,按回 车执行。(2)在M文件编辑器中选择“Debug”,再选“Run”运行,或直接按“F5”运行程序。(3)在命令行中键入文件名,再回车,注意不要 加扩展名“.m”。,命令(Script)文件,M文件命名时不要用纯数字,这样会导致错误的结果。若有一个名为“1.m”的M文件,运行后的结果只能是1。,注意,函数(Function)文件,函数文件的特点如下:(1)以function为引导;(2)可以接受输入、输出参数;(3)内部变量为局部变量,运行完被释放。(4)不能直接运行,必须调用。,函数(Function)文件,function X=total(n)%total 计算从1到n的n个数之和%如
6、果n比1小,则提示错误。if n1 error(Input must be larger than 1);end k=1:n;X=sum(k);,函数定义行function 函数名,输入变量,输出变量,注释行:在命令窗口键入help total后显示出来显示内容为连续的若干个右边的文字。,函数体:包括函数的全部程序代码,test02_02.m,2.2 Matlab常用的基本命令,(1)全0矩阵 A=zeros(n):生成nn的全0矩阵;A=zeros(m,n):生成mn的全0矩阵;A=zeros(a1,a2,a3,):生成a1a2a3的全0 矩 A=zeros(size(B):生成与矩阵B大小
7、相同的全0矩阵。,1.常用矩阵的生成,(2)全1矩阵 A=ones(n):生成nn的全1矩阵;A=ones(m,n):生成mn的全1矩阵;A=ones(m,n):生成mn的全1矩阵;A=ones(a1,a2,a3,):生成a1a2a3的全1矩阵;A=ones(size(B):生成与矩阵B大小相同的全1矩阵。,(3)单位矩阵 A=eye(n):生成nn的单位矩阵;A=eye(m,n):生成mn的单位矩阵;A=eye(m,n):生成mn的单位矩阵;A=eye(size(B):生成与矩阵B大小相同的单位矩阵。,(4)均匀分布的随机矩阵 A=rand(n):生成nn的随机矩阵;A=rand(m,n):
8、生成mn的随机矩阵;A=rand(m,n):生成mn的随机矩阵;A=rand(a1,a2,a3,):生成a1a2a3的随机矩阵;A=rand(size(B):生成与矩阵B大小相同的随机矩阵。注意:上述rand生成的元素在区间(0,1)内均匀分布,(5)正态分布的随机矩阵 A=randn(n):生成nn的随机矩阵;A=randn(m,n):生成mn的随机矩阵;A=randn(m,n):生成mn的随机矩阵;A=randn(a1,a2,a3,):生成a1a2a3的随机矩阵;A=randn(size(B):生成与矩阵B大小相同的随机矩阵。注意:上述randn生成的元素服从均值为0,方差为1的正太分布,
9、在Matlab中,可以采用多种不同的方式生成矩阵。,2.简单矩阵的生成,(1)直接输入矩阵元素,对于较小的简单矩阵,从键盘上直接输入矩阵是最常用的数值矩阵创建方法,需要遵循以下几个基本原则:矩阵每行的元素之间必须用空格或逗号分开;在矩阵中,采用分号或回车表明每行的结束;整个输入矩阵必须包含在方括号中。,用Matlab生成的矩阵存储成二进制文件或包含数值数据的文本文件可以生成矩阵。格式:save 文件名 变量名列表 示例:a=1;b=2;save abc a b,(2)从外部数据文件调入矩阵元素,当矩阵的尺寸较大时,直接在命令窗口输入元素就显得比较笨拙,容易出现错误且不便修改。为了解决这个问题,
10、按照原来的创建原则写入一个M文件,运行该M文件,即将矩阵调用到工作空间。例:test02_03.m,(3)利用用户文件创建的M文件矩阵,A=1,2,3;4,5,6;7,8,9;10,11,12;,Matlab可以采用多种不同的方式生成向量。(1)利用冒号“:”生成向量 冒号“:”是Matlab中常用算子之一,不仅可以作数组下标,对数组元素进行引用、增加和删除,还可以用来生成向量。,3.向量的生成,冒号“:”使用下列格式生成均匀等分向量。x=j:k 如果jk,则生成空向量x=;x=j:i:k 如果i0且jk,则生成向量 x=j,j+i,j+2i,k;如果i0且jk或i0且jk,则生成空向量x=;
11、,Matlab常用命令,clear 工作空间中清除所有变量,clc 清除命令窗口中显示内容,help 获得在线帮助,命令 功能,clf 清除图形窗口内容,who 列出当前工作空间中的变量,whos 列出当前工作空间中的变量及信息,补充:矩阵的基本操作,*diag(A)返回矩阵A对角元素成列向量;*diag(v)以向量v作对角元素创建矩阵;*flipud(A)矩阵上下翻转;*fliplr(A)矩阵左右翻转;*rot90(A)矩阵逆时针翻转90度;*tril(A)提取矩阵A的下三角矩阵;*triu(A)提取矩阵A的上三角矩阵。,1.利用矩阵创建矩阵,*x=1 2 3 4 5%产生15的数组*b=x
12、(3)%寻访数组x的第3个元素*b=x(1 2 5)%寻访x的第1、2、5元素*b=x(1:3)%寻访前三个元素*b=x(3:end)%寻访第三个元素到最后一个*b=x(find(x3)%由大于3的元素构成数组*b=x(3:-1:1)%由前3个数倒排成数组*b=x(1 2 3 4 4 3 2 1)%对元素的重复访问,2.寻访矩阵中的数据,*x=1,2,3;4,5,6;7,8,9%产生33的矩阵*b=x(find(x4)%大于4的元素构成数组*x(2,2)=10%第2行第2列值改为10*x(3,:)=20%第3行的值改为20*x=ones(5)%产生55全为1的矩阵*x(2:4,2:4)=0%第
13、2、3、4行的第2、3、4列元素改0,3.修改数据,插入:x=4:6;A=x-3;x;x+3%插入创建新矩阵 提取:C=A(1:2,2:3)%提取A的部分 拉长:D=A(:)%拉长成列 置空:A(:,2)=%删除A的第二列,4.插入、提取、拉长及置空,A=3:6;1:4%产生24的矩阵 s=size(A)%返回s为行数 列数 r,c=size(A)%返回r为行数,c为列数 r=size(A,1)%只返回行数 c=size(A,2)%只返回列数 n=length(A)%返回行数、列数最大者,5.矩阵的规模,练习,已知:矩阵A=3 3 4 6 2 4 2 4 5 7 7 5 3 2 1 1,试对矩
14、阵矩阵A进行操作得到以下结果。,返回矩阵A的大小;,返回矩阵A1=5 7 7 6 5,A2=3 3 4 6;,返回矩阵A3=1 1 2 3 A4=3 3 4 6 A5=3 4 6 5 7 7 5 2 4 2 4 2 2 4 4 2 4 2 8 8 8 8 5 7 5 6 4 3 3 3 2 1 1 3 1 1,2.3 图像处理工具箱简介,Matlab是一种基于向量(数组)而不是标量的高级程序语言,因而Matlab从本质上就提供了对图像的支持。数字图像实际上是一组有序离散的数据,使用Matlab可以对这些离散数据形成的矩阵进行一次性的处理。,Matlab对图像的处理功能主要集中在它的图像处理工具
15、箱(Image Processing Toolbox)中。,图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、数学形态学处理等图像处理操作。,图像处理工具箱主要有:,Image Acquisition Toolbox Image Processing Toolbox Signal Processing Toolbox Wavelet Toolbox Statistics Toolbox Bioinformatics Toolbox Matlab Compiler Matlab COM builder,2.4 Matla
16、b中的图像类型及类型转换,Matlab中的数字图像是由一个或多个矩阵表示的,Matlab强大的矩阵运算功能完全可以应用于图像,那些适用于矩阵运算的语法对Matlab中的数字图像同样适用。,2.4.1 图像和图像数据,缺省:double(64位浮点数)uint8(无符号8位整型),内容顺序,图像的四种类型,图像的读取、写入、信息查询,图像的显示,图像类型转换,2.4.2 图像处理工具箱所支持的图像类型,图像处理工具箱支持4种图像类型,它们是:真彩色图像(RGB images)索引色图像(index images)灰度图像(intensity images)二值图像(binary images)此
17、外,Matlab还支持由多帧图像组成的图像序列。,1.真彩色图像,真彩色图像用 R、G、B 3个分量表示1个像素的颜色,所以对1个尺寸为mn的真彩色图像来说,其数据结构就是一个mn3的多维数组。如果要读取图像中(100,50)处的像素值,可以查看三元组(100,50,13)。真彩色图像可用双精度存储,此时亮度值的范围是0,1。常用的存储方法是用无符号整型存储,亮度值的范围为0,255。,真彩色图像数据格式,图2.2 真彩色图像的结构,2.索引色图像,索引图像是把像素值直接作为RGB调色板下标的图像。Matlab中的索引色图像包含2个结构,一个是调色板map;另外一个是图像数据矩阵X。调色板是一
18、个有3列和若干行的色彩映像矩阵,矩阵的每行都代表一种色彩,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色。图像数据可以是uint8或是双精度的。需要注意的是Matlab中的调色板的色彩强度是0,1中的浮点数,0代表最暗,1代表最亮。,图2.3 索引色图像的结构,索引图像的数据格式,3.灰度图像,存储灰度图像只需要一个数据矩阵,数据类型可以是double也可以是uint8。显示时会使用一个默认的调色板来显示图像。,4.二值图像,与灰度图像相同,二值图像只需一个数据矩阵,每个像素只有2个灰度值。可以采用uint8或double类型存储,工具箱中以二值图像作为返回结果的函数都使用u
19、int8类型。,5.图像序列(不能用于RGB图),图像处理工具箱支持将多帧图像连接成图像序列。可以使用Matlab的cat函数将分散的图像合并成图像序列,前提是各图像的尺寸必须相同,如果是索引色图像,调色板也必须是一样的。比如要将A1、A2、A3、A4、A5五幅图像合并成一个图像序列A,Matlab语句为 A=cat(1,A1,A2,A3,A4,A5),1维,纵向排列 A=cat(2,A1,A2,A3,A4,A5),2维,横向排列 A=cat(3,A1,A2,A3,A4,A5),3维,竖向排列,图像序列也可以产生一个四维的数组,图像帧的序号在图像的长、宽、颜色深度之后构成第四维。一个包含了5幅
20、400300真彩色图像的序列,其大小为 40030035 一个包含了5幅400300灰度或是索引图像的序列,其大小为 40030015 A=cat(4,A1,A2,A3,A4,A5),4维 提取其中一帧(如第2帧)A(:,:,:,2),2.4.3 图像文件的读写和查询,imread:读取图形文件格式的图像;imwrite:写入图形文件格式的图像;imfinfo:获取图像的信息;loadsave:以Mat文件加载或保存矩阵数据;imshow:显示加载到Matlab中的图像。,利用函数imread可以完成图形图像文件的读取操作,其语法如下,一般:A=imread(filename,fmt)索引图像
21、:X,map=imread(filename,fmt),X,map=imread(m83.tif,tif),1.图形图像文件的读取,imread函数可以从任何Matlab 支持的图形文件中以特定的位宽读取图像。通常情况下,读取的大多数图像均为8bit。当这些图像加载到内存中时,Matlab就将其存储在类uint8中。对于索引图像来说,即使图像阵列的本身为uint8或uint16,imread函数仍然将颜色映像表读取并存储到一个双精度的浮点类型的阵列中。,注意,2.图形图像文件的写入(保存),利用imwrite函数可以完成图形图像文件的写入操作,其语法为:imwrite(A,filename,f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 02 Matlab 图像 工具箱

链接地址:https://www.31ppt.com/p-6576865.html