《MATLAB实》PPT课件.ppt

上传人:san****019 文档编号:7348920 上传时间:2020-03-20 格式:PPT 页数:73 大小:1.66MB
返回 下载 相关 举报
《MATLAB实》PPT课件.ppt_第1页
第1页 / 共73页
《MATLAB实》PPT课件.ppt_第2页
第2页 / 共73页
《MATLAB实》PPT课件.ppt_第3页
第3页 / 共73页
点击查看更多>>
资源描述
2 MATLAB图像处理 2 1图像文件的读写和显示在MATLAB中 图像文件的读取 写入及显示等都可通过调用函数来实现 常见的函数有 1 表1 续 图像文件的读写与显示函数 n 1 图像文件的读取使用函数imread 可以完成图像文件的读取操作 其语法格式有以下几种 说明 该函数可以从MATLAB支持的任何图像文件中以特定的位宽读取图像 一般图像是8位的 就将其存在unit8类中 如果是16位的TIFF图像 就将其保存在unit16中 例1 读取图像cameraman tif X imread cameraman tif 例2 当文件不在MATLAB路径下时 f imread D myimages chestxray jpg 2 图像文件的写入使用函数imwrite 可以完成图像文件的写入操作 其语法格式有以下几种 例 实现图像的写入即图像保存 imwrite X man jpg jpg 3 图像的显示MATLAB7 0中显示图像的方式有两种 使用MATLAB浏览器 使用通用图形图像视窗 使用图像浏览器 ImageViewer 通过调用imview函数实现 语法格式 imview 文件名 例 在MATLAB工作窗口中显示一幅图像moonfig imread moon tif imview moonfig 该文件在当前路径下 图像浏览器的基本功能 窗口中具有提供图像大小信息 图像像素值范围 鼠标所在位置的像素值 图像放大和缩小 图像的区域选择等功能 通用图形图像视窗使用函数image 实现显示图像 注意 函数image 为自动设置图像窗口 坐标轴和图像属性 即MATLAB自动对图像进行缩放以适合显示区域 1 可用truesize函数来设定图像像素到屏幕像点的映射关系来更改图像显示大小 2 有时可能需要显示的纵横比和图形数据矩阵的纵横比相匹配 这时可以使用axisimage命令 上图 例 a 默认纵横比下的地球图 b 纵横比为1 1的地球图 image 函数的语法格式 显示加载到MATLAB中的索引图像 image X colormap map X和map是索引图像的参数 X为数据矩阵 map为颜色矩阵 显示加载到MATLAB中的灰度图像 imagesc I 0n colormap gray 说明 I为灰度图像的数据矩阵 表示灰度图像的灰度范围 n为整数 如256 128等 系统默认值为256 有些系统为64 显示加载到MATLAB中的RGB图像 image RGB 例 RGB imread flowers tif image RGB 函数imshow 的语法格式 imshow X map 用于显示索引图像 它将矩阵X中的每个像素显示为存储在颜色影像表map中相应的行所对应的颜色 函数imshow 的语法格式 imshow I n 用于显示灰度图像 其中I是灰度图的数据矩阵 n表示灰度级 是整数 如果n默认 则为256或64级灰度 当n为2时就变成二值图像 例 A imread filename fmt imshow A 或imshow filename fmt 该文件在当前目录下 imshow RGB 用于显示RGB图像 imshowfilename 用于显示可以通过imread函数读取的图形文件的图像 该图像必须在当前目录或MATLAB目录下 subimage和subplot函数结合使用可以在同一窗口中显多幅图像 即使它们的图像类型不同 subimage 语法格式如下 subimage X map 显示索引图像 subimage I 显示灰度图像 subimage RGB 显示真彩图像RGB 例 在同一个窗口中显示两幅图像 其中一幅是索引图像 文件名为 woman mat 另一幅是RGB图像 文件名 lily tif 并进行标注 x map imread woman mat 2 2MATLAB中的图像类型1 图像处理工具箱支持的基本图像类型图像处理工具箱支持的图像分为四个基本类型 索引图像 灰度图像 二值图像和RGB图像 索引图像 索引图像包括一个数据矩阵 I 和一个颜色影像表矩阵 Map Map矩阵是一个3列若干行的数据阵列 其每一行分别表示红色 绿色和蓝色的颜色值 其值由 0 1 之间的浮点值构成 图像中的像素颜色由数据矩阵I作为索引指向矩阵Map进行索引 例如 数据矩阵中的值1指向颜色矩阵Map中的第一行 2指向第二行等 颜色矩阵表通常和索引图像存储在一起 当用户调用函数imread时 MATLAB自动将颜色映射表与图像同时加载 颜色映射表可以使用属性CDataMapping来选择 也可以由用户自定义 如不选择即为默认值 索引图像 显示一幅索引图像的代码 image I colormap map 索引图像 例 灰度图像是一个数据矩阵I 每个元素代表一个像素 I的数据表示在一定范围内的灰度值 I可以是双精度浮点型 其值域为 0 0 1 0 也可以是unit8类型 其值域为 0 256 代码显示一幅灰度图像 imagesc I 0 256 colormap gray 例 将灰度图像 blood1 tif 的256灰度级的灰度图像和64灰度级的灰度图像显示在同一个窗口中 两条语句实现显示功能 灰度图像 图像只包含一个由0和1构成的矩阵 可以保存为双精度double或unit8类型的数组 其显示方式与灰度或索引图像类似 RGB图像 RGB图像在MATLAB中存储为一个n m 3的三维数据数组 数组中的元素定义了每一个像素的红 绿 蓝颜色值 因此像素的颜色由保存在像素位置上的红 绿 蓝的强度值的组合来确定 数组可以是双精度浮点型或unit8类型的数组 n m分别为图像的行列数 二值图像 例 RGB imread tree tif image RGB 用代码显示一幅RGB图像 image RGB 2 图像类型的转换MATLAB有对四种基本类型的转换函数 在MATLAB中 各种图像类型之间的转换关系如图 例 将索引图像 woman 转换为灰度图像 在一个窗口中显示两幅图像并进行标注 索引图像转换为灰度图像的函数ind2gray 其语法格式为 I ind2gray X map 将具有颜色图map的索引图像X转换为灰度图像I X可以是双精度型或unit8型 I是双精度型 索引图像转换为RGB图像的函数ind2rgb 其语法格式为 RGB ind2rgb X map 将具有颜色图map的索引图像X转换为彩色图像RGB RGB图像转换为索引图像的函数rgb2ind 其语法格式有五种 X map rgb2ind RGB 直接将RGB图像转换为具有颜色图map的矩阵X X map rgb2ind RGB tol 用均匀量化的方法将RGB图像转换为索引图像X tol的范围从0 0到1 0 X map rgb2ind RGB n 使用最小方差量化方法将RGB图像转换为索引图像X map中包括至少n个颜色 X rgb2ind RGB map 将RGB中的颜色与颜色图map中最相近的颜色匹配 将RGB转换为具有MAP颜色图的索引图 例 下图 实例 RGB图像转换为灰度图像的函数rgb2gray 语法格式有 I rgb2gray RGB 表示将输入的RGB图像转换为灰度图像 newmap rgb2gray map 表示将输入的颜色图map返回一个等价的灰度图 转换为二值图像的函数im2bw 该函数通过阈值化方法将索引 灰度和RGB图像转换为二值图像 其语法格式为 BW im2bw I map level 将颜色图为map的索引图像I转换为二值图像 BW im2bw I level 将灰度图像I转换为二值图像 BW im2bw RGB level 将RGB图像转换为二值图像 彩色 二值索引 二值 注意 如果输入图像不是灰度图像可以先将其转换为灰度图 再通过阈值化的方法将灰度图转换为二值图 例 loadwoman BW im2bw X map 0 5 imshow BW 程序运行结果如图 灰度图像转换为索引图像的函数gray2ind 其语法格式为 X map gray2ind I n 按指定的灰度级n将灰度图像I转换成索引图像X n的默认值是64 灰度图像转换为索引图像的函数grayslice X grayslice I n 将灰度图像I均匀量化为n个等级 然后转换为索引图像X X grayslice I v 按指定的阈值矢量v 其每个元素都在0和1之间 对图像I的值域进行划分 然后转换成索引图像 指定一幅彩色图的方法 1 利用函数imapprox 其语法格式为 Y newmap imapprox X map n 该函数利用彩色映射newmap返回一个数组Y 该数组最多有n种颜色 输入数组X可以是uint8 uint16或double类型 2 指定彩色映射行 map k r k g k b k 其中 r k g k b k 是RGB值 取值范围为 0 1 它指定彩色映射的一行 变化k值就可将图填满 将数据矩阵转换成一幅灰度图像的函数 Mat2gray函数其调用格式如下 I mat2gray A amin amax amin amax 为数据矩阵A的取值区间 amin对应灰度值0 amax对应灰度值1 如果不指定区间 则MATLAB自动将A中的最小元素设为0 最大元素设为1 另外 输入矩阵A与输出矩阵I都为double类型 2 4用MATLAB实现图像处理中的正交变换1 快速傅里叶变换离散傅里叶变换是图像处理中的重要工具 但是计算量较大 运算时间长 快速傅里叶变换 FFT 大大提高了运算速度 MATLAB提供了用于图像处理的傅里叶变换函数 fft2 用来计算二维快速傅里叶变换 其语法格式为 F fft2 f 返回图像f的二维fft变换矩阵 F和f的大小一致 F fft2 f m n 截去或补充0元素 使图像的大小为m n 然后对其进行二维fft F的大小也为m n 说明 为了观察图像傅里叶变换后的结果 应对变换后的结果求模 若亮度不合适 还应改变灰度值的范围 例 ifft2 ifft2是fft2的反变换 其语法格式为 F ifft2 f 返回矩阵f的二维反变换矩阵 输入矩阵f和输出矩阵F的大小相同 F ifft2 f m n 通过对f的剪切补零 按指定的点数m n计算二维傅里叶变换的反变换 返回矩阵的大小也为m n 其结果可能带有小的虚部 例 利用傅里叶变换实现快速卷积两个函数卷积的傅里叶变换等于两个函数的傅里叶变换的乘积 设A为m n矩阵 B为p q矩阵 则快速计算卷积的步骤为 1 对A和B补0 使其大小都为 m p 1 n q 1 2 利用fft2对矩阵A和B进行二维FFT变换 3 将两个fft2的结果相乘 利用ifft2对得到的乘积进行傅里叶反变换 生成一个 魔术方阵 方阵中每一行 每一列和主对角线中的元素之和均相等 常用于测试目的 fftn 计算多维傅里叶变换的函数 其语法格式为 F fftn f 计算函数f的n维傅里叶变换 F和f大小一样 F fftn f size 计算函数f的n维傅里叶变换 并且当f的大小小于size时 对f进行补零 大于size时进行截取 使其大小与size一致 ifftn 是fftn的反变换 其语法格式为 f ifftn F 计算函数f的n维傅里叶反变换 F和f的大小一样 f ifftn F size 计算函数F的傅里叶反变换 同时要对F进行相应的补充和截去零元素 2 离散余弦变换 DCT 离散余弦变换是图像压缩处理中应用较多的一种变换 MATLAB图像处理工具箱中提供两种用于图像处理的DCT变换函数 dct2 使用一个基于FFT的算法来提高输入输出速度 特别适合于比较大的输入矩阵 其语法格式为 B dct2 A 计算图像的二维DCT变换前后的图像大小相同 B dct2 A m n 通过补零和截去元素 使得A成为m n大小的矩阵 变换结果B与A的大小一样 例 利用dct2求一幅图像的DCT变换系数 实例 idct2 是dct的反变换 其语法格式与dct2相同 dctmtx 返回DCT变换矩阵 比较适合较小的矩阵 其语法格式为 B dctmtx N 其中 N一般为8或16 即返回矩阵大小为8 8或16 16的方阵 对于较大的矩阵可以用分块DCT变换来实现 例 利用DCT变换 将DCT变换值小于10的系数设为0 然后利用idct2函数重构图像 3 离散小波变换小波分析与傅里叶变换相比 小波变换是空间 时间 和频率的局部变换 因而能有效地从信号中提取信息 通过伸缩和平移等运算功能可以对函数或信号进行多尺度的细化分析 最终达到高频处时间细分 低频处频率细分 离散小波的实现最终是通过与小波相应的高 低 通滤波器来完成的 通过对图像的高低通滤波可以将图像分解为对应不同尺度的近似分量 低频分量 和细节分量 高频分量 如示意图所示 小波分解示意图 MATLAB中用于图像处理的小波变换函数dwt2 二维离散小波变换函数 其语法格式是 CA CH CV CD dwt2 X wname 使用小波基函数 wname 对图像X进行二维离散小波变换 CA CH CV CD分别为图像分解的近似分量 水平分量 垂直分量和细节分量 CA CH CV CD dwt2 X Lo D Hi D 使用指定的低通和高通滤波器组Lo D Hi D来对图像进行二维离散小波变换 idwt2 二维离散小波反变换 语法格式为 X idwt2 CA CH CV CD wname 利用小波分解得到的CA CH CV CD分量进行二维离散小波反变换得到的原始图像 wname 指定小波基函数 X idwt2 CA CH CV CD Lo R Hi R 利用小波分解得到的CA CH CV CD分量及指定的高通和低通滤波器组 进行小波反变换后得到的原始图像 例 利用dwt2对二维图像进行一阶离散小波变换 下图 注意 MATLAB小波工具箱只能处理线性 灰度级图像 单调颜色图的索引图像 wavedec2 对二维图像进行多层小波分解 其语法格式为 C S wavedet2 X N wname 使用指定的小波基函数 wname 对图像X进行N层二维离散小波分解 C S wavedet2 X N Lo D Hi D 使用指定的低通和高通滤波器组Lo D Hi D来对图像进行N层二维离散小波变换 其中 向量C double类 为计算出的小波变换系数C A N H N V N D N H 1 V 1 D 1 A H V D分别为近似系数 水平细节 垂直细节和对角细节系数 S为长度矢量矩阵 例 使用haar滤波器的FWT waverec2 用于二维信号的多层小波重构 其语法格式为 X waverec2 C S wname 利用二维小波分解得到的数据矩阵C和长度矢量矩阵S来重构原始图像 wname 为指定的小波基函数 X waverec2 C S Lo R Hi R Lo R Hi R为指定的重构滤波器组 appcoef2 提取二维信号小波分解的近似分量 其语法格式为 A appcoef2 C S wname N 利用二维离散小波分解函数wavedet2得到的多层小波分解结构C和S来提取信号第N层的近似分量 N的默认值为长度矩阵S的行数减去2 A appcoef2 C S Lo R Hi R N detcoef2 提取二维信号小波分解的细节分量 其语法格式为 HVD detcoef2 all C S N 利用小波分解函数wavedec2产生的多层小波分解结构C和S来提取信号第N层的细节分量 O指定细节分量的类型 当O h 时 重构水平细节分量 O v 时 重构垂直细节分量 O d 时重构对角细节分量 例 读入图像 对其进行二层小波分解 并分别提取第一层和第二层近似分量和细节分量 D detcoef2 O C S N 对索引图进行编码 设置和得到彩色映射 得到第二层的近似分量和细节分量如 b 图所示 图像的块操作对图像的一部分进行操作 常用的函数有选择处理块的大小 显示块操作等 bestblk 选择处理块的大小 其语法格式为 size bestblk m n k 对于m n的图像 函数返回进行块处理的最佳块大小 k是标量 制定块的行列最大值 其默认值为100 size是一个1 2的向量 指定块的行列维数 mb nb bestblk m n k 函数返回行列维数至 mb nb blkproc 函数 对图像实行不同的块操作 其语法格式为 B blkproc A m n fun 应用函数fun对图像A的每个不同的m n块进行处理 必要时对A的四周补0 fun可以是表达式 包含函数名的字符串等 B blkproc A m n fun p1 p2 传递附加参数p1 p2至fun B blkproc A m n mbordernborder fun 定义块周围的重叠边界 即将在原m n块的上下各扩展mborder行 左右各扩展nborder列 扩展后块的大小变为 m 2 mborder n 2 nborder 函数fun将对扩展后的块进行操作 例 利用DCT变换来实现图像的压缩
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!