matlab实现图像的放大及旋转.pdf

上传人:飞****9 文档编号:134041619 上传时间:2020-06-02 格式:PDF 页数:8 大小:359.74KB
返回 下载 相关 举报
matlab实现图像的放大及旋转.pdf_第1页
第1页 / 共8页
matlab实现图像的放大及旋转.pdf_第2页
第2页 / 共8页
matlab实现图像的放大及旋转.pdf_第3页
第3页 / 共8页
matlab实现图像的放大及旋转.pdf_第4页
第4页 / 共8页
matlab实现图像的放大及旋转.pdf_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《matlab实现图像的放大及旋转.pdf》由会员分享,可在线阅读,更多相关《matlab实现图像的放大及旋转.pdf(8页珍藏版)》请在金锄头文库上搜索。

1、实验三实验三 图像的几何操作图像的几何操作 一 一 图像的基本运算图像的基本运算 1 加法运算 图像相加一般用于对同一场景的多幅图像求平均效果 以便有效地降低具有叠加性质的 随机噪声 直接采集的图像品质一般都较好 不需要进行加法运算处理 但是对于那些经过 长距离模拟通信方式传送的图像 如卫星图像 这种处理是必不可少的 在 MATLAB7 0 中 如果要进行两幅图像的加法 或者给一幅图像加上一个常数 可以 调用 imadd 函数来实现 imadd 函数将某一幅输入图像的每一个像素值与另一幅图像相应的 像素值相加 返回相应的像素值之和作为输入图像 imadd 函数的调用格式可参考图像处理 的工具箱

2、 下面的程序可将图 1 两幅图像叠加在一起 叠加效果如图 2 所示 imshow rice png imshow cameraman tif I imread rice png J imread cameraman tif K imadd I J uint16 大小必须一样 imshow K 图 1 图 2 给图像的每一个像素加上一个常数可以使图像的亮度增加 例如以下程序示例的处理效 果如图 3 所示 I imread rice png J imadd I 50 subplot 1 2 1 imshow I subplot 1 2 2 imshow J 图 3 2 减法运算 图像减法也称为差分

3、方法 是一种常用于检测图像变化及运动物体的图像处理方法 图 像减法可以作为许多图像处理过程的准备步骤 例如 可以使用图像减法来检测一系列相同 场景图像的差异 图像减法与阈值化处理的综合使用通常是建立机器视觉系统最有效的方法 之一 当然 在利用图像减法处理图像时 往往需要考虑背景的更新机制 尽量补偿因天气 光线等因素对图像显示效果造成的影响 在 MATLAB7 0 中 使用 imsubtract 函数可以将一幅图像从另一幅图像中减去 或者从 一幅图像中减去一个常数 imsubtract 函数将一幅输入图像的像素值从另一幅输入图像相应 的像素值中减去 再将相应的像素值之差作为输出图像相应的像素值

4、以下的程序代码示例 首先根据原始图像生成其背景亮度图像 然后再从原始图像中将背景亮度图像减去 从而生 成如图 4 所示的图像 I imread rice png blocks blkproc I 32 32 min x 背景 background imresize blocks 256 256 bilinear Ip imsubtract I background imshow Ip 图 4 3 乘法运算 两幅图像进行乘法运算可以实现掩模操作 即屏蔽掉图像的某些部分 一幅图像乘以一 个常数通常被称为缩放 这是一种常见的图像处理操作 如果使用的缩放因数大于 1 那么 将增强图像的亮度 如果因数小

5、于 1 则会使图像变暗 缩放操作通常将产生比简单添加像素 便宜量自然得多的明暗效果 这是因为该操作能够更好的维持图像的相关对比度 此外 由 于时域的卷积或相关运算与频域的乘积运算对应 因此乘法运算有时也作为一种技巧来实现 卷积或相关处理 在 MATLAB7 0 中 可以使用 immultiply 函数实现两幅图像的乘法 immultiply 函数将 两幅图像相应的像素值进行元素对元素的乘法操作 并将乘法的运算结果作为输出图像相应 的像素值 例如 以下程序示例将使用给定的缩放因数对图 5 所示的图像进行缩放 从而得 到如图 6 所示的较为明亮的图像 I imread moon tif I16 u

6、int16 I J immultiply I16 I16 imshow I figure imshow J 图 5 缩放前 图 6 缩放后 4 除法运算 除法运算可用于校正成像设备的非线性影响 这在特殊形态的图像 如断层扫描等医 学图像 处理中经常用到 图像除法也可以用来检测两幅图像间的区别 但是除法操作给出 的是相应像素值的变化比率 而不是每个像素的绝对差异 因而图像除法操作也称为比率变 换 在 MATLAB7 0 中 可以使用 imdivide 函数进行两幅图像的除法 imdivide 函数对两幅 输入图像的所有相应像素执行元素对元素的除法操作 点除 并将得到的结果作为输出图 像的相应像素

7、值 以下程序代码示例将图 7 的两幅图进行除法操作 得到如图 8 所示的效果 图 I imread rice png blocks blkproc I 32 32 min x background imresize blocks 256 256 bilinear Ip imdivide I background imshow Ip 相除后 figure I imread rice png I16 uint16 I J immultiply I16 I16 subplot 1 2 1 imshow I subplot 1 2 2 imshow J 两张相除 a 图像一 b 图像二 图 7 两幅待

8、相除的图像 图 8 相除后的图像 二 图像的插值运算 MATLAB7 0 中的 imresize 函数和 imrotate 函数用于二维图像的差值运算 MATLAB7 0 的图像处理工具箱提供了 3 种插补方法 近邻 nearest neighbor 插值 双线性 bilinear 插值 双立方 bicubic 插值 这三种插补方法的运算方式基本类似 对于每种插补方法 为了确定插值像素点的数据 值 用户必须在输入图像中查找到与输出像素相应的点 但是上述三种插值方法的主要区别 在于其对像素点赋值内容的不同 对于近邻插值来说 输出像素的赋值为当前点的像素点 对于双线性插值来说 输出像素的赋值为 2

9、 2 矩阵所包含的有效点的加权平均值 对于双立方插值来说 输出像素的赋值为 4 4 矩阵所包含的有效点的加权平均值 三 调整图像的大小 改变图像的大小可用 imresize 函数来调整 imresize 函数主要特点有 可以指定输出图像的大小 可以指定插值方法 可以指定滤波器来阻止混淆 1 指定输出图像的大小 指定输出图像大小的方法有两种 一是指定放大因子 二是指定输出图像的维数 以下 程序代码示例用指定放大因子的方法说明 imresize 函数的使用用法 并将原图像放大了 1 25 倍 其效果如图 9 所示 a 改变前 b 改变后 图 9 图像大小改变前 后的效果对比 2 指定插值方法 在默

10、认的情况下 imresize 函数可用最近邻插值法来指定输出图像的像素值 当然 也 可以指定其他的插值方法 以下命令行用 imresize 函数指定了双线性插值方法 Y imresize X 100 150 bilinear 四 图像的旋转 可通过 imrotate 函数来旋转图像 imrotate 函数主要包括两个参数 需要旋转的图像和 旋转的角度 如果指定一个正的旋转角度 那么 imrotate 函数将使用指定的插值方法和旋转 角度将图像逆时针旋转 如果指定一个负值 那么将按顺时针方向旋转 如果命令中没有指 定插补方法 则函数采用默认的最近邻插补方法 例如以下的程序代码示例将 ic tif

11、 图像旋 转 35 其旋转效果如图 10 所示 I imread circuit tif J imrotate I 35 bilinear imshow I figure imshow J a 旋转前 b 旋转后 图 10 图像旋转前 后的显示效果比较 五 实验报告要求 1 说明利用 MATLAB 图像处理工具箱进行图像的加 减 乘 除处理的方法 2 作业 不调用函数 自行编写代码实现二维图像的放大与旋转并记录结果图像 提交 放大 基于像素放大原理 A imread C Documents and Settings Administrator 桌面 matlab logo tif B zero

12、s 320 320 x 1 2 for i 1 1 round x 107 for j 1 1 round x 122 B i j A round i x round j x end end imshow B 旋转 A imread C Documents and Settings Administrator 桌面 matlab logo tif y pi 6 角度 a zeros 107 122 矩阵 i for i 1 1 107 for j 1 1 122 a i j i end end aa zeros 107 122 i for i 1 1 107 for j 1 1 122 aa

13、i j round i cos y j sin y end end aa aa 61 调整 b zeros 107 122 矩阵 j for i 1 1 107 for j 1 1 122 b i j j end end bb zeros 107 122 j for i 1 1 107 for j 1 1 122 bb i j round i sin y j cos y end end G zeros 153 159 扩展画布 for i 1 1 107 for j 1 1 122 m aa i j n bb i j G m n A i j end end 去空穴 for m 2 1 152 for n 2 1 158 if G m n 0 G m n G m 1 n G m 1 n G m n 1 G m n 1 4 end end end figure imshow G 写入 imwrite G C Documents and Settings Administrator 桌面 matlab g tif imshow C Documents and Settings Administrator 桌面 matlab g tif

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

当前位置:首页 > IT计算机/网络 > 其它相关文档

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