基于MATLAB图像处理(第2版)讲稿

上传人:ali****an 文档编号:121768732 上传时间:2020-02-25 格式:PPT 页数:209 大小:5.05MB
返回 下载 相关 举报
基于MATLAB图像处理(第2版)讲稿_第1页
第1页 / 共209页
基于MATLAB图像处理(第2版)讲稿_第2页
第2页 / 共209页
基于MATLAB图像处理(第2版)讲稿_第3页
第3页 / 共209页
基于MATLAB图像处理(第2版)讲稿_第4页
第4页 / 共209页
基于MATLAB图像处理(第2版)讲稿_第5页
第5页 / 共209页
点击查看更多>>
资源描述

《基于MATLAB图像处理(第2版)讲稿》由会员分享,可在线阅读,更多相关《基于MATLAB图像处理(第2版)讲稿(209页珍藏版)》请在金锄头文库上搜索。

1、基于MATLAB的图像处理 于万波 关于图像等 图像研究有着重要的实际应用价值与理论研究价值图像的研究正在继续 国际上有很多有关图像研究的期刊 专著 各种图像相关的产品不断问世本书使用MATLAB作为工具讲解图像处理的基本原理与基本方法学习时要坚持上机操作 坚持思考 第1章图像 1 1Matlab的命令使用与程序设计1 1 2M File程序设计1 1 3Figure窗口的图形操作功能1 1 4自定义函数1 1 5Matlab的矩阵操作1 1 6多维数组与图像矩阵 1 2图像的表示方法1 2 1图像的数字化1 2 2图像的读取与显示1 2 3图像的分类 2 图像的数字化在计算机中 图像被看作是

2、一些数值构成的矩阵 例如图1 7所示数据就代表着图像 s size A 则有s 22223说明图像的长为22 宽为22 由3种颜色迭加而成 下面是其红色阵的数据 1到15列 2 图像数据的调用既然图像数据是存储在数组中 那么调用图像数据就变成了操作数组元素 例如 B A 1 5 1 9 1 B 2212212212212212212212212212212342342342342342342342342212342342342342342342342342212342342342342344442212342342342344000调用红色阵的1到5行 1到9列 函数imshow 可以把任意的

3、二维数组 矩阵 显示成为图像 另外 函数imview image imagesc 也可以用来显示图像 1 基于颜色表示的图像分类 1 灰度图像灰度图像对应着一个数据矩阵 二维数组 数组元素的值表示图像在该位置上的亮度值 一般常用数值0表示黑色 255表示白色 用0到255之间的数表示灰 亮 度 下面程序使用getframe函数装载这几幅图像 使用movie函数播放这几幅图像就是完成了一个动画制作 fori 1 3k int2str i k1 strcat e k jpg a1 imread k1 image a1 m i getframe endmovie m 10 第2章图像几何操作与代数运

4、算 2 1图像的缩放旋转与裁剪2 2图像的几何变换2 3图像的加减乘除运算2 4图像的特征值与奇异值2 5图像逻辑运算 2 1图像的缩放旋转与裁剪 2 1 1图像的裁剪2 1 2图像的缩放2 1 3图像的旋转 1 imcrop函数该函数有两个参数 一个用来指定裁剪图像 一个用来定义裁剪矩形 例2 1 使用imcrop函数对图像进行裁剪 编写如下程序 A imread D imageprocess IMG 7354 jpg A1 imcrop A 190 100 290 220 subplot 1 2 1 imshow A subplot 1 2 2 imshow A1 程序运行结果如图2 1所

5、示 imcrop函数中的参数 190 100 290 220 的含义是以图像上的 190 100 点为裁剪矩形的左上角坐标 裁剪矩形的宽为290 高为220 3 Matlab函数roipolyMatlab中提供了定义多边形区域的函数roipoly 可以使用该函数定义多边形区域 然后实行裁剪操作 例2 2 使用roipoly函数选取图像块 I imread D 125 jpg subplot 1 2 1 imshow I C1 103080 C2 2010068 BW roipoly I C1 C2 subplot 1 2 2 imshow BW 程序运行结果如图2 3所示 2 1 2图像的缩放

6、图像的缩放也是经常使用的一种操作 在图像缩放过程中 涉及到图像数据的删除与增加 特别是图像放大的时候 需要考虑如何在扩大后的空隙中加入新的图像颜色数据 增加颜色数据的主要方法是根据周围相近象素的颜色值进行插值计算 1 imresize函数缩放图像 例2 5 使用imresize函数缩小或放大图像 下面程序把图像缩小到原来的0 5倍 c imread D earth jpg c2 imresize c 0 5 imshow c2 下面程序把原图像变成100行100列图像 行数增加 使用插值函数完成颜色的填补 c imread D earth jpg c2 imresize c 100 100 i

7、mshow c2 2 三种插值方法图像放大后 需要增加像素 计算新增加的像素颜色值一般使用插值的方法 常用的插值方法有 最近邻插值方法 双线性插值方法 双立方插值方法等 Imresize函数就使用这三种插值方法 2 1 3图像的旋转Matlab使用imrotate函数旋转图像 例如 使用下面命令段可以把图像逆时针旋转30度 B imread saturn tif imshow B figure imrotate B 30 crop 这几句命令绘制出图2 7 a 与 b 图 参数 crop 是旋转的时候图像底板大小保持不变 图像大小也保持不变 例2 10 使用imrotate函数旋转图像 制作动

8、画效果 编写如下程序 可以制作出动画效果 I imread D imageprocess LenaCircle PNG fori 1 10imrotate I 36 i crop end随着i的每次增加 图像依次逆时针旋转36度 72度 直到300度 旋转时的中间结果如图2 8所示 2 2图像的几何变换 2 2 1画图软件中的图像扭曲2 2 2图像二维空间变换 例2 11 使用imtransform函数实现图像平面扭曲功能 T maketform affine 500 510 001 I imread cameraman tif I2 imtransform I T subplot 1 2 1

9、 imshow I subplot 1 2 2 imshow I2 程序的运行结果如图2 10所示 2 3图像的加减乘除运算 2 3 1图像加减运算2 3 2图像的乘除运算 例2 14 设计矩阵进行图像加减运算 A imread D 0045 jpg s size A s 1 s 2 B double A Q1 zeros s 1 s 2 Q1大小与A一致Q2 zeros s 1 s 2 form s 1 1 1 从s 1 到1 每次减1forn s 2 1 1Q1 m n m Q2 m n n endendC 1 B 1 C 2 B 2 Q2 C 3 B 3 Q1 3 例2 17 观察分析图

10、像矩阵乘以或除以常数后图像亮度的改变 设计下面程序 程序运行结果是图2 18 A imread D 0010 jpg A1 double A A2 A1 1 5 A3 A1 1 5 A2 uint8 A2 A3 uint8 A3 subplot 1 3 1 imshow A subplot 1 3 2 imshow A2 subplot 1 3 3 imshow A3 图像矩阵与图像矩阵进行逐元素对应乘除运算 例2 18 利用矩阵对应相乘把两个图像合成在一起 A imread D 0045 jpg B imread D 0041 jpg s size A m s 1 n s 2 B1 imre

11、size B mn A double A C double B1 D A C 128 D uint8 D subplot 1 3 1 imshow uint8 A subplot 1 3 2 imshow B subplot 1 3 3 imshow D 两个图像矩阵按照数学上定义的乘法进行运算 2 4图像的特征值与奇异值 2 4 1图像矩阵的特征值2 4 2图像矩阵的奇异值 1图像矩阵特征值矩阵特征值是这样定义的 设A是 nn 矩阵 如果数 与n维非零向量X满足方程则称数 为矩阵A的特征值 称非零向量X为矩阵A的特征向量 在计算数学中 一般用迭代的方法求取矩阵的特征值 Matlab提供了求取

12、特征值的函数eig A 其中A是参数 是要求取特征值的矩阵 设计下面程序段 A imread D shizi1 bmp A1 rgb2gray A A2 double A1 T eig A2 T 运行程序后 得到灰度矩阵A1的特征值数据 使用下面程序可以求出并且在命令窗口显示出图像的特征向量 A imread D shizi1 bmp A1 rgb2gray A A2 double A1 GT eig A2 G变量G中存储的就是灰度图像A1的特征向量 例2 23 求图像矩阵的奇异值 下面程序是求图像shizi1 bmp的灰度矩阵的奇异值 A imread D shizi1 bmp A1 rgb

13、2gray A A2 double A1 T svd A2 T 2 5图像逻辑运算 2 5 1二值图像逻辑运算 例2 27 对二值图像实施与 或 非 异或运算 A1 imread D 1 bmp A2 imread D 11 bmp A3 imread D 0 bmp A4 imread D 00 bmp B1 im2bw A1 B2 im2bw A2 B3 im2bw A3 B4 im2bw A4 C1 B1imshow C4 程序运行结果如图2 28所示 第3章图像空间域处理与邻域操作 3 1图像增强3 2图像的邻域操作3 3图像滤波函数及工作原理3 4图像膨胀与腐蚀 3 1图像增强 3

14、1 1灰度调整3 1 2灰度调整函数3 1 3彩色图像增强 统计每个颜色值的点的个数 即直方图统计的目的是为了确定增强的参数设置A imread pout tif A1 floor double A s size A1 N zeros 256 fori 1 s 1 forj 1 s 2 k A1 i j N k 1 N k 1 1 endendbar N 事实上 Matlab提供了函数imadjust histeq adapthiteq brighten等进行灰度调整 可以在以后的研究工作中直接使用Matlab中这些函数调整图像灰度 颜色 对比度 1 imadjust函数函数imadjust可

15、以将图像的灰度值调整到一个指定的范围 实现类似例3 3的功能 以增强图像的明暗对比 例3 4 使用函数imadjust对图像进行灰度调整 编写如下程序 A1 imread pout tif B1 imadjust A1 0 20 5 0 1 A2 imread cameraman tif B2 imadjust A2 0 0 2 0 5 1 subplot 1 4 1 imshow A1 subplot 1 4 2 imshow B1 subplot 1 4 3 imshow A2 subplot 1 4 4 imshow B2 程序的运行结果如图3 4所示 2 stretchlim函数函数s

16、tretchlim A 是用来计算灰度矩阵A的最佳输入区间 即imadjust I LOW INHIGH IN LOW OUTHIGH OUT 中的第2个参数 LOW INHIGH IN 所谓最佳是指按照这个区间输入的话 图像的灰度对比度最大 例如 使用该函数计算例3 3中使用的图像的最佳输入区间为 0 30590 6314 cameraman tif 的最佳输入区间为 0 03530 8039 而下面例题3 5中的图像 D imageprocess IMG 7420 jpg 的最佳截取输入区间为 0 16080 6941 3 histeq函数函数histeq能够自动完成图像灰度调整 一般用来增强图像的灰度对比度 例3 6 使用函数histeq增强图像灰度对比度 使用下面程序能够得到图3 9所示效果 I imread tire tif J histeq I subplot 1 2 1 imshow I subplot 1 2 2 imshow J 4 brighten函数 例3 7 使用函数brighten增加灰度图像的亮度 设计下面程序 J imread D imageprocess

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号