300 likes | 613 Views
ISBN7-5084-2930-3. 新世纪电子信息与自动化系列课程改革教材. 数字图像处理与分析基础. 第四章 Matlab 图像处理基础. 黄爱民 安向京 骆力. 中国水利水电出版社. 主要内容. MALTLAB 概述 MATLAB 使用中需要注意的问题 MATLAB 图像处理工具箱 MATLAB 图形接口( GUI )简介. 4.1 Matlab 概述. 1 、 MATLAB 2 、语言特点 3 、 Matlab 软件构成 4 、主要功能. 4.1.1 什么是 Matlab.
E N D
ISBN7-5084-2930-3 • 新世纪电子信息与自动化系列课程改革教材 数字图像处理与分析基础 第四章 Matlab图像处理基础 • 黄爱民 安向京 骆力 • 中国水利水电出版社 数字图像处理与分析基础
主要内容 • MALTLAB概述 • MATLAB使用中需要注意的问题 • MATLAB图像处理工具箱 • MATLAB图形接口(GUI)简介 数字图像处理与分析基础
4.1 Matlab概述 • 1、MATLAB • 2、语言特点 • 3、Matlab软件构成 • 4、主要功能 数字图像处理与分析基础
4.1.1什么是Matlab • 美国新墨西哥大学Cleve. Moler博士,20世纪70年代后期,Linpack 和Eispic的接口程序 ,Linpack是解线性方程的Fortran程序库,Eispic是解特征值问题的Fortran程序库 。 • 接口程序命名为MATLAB(即matrix和laboratory的前三个字母的组合,意思是“矩阵实验室”)。 数字图像处理与分析基础
4.1.2MATLAB的特点 • 界面友好,编程效率高 • 语法规则更简单,编程特点更贴近人的思维,问题的提出和解答只需要用数学方式表达和描述 • 功能强大 • 集成了数值分析、矩阵计算、信号处理和图形显示等众多的功能 数字图像处理与分析基础
特点 • 开放性、易扩展性 • 所有的程序都不需要使用低层代码来编写 • 许多新的软件包都是使用者提供的 • 目前随着应用领域的扩大和爱好者的增加,它的功能越来越强大 数字图像处理与分析基础
4.1.3 Matlab系统的构成 • 主包、SIMULINK以及应用程序构成 • Matlab系统(主包)包括五个部分 • Matlab语言 • Matlab工作环境 • MATLAB图形处理系统 • Matlab数学函数库 • Matlab应用程序接口 数字图像处理与分析基础
1、MATLAB语言 • 一种高级矩阵语言 • 带有独特的数据结构、输入输出、流程控制语句和函数,并且是面向对象的高级语言。 • 在工程计算方面具有无可比拟的优异性能。 • 它集计算、数据可视化和程序设计于一体 • 能将问题和解决方案以用户熟悉的数学符号表示出来 数字图像处理与分析基础
2、Matlab工作环境 • 命令窗口 • 是MATLAB提供给用户的操作界面,在命令窗口中,用户可以实现MATLAB的各种功能。 • M文件编辑器(M文件是MATLAB所特有的使用该语言编写的磁盘文件) • 是MATLAB为用户提供的用于编辑M文件的程序 • M文件调试器 • 用于调试M文件的程序。 • MATLAB工作空间 • 显示用户在MATLAB中通过命令行进行操作的变量集合的窗口。 • 在线帮助文档 数字图像处理与分析基础
3、MATLAB图形处理系统 • 形处理系统提供图形处理功能,用于工程计算结果的可视化。 • 绘制二维图形 • 绘制三维图形及交互式观看 • 定制图形用户界面 数字图像处理与分析基础
4、Matlab数学函数库 • 既有求和、正余弦计算等简单函数,也有“线性代数”中常见的各种矩阵运算、信号分析中的快速傅立叶变换等复杂函数。 • MATLAB数学函数通过两种方式提供给用户: • (1)内部函数 • MATLAB内部数学函数是一些简单的函数,直接内置于MATLAB核心中,执行效率较高。 • (2)以M文件的形式提供的函数 • 这种形式便于MATLAB不断增强功能,能够运用于越来越多的领域。 • 执行效率相对低 数字图像处理与分析基础
5、Matlab应用程序接口 • (API)是一个让MATLAB语言同C 、Fortran等其它高级语言进行交互的函数库,通过动态连接来读写MATLAB文件。 • (1)从MATLAB中调用C和Fortran程序; • (2)从MATLAB中输入和输出数据; • (3)在MATLAB和其它应用程序间建立客户/服务器关系 数字图像处理与分析基础
4.2 MATLAB使用中需注意的问题 • MATLAB的数据类型 • MATLAB的基本编程 数字图像处理与分析基础
4.2.1 Matlab的数据类型 • 可运算的数据只有两种 • 字符型(uint8),即为无符号数 • 双精度型 • 存储型 • 只能存储数据,而不能参与数学运算 • int8、uint8、int16、uint16、int32、uint32等,。 • 在基本数据类型的基础上,可以构建单元数组和结构。 数字图像处理与分析基础
1、矩阵的生成 • 用于乘法运算的初始矩阵通常赋成“1”矩阵; • 用于加法运算的初始矩阵,通常赋成“0”矩阵。 数字图像处理与分析基础
0矩阵与数组 (1)0矩阵(矩阵或数组的所有元素为0)的生成: A=zeros(n), 生成一个n个元素均为0的行矢量A; A=zeros(m,n), 生成一个m行n列的元素均为0的矩阵A,或用A=zeros([m n]); A=zeros(d1,d2,d3,…)返回一个维数为d1d2d3…的所有元素为0的数组,或用A=zeros([d1 d2 d3 …]); A=zeros(size(B)),生成一个全0的矩阵A,它的尺寸与另一个矩阵B一致。 数字图像处理与分析基础
0数组与矩阵 X=zeros(3) X= 0 0 0 X=zeros(3,4) X= 0 0 0 0 0 0 0 0 0 0 0 0 数字图像处理与分析基础
“1”矩阵或数组 (2)1矩阵(矩阵或数组的所有元素为1)的生成: A=ones(n), 生成一个n个元素均为1的行矢量A; A=ones(m,n), 生成一个m行n列的元素均为1的矩阵A,或用A=ones([m n]); A=ones(d1,d2,d3,…)返回一个维数为d1d2d3…的所有元素为1的数组,或用A=ones([d1 d2 d3 …]); A=ones(size(B)),生成一个全1的矩阵A,它的尺寸与另一个矩阵B一致。 数字图像处理与分析基础
1矩阵与数组 A=ones(3,3,2) A(:,:,1)= 1 1 1 1 1 1 1 1 1 A(:,:,2)= 1 1 1 1 1 1 1 1 1 数字图像处理与分析基础
2.5.3.3 Matlab的图像处理功能 • 1、支持多种类型的图像文件以及各种类型文件的互相转换 • 2、多种图像空间表示 • 3、多种数字图像文件 • 4、方便的数字图像输入/输出 • 5、提供图像的矩阵表示及正交变换 • 6、图像增强 • 7、滤波器设计 • 8、二值图像分析 数字图像处理与分析基础
1、支持多种类型的图像文件及各种类型文件的转换1、支持多种类型的图像文件及各种类型文件的转换 • 支持四种基本图像类型 : • 索引图像:图像矩阵与颜色图数组 , Colormap=[R G B] • 灰度图像 : double,值域 [0,1]; uint8类型,值域 [0,255] • 二进制图像:(0,1) • RGB图像 :图像数组为m×n×3,m,n表示图像象素的行列数 • 与时间有关的图像序列 :帧 , m×n×3×f,m,n表示图像象素的行列数,f表示帧数 , cat( ) 数字图像处理与分析基础
提供三种颜色空间的转换以及四种图像类型的转换 • HSV值与RGB颜色空间的相互转换: hsv2rgb(),rgb2hsv() • NTSC值与RGB颜色空间相互转换: ntsc2rgb(),rgb2ntsc() • 灰度图像与索引图像的相互转换: gray2ind(),ind2gray() • RGB图像转换为灰度图像:rgb2gray() • RGB图像与索引图像相互转换 : rgb2ind(),ind2rgb() • 将图像转换为二进制图像 :im2bw() • 从灰度图像产生索引图像:grayslice( ) • 判断图像类型函数 : isbw(),isrgb(),isind(),isgray() • 矩阵转换为灰度图像函数:mat2gray() 数字图像处理与分析基础
2、方便的数字图像输入/输出 • 图像输入/输出函数为imread( )、 imwrite( ):BMP、HDF、JPEG、PCX、TIFF、XWD等格式 • 查看图像文件信息:imfinfo( ) • mat文件:将内存中的图像用save命令以mat文件形式保存到磁盘中,随时可用load命令调用。 数字图像处理与分析基础
3、方便的图像显示 • 颜色条显示:colorbar( ) • 从轴上获取图像数据函数:getimage( ) • 显示图像:image( )、subimage( ) 、imshow( ) • 调整数据并显示成图像函数:imagesc( ) • 从多帧索引图像中制作电影:immovie( ) • 调整图像显示大小:truesize( ) • 显示图像为纹理表面:warp( ) • 二维图像放大或缩小命令:zoom( ) 数字图像处理与分析基础
4、图像的矩阵表示及正交变换 • 图像的矩阵表示和向量表示 : 数字图像处理与分析基础
相关函数 • 图像象素值及其统计 • 图像像素值 :impixel() 、improfile() 、imcontor() 、imhist() • 一般统计特性:均值mean2(),标准差std2(),相关系数corr2() • 图像矩阵运算 :秩 、范数 、特征值、特征向量、特征多项式 、逆矩阵或伪(广义)逆矩阵 、非线性运算 • 图像的正交变换 :Fourier、 Hadamard、 DCT等 数字图像处理与分析基础
5、图像增强 • (1)增强图像的对比度,改善视觉效果的算法: • imadjust( ) 、brighten( ) 、histeq( ) • (2)去除图像噪声的平滑滤波算法: • imnoise( ) 、medfilt2( ) 、ordfilt2( ) 、wiener2() • (3) 增强图像边缘的锐化算法; • (4)提供了与图像处理有关的二维线性滤波器及其设计方法 : • conv2( ) 、convmtx2( ) 、convn( ) 、filter( ) 、fspecial( ) 、freqspace( ) 、freqz2( ) 、fsamp2( ) 、ftrans2( ) 、fwind1( ) 、fwind2( ) 数字图像处理与分析基础
6、数字图像操作与分析(1/3) • (1)二进制图像操作 : • 构造查找表:makelut() • 使用查找表进行邻域操作:applylut() • 计算二进制图像中的物体区域:bwarea() • 计算二进制图像的Euler数:bweuler() • 二进制图像的背景区域填充:bwfill() • 标志二进制图像中的相连成分:bwlabel() • 二进制图像形态运算 :bwmorph () • 二进制图像腐蚀:erode() • 二进制图像膨胀:dilate() • 确定二进制图像中的物体二进制图像扩大:bwselect( ) 数字图像处理与分析基础
6、数字图像操作与分析(2/3) • (2)颜色图操作 • 使颜色图变成更亮或更暗的图: brighten() • 重新排列颜色图中的颜色: cmpermute() • 寻找符合图像的独特的颜色图的颜色: cmunique() • 设置或获取颜色查找表: colormap() • 由较少颜色的图像近似索引图像: imapprox() • (3)图像邻域及块操作 • 选择块处理的块大小: bestblk() • 对图像实施不同的块处理: blkproc() • 重新安排矩阵列到图像块: col2im() • 使用列方向函数执行邻域运算;colfilt() • 重新安排图像块到矩阵列: im2col() • 进行一般邻域运算: nfilter() 数字图像处理与分析基础
6、数字图像操作与分析(3/3) • (4)基于区域图像处理 • 依据颜色选择要处理的区域roicolor() • 在任意区域内平滑插值roifill() • 对一特殊区域进行滤波roifilt2() • 选择要处理的多边形区域roipoly() • (5)图像分析 • 检测灰度图形的边缘edge() • 执行四叉树分解qtdecomp() • 获取四叉树分解块值qtgetblk() • 设置四叉树分解块值qtsetblk() • (6)图像几何运算 • 图像裁减imcrop() • 图像大小调整imresize()、 imrotate()、 interp2() 数字图像处理与分析基础