收藏 分享(赏)

实验七 图像的代数运算.doc

上传人:fcgy86390 文档编号:4293986 上传时间:2018-12-21 格式:DOC 页数:5 大小:66.50KB
下载 相关 举报
实验七  图像的代数运算.doc_第1页
第1页 / 共5页
实验七  图像的代数运算.doc_第2页
第2页 / 共5页
实验七  图像的代数运算.doc_第3页
第3页 / 共5页
实验七  图像的代数运算.doc_第4页
第4页 / 共5页
实验七  图像的代数运算.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1实验七 图像的代数运算一、实验目的1、理解数字图像处理中代数运算的基本作用;2、掌握在 MTLAB 中对图像进行代数运算的方法。二、实验原理代数运算是指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的运算。对于相加和相乘的情形,可能不止有两幅图像参加运算。在一般情况下,输入情况之一可能为常数。四种图像处理代数运算的数学表达式如下: (,)(,)(,)CxyABxy(,)(,)(,)xyxyCAB其中 A(x,y)和 B(x,y)为输入图像,而 C(x,y)为输出图像。还可以通过适当的组合形成涉及几幅图像的复合代数运算方程。在 MATLAB 中,我们可以用函数 imread 很容易

2、的得到数字图像的图像数据矩阵(即A(x,y)和 B(x,y)) ,有了这些矩阵后我们只要适当地设计代数运算的形式并写出方程,就可以得到一个输出图像的矩阵(即 C(x,y)) 。图像相加的一个重要应用是对同一场景的多幅图像求平均值。这点被经常用来有效的降低加性随机噪声的影响。在求平均值的过程中,图像的静止部分不会改变,而对每一幅图像,各不相同的噪声图案则累积很慢。对 M 幅图像进行平均,使图像中每一点的平方信噪比提高了 M 倍,幅度信噪比是功率信噪比的平方根,因此达到了提高信噪比降低噪声的作用。本次实验要求完成人为的往一幅图像中加入随机噪声,并通过多次相加求平均的方法降低所加入的噪声对图像的影响

3、。在 MATLAB 中提供了给图像加入噪声的函数 imnoise,imnoise 的语法格式为J = imnoise(I, type)J = imnoise(I, type, parameters)2其中 J = imnoise(I, type)返回对原始图像 I 添加典型噪声的有噪图像 J。参数 type 和parameters 用于确定噪声的类型和相应的参数。下面的命令是对图像 eight.tif 分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:例:I = imread(eight.tif);J1 = imnoise(I, gaussian, 0, 0.02);J2 = imnois

4、e(I, salt J3 = imnoise(I, speckle, 0.02);subplot(2,2,1), imshow(I), title(原图像);subplot(2,2,2), imshow(J1), title(加高斯噪声);subplot(2,2,3), imshow(J2), title(加椒盐噪声);subplot(2,2,4), imshow(J3), title(加乘性噪声);在 MATLAB 程序语言中,分号的用处为不显示程序运算中的中间结果,这在一定程度上使系统运算的效率增高,因此在不需知道中间结果的情况下,可以用分号作为一个句子的结尾,而不显示该句运算的中间结果。

5、代数运算中需要有若干幅带有随机噪声的图像数据,在这里我们运用 MATLAB 中的FOR 循环语句来完成产生多幅带有噪声的图像数据及将这些图像数据进行相加运算。MATLAB 中 FOR END 循环的用法如下:for end 循环这种循环允许一组命令以固定的和预定的次数重复,循环的一般形式为:3for variable = expressionstatementsend举例如下:例:%一个简单的 for 循环的例子。for i=1:10;y(i)=i;end;y %显示 y 的结果y =1 2 3 4 5 6 7 8 9 10为了得到最大的速度,在 for 循环被执行之前,应预先分配数组。例如前

6、面所考虑的这一种情况,在 for 循环内每执行一次命令,向量 y 的维数增加 1。这样就使得 MATLAB每通过一次循环对 y 分配更多的内存,这当然要花费一定的时间。为了可以不执行这个步骤,for 循环的例子应重写为:y=zeros(1,10);for i=1:10;y(i)=i;end;y另外,再次强调一下,在实际的对图像处理过程中,由于我们读出的图像数据一般是unit8 型,而在 MATLAB 的矩阵运算中要求所有的运算变量为 double 型(双精度型) 。因此读出的图像数据不能直接进行相加求平均,因此必须先使用一个函数将图像数据转换成双精度型数据,然后再进行相加运算。运算完成后,在图

7、像显示前再将图像数据转换为uint8 型。MATLAB 中提供了这样的函数: im2double,uint8,double 等函数。作为一个示例,现将刚刚显示的加有噪声的图像进行相加求平均以消除图像的噪声。在图像中我们给图像加的是均值为 0,方差为 0.02 的高斯噪声,将图像相加了一百遍,再求其平均值。程序如下:%例图像加噪声再通过多次相加求平均的方法祛除噪声I, M = imread(eight.tif);J = imnoise(I, gaussian, 0, 0.02);subplot(1,2,1), imshow(I, M), title(原图像);subplot(1,2,2), im

8、show(J, M), title(加噪声后图像);4m, n = size(I);K = zeros(m, n);for i = 1 : 100J = imnoise(I, gaussian, 0, 0.02);J1 = im2double(J);K = K + J1;endK = K / 100; %求图像的平均figure; imshow(K), title(相加求平均后的图像);5三、实验内容及要求1、 读出 girl.bmp 这幅图像(或其它灰度图像) ,并显示;2、 给原图像加入高斯噪声、椒盐噪声、乘性噪声后并与原图显示在同一图像对话框中,观察比较几幅图像的特点结果。改变噪声参数,再比较结果。3、 运用 for 循环,分别将 20 幅、100 幅和 500 幅加有随机高斯噪声的图像进行相加并求其平均值,将几种求平均后的图像显示在同一图像对话框中,比较其结果。4、 运用 for 循环,分别将 100 幅加有不同类型噪声的图像进行相加再求平均值,在同一图像对话框中显示求平均后的图像,比较其结果。5、 选用 RGB 图像和索引图像,重复加入噪声、相加求平均的实验,比较实验结果。6、 (选做内容)尝试实现图像相减、相乘、相除的代数运算,体会它们的具体应用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报