matlab实验三、四、五、六(2012-2013-1)

玛丽莲梦兔
936次浏览
2020年07月30日 08:33
最佳经验
本文由作者推荐

雾霾的影响-南开大学招生网


实验三 图像的代数运算
一、 实验目的
1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、 实验原理
图像的 代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、
除运算后 得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运 算有
如下四种形式:
C(x,y) = A(x,y) + B(x,y)
C(x,y) = A(x,y) - B(x,y)
C(x,y) = A(x,y) * B(x,y)
C(x,y) = A(x,y) B(x,y)
图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。
使用MATLAB的基本算术符(+、-、*、 等)可以执行图像的算术操作,但是在此之前必须将图 像转换
为适合进行基本操作的双精度类型。为了更方便地对图像进行操作,MATLAB图像处理工具箱 包含了一个
能够实现所有非稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理工具箱中的图 像代数运算
函数。
表2-1 图像处理工具箱中的代数运算函数
函数名
Imabsdiff
Imadd
Imcomplement
Imdivide
Imlincomb
Immultiply
imsubtract
两幅图像的加法
补足一幅图像
两幅图像的除法
功能描述
两幅图像的绝对差值
计算两幅图像的线性组合
两幅图像的乘法
两幅图像的减法
使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这 些函数能够接受uint8
和uint16数据,并返回相同格式的图像结果。虽然在函数执行过程中元 素是以双精度进行计算的,但是
MATLAB工作平台并不会将图像转换为双精度类型。
代数 运算的结果很容易超出数据类型允许的范围。例如,uint8数据能够存储的最大数值是255,各种
代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用
整数描述的分数结果。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据
范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么< br>大于255的结果(包括无穷大inf)将被设置为255。
注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。
1


三、 实验步骤
1.图像的加法运算
图像相加一般用于 对同一场景的多幅图像求平均效果,以便有效地降低具有叠加性质的随机噪声。直
接采集的图像品质一般 都较好,不需要进行加法运算处理,但是对于那些经过长距离模拟通讯方式传送的
图像(如卫星图像), 这种处理是必不可少的。
在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常 数,可以调用imadd函数来
实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相 应的像素值相加,返回相应的像素值
之和作为输出图像。imadd函数的调用格式如下:
Z = imadd(X,Y)
其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。
图像加法在图像 处理中应用非常广泛。例如,以下代码使用加法操作将图2.1中的(a)、(b)两幅图像叠加在
一起 :
I = imread('');
J = imread('');
K = imadd(I,J);
imshow(K);

叠加结果如图2.2所示。

图2.1 待叠加的两幅图像


图2.2 叠加后的图像效果
给图像的每一个像素加上一个常数可以使图像的亮度增加。例如 ,以下代码将增加图3(a)所示的RGB
图像的亮度,加亮后的结果如图3(b)所示。
RGB = imread('')
RGB2 = imadd(RGB,50);
2


subplot(1,2,1);imshow(RGB);
subplot(1,2,2);imshow(RGB2);



图2.3 亮度增加
两幅图像的像素值相加时产生的结果很可能超过图像数据类型所支持的最 大值,尤其对于uint8类型的
图像,溢出情况最为常见。当数据值发生溢出时,imadd函数将数 据截取为数据类型所支持的最大值,这
种截取效果称之为饱和。为了避免出现饱和现象,在进行加法计算 前最好将图像转换为一种数据范围较宽
的数据类型。例如,在加法操作前将uint8图像转换为uin t16类型。
2.图像的减法运算
图像减法也称为差分方法,是一种常用于检测图像变化及 运动物体的图像处理方法。图像减法可以作
为许多图像处理工作的准备步骤。例如,可以使用图像减法来 检测一系列相同场景图像的差异。图像减法
与阈值化处理的综合使用往往是建立机器视觉系统最有效的方 法之一。在利用图像减法处理图像时往往需
要考虑背景的更新机制,尽量补偿由于天气、光照等因素对图 像显示效果造成的影响。
在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅 图像中减去,或者从一幅图像中减去一
个常数。imsubtract函数将一幅输入图像的像素值从另 一幅输入图像相应的像素值中减去,再将这个结果作
为输出图像相应的像素值。imsubtract函 数的调用格式如下:
Z = imsubtract(X,Y);
其中,Z是X-Y操作的 结果。以下代码首先根据原始图像(如图2.4(a)所示)生成其背景亮度图像,然后再
从原始图像中 将背景亮度图像减去,从而生成图2.4(b)所示的图像:
rice = imread('')
background = imopen(rice,strel('disk',15));
rice2 = imsubtract(rice, background);
subplot(1,2,1);imshow(rice);
subplot(1,2,2);imshow(rice2);

3



图2.4 原始图像、减去背景图像
值,例如:
Z = imsubtract(I,50);

如果希望从图像数据I的每一个 像素减去一个常数,可以将上述调用格式中的Y替换为一个指定的常数
减法操作有时会导致某些像素值变 为一个负数,对于uint8或uint16类型的数据,如果发生这种情况,
那么imsubtrac t函数自动将这些负数截取为0。为了避免差值产生负值,同时避免像素值运算结果之间产生
差异,可以 调用函数imabsdiff。imabsdiff将计算两幅图像相应像素差值的绝对值,因而返回结果不会产 生
负数。该函数的调用格式与imsubtract函数类似。
3. 图像的乘法运算 两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分。一幅图像乘以一个常数通常被
称为缩放,这是一种常见的图像处理操作。如果使用的缩放因子大于1,那么将增强图像的亮度,如果因
子小于1则会使图像变暗。缩放通常将产生比简单添加像素偏移量自然得多的明暗效果,这是因为这种操
作能够更好地维持图像的相关对比度。此外,由于时域的卷积或相关运算与频域的乘积运算对应,因此乘
法运算有时也被作为一种技巧来实现卷积或相关处理。
在MATLAB中,使用immultiply 函数实现两幅图像的乘法。immultiply函数将两幅图像相应的像素值进
行元素对元素的乘法操 作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。immulitply
函数 的调用格式如下:
Z = immulitply(X,Y)
其中,Z=X*Y。例如,以 下代码将使用给定的缩放因子对图2.5(a)所示的图像进行缩放,从而得到如图2.5(b)
所示的 较为明亮的图像:
I = imread('');
J = immultiply(I,1.5);
subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(J);

图2.5 原图和乘以因子1.5 的图像
4


uint8图像的乘法操作一 般都会发生溢出现象。Immultiply函数将溢出的数据截取为数据类型的最大值。
为了避免产生 溢出现象,可以在执行乘法操作之前将uint8图像转换为一种数据范围较大的图像类型,例如
uin t16。
4.图像的除法运算
除法运算可用于校正成像设备的非线性影响,这在特殊形态的 图像(如断层扫描等医学图像)处理中
常常用到。图像除法也可以用来检测两幅图像间的区别,但是除法 操作给出的是相应像素值的变化比率,
而不是每个像素的绝对差异,因而图像除法也称为比率变换。 < br>在MATLAB中使用imdivide函数进行两幅图像的除法。imdivide函数对两幅输入图像 的所有相应像素
执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。im divide函数的调用
格式如下:
Z = imdivide(X,Y)
其中, Z=XY。例如,以下代码将图4所示的两幅图像进行除法运算,请将这个结果和减法操作的结
果相比较 ,对比它们之间的不同之处:
r1 = imread('');
I = double(r1);
J= I * 0.43 + 90;
r2 = uint8(J);
Ip = imdivide(r1, r2);
Imshow(Ip, []);

除法操作的结果如图2.6所示。

图2.6 原图和减背景后的图像相除的图像效果
5.图像的四则代数运算
可以综 合使用多种图像代数运算函数来完成一系列的操作。例如,使用以下语句计算两幅图像的平均
值:
I = imread(‘’);
I2 = imread(‘’);
K = imdivide(imadd(I,I2),2);
建议最好不要用这种方式进行图像操作,这是因 为,对于uint8或uint16数据,每一个算术函数在将其
输出结果传递给下一项操作之前都要进 行数据截取,这个截取过程将会大大减少输出图像的信息量。执行
图像四则运算操作较好的一个办法就是 使用函数imlincomb。函数imlincomb按照双精度执行所有代数运算
5


操作,而且仅对最好的输出结果进行截取,该函数的调用格式如下:
Z = imlincomb(A,X,B,Y,C);
其中,Z=A*X+B*Y+C。MATLAB会自动 根据输入参数的个数判断需要进行的运算。例如,以下语句将计
算Z=A*X+C:
Z = imlincomb(A,X,C)
而以下语句将计算Z=A*X+B*Y:
Z = imlincomb(A,X,B,Y,)
四、 实验报告要求
1 描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果并进行必要的讨论。
2 必须包括原始图像及其计算处理后的图像以及相应的解释。
五、 思考题
由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?
6


实验四 图像增强—灰度变换
一、实验目的:
1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验原理及知识点
术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直 接对图像的像素进行处理。空
间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进 行操作其表达式为
g(x,y)=T[f(x,y)]
其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y )的指定
领域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y) 的正方形或长方形区域,。此区域的
中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域 会包含不同的领域。T应用于每个位置
(x,y),以便在该位置得到输出图像g。在计算(x,y)处 的g值时,只使用该领域的像素。
灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y )处的g值仅由f在该点处的亮度决定,T
也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像 时,这两个术语可以互换。由于亮度变换函数
仅取决于亮度的值,而与(x,y)无关,所以亮度函数通 常可写做如下所示的简单形式:
s=T(r)
其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
三、实验内容:
1、图像数据读出
2、计算并分析图像直方图
3、利用直接灰度变换法对图像进行灰度变换
下面给出灰度变化的MATLAB程序
f=imread('');
g=imhist(f,256); %显示其直方图
g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)
figure,imshow(g1)

%将0.5到0.75的灰度级扩展到范围[0 1]
g2=imadjust(f,[0.5 0.75],[0 1]);
figure,imshow(g2)
g=imread('');
h=log(1+double(g)); %对输入图像对数映射变换
h=mat2gray(h); %将矩阵h转换为灰度图片
h=im2uint8(h); %将灰度图转换为8位图
figure,imshow(h)
7


四、实验图片

Fig.1



Fig.2


8


实验五 图像增强—直方图变换
一、 实验目的
1.掌握灰度直方图的概念及其计算方法;
2.熟练掌握直力图均衡化和直方图规定化的计算过程;
3.熟练掌握空域滤波中常用的平滑和锐化滤波器;
4.掌握色彩直方图的概念和计算方法
5.利用MATLAB程序进行图像增强。
二、 实验原理
图像增强是指按特定的 需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理
方法。其主要目的是处理后 的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图
修改处理、图像平滑化处理 、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度
的方法为主要内容,其他方 法同学们可以在课后自行联系。
直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增 强。除了提供有用的图像统计
资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像 压缩与分割。直方图在软件中
易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个 流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的 目的是使
图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效 果。灰度
直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的 亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统
计规律。直方图反映了图像的明暗分 布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一 幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相
同的象素点数的过程。
下面给出直方图均衡化增强图像对比度的MATLAB程序:

I=imread(‘); % 读入原图像
J=histeq(I); %对原图像进行直方图均衡化处理
imshow(I); %显示原图像
title(‘原图像’); %给原图像加标题名
%对原图像进行屏幕控制;显示直方图均衡化后的图像
figure;imshow(J);
%给直方图均衡化后的图像加标题名
title(‘直方图均衡化后的图像’)
%对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅
figure; subplot(1,2,1)
imhist(I,64); %将原图像直方图显示为64级灰度
title(‘原图像直方图’) %给原图像直方图加标题名
subplot(1,2,2); %作第2幅子图
imhist(J,64) %将均衡化后图像的直方图显示为64级灰度
title(‘均衡变换后的直方图’) %给均衡化后图像直方图加标题名
9


处理后的图像直方图分布更 均匀了,图像在每个灰度级上都有像素点。从处理前后的图像可以看出,
许多在原始图像中看不清楚的细 节在直方图均衡化处理后所得到的图像中都变得十分清晰。
三、 实验步骤
1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2调入“实验一”中获取的数字图像,并进行计算机均衡化处理;
3显示原图像的直方图和经过均衡化处理过的图像直方图。
4记录和整理实验报告
四、 实验报告内容
1

叙述实验过程;
2

提交实验的原始图像和结果图像。
五、 思考题
1.直方图是什么概念?它反映了图像的什么信息?
2.直方图均衡化是什么意思?它的主要用途是什么?
六、 实验图片


10


实验六 图像增强—空域滤波
一、 实验目的
进一步了解MatLab软件语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算 法,
体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力, 并为课堂教学提供配套的实
践机会。
二、实验要求
(1)学生应当完成对于给 定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪
声,进行滤波处理;能够正 确地评价处理的结果;能够从理论上作出合理的解释。
(2)利用MATLAB软件实现空域滤波的程序:
I=imread('');
J = imnoise(I,'gauss',0.02); %添加高斯噪声
J = imnoise(I,'salt & pepper',0.02);
(注意空格)
%添加椒盐噪声
ave1=fspecial('average',3); %产生3×3的均值模版
ave2=fspecial('average',5); %产生5×5的均值模版
K = filter2(ave1,J)255; %均值滤波3×3
L = filter2(ave2,J)255; %均值滤波5×5
M = medfilt2(J,[3 3]); %中值滤波3×3模板
N = medfilt2(J,[4 4]); %中值滤波4×4模板
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
figure,imshow(N);

三、实验设备与软件
(1) IBM-PC计算机系统
(2) MatLab软件语言包括图像处理工具箱(Image Processing Toolbox)
(3) 实验所需要的图片
四、实验内容与步骤
a) 调入并显示原始图像


b) 利用imnoise 命令在图像 上加入高斯(gaussian) 噪声
c)利用预定义函数fspecial 命令产生平均(average)滤波器
d)分别采用 3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并
观察不同噪声 水平下,上述滤波器处理的结果;
11


e)选择不同大小的模 板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结
果。
f)利用imnoise 命令在图像

上加入椒盐噪声(salt & pepper)
g)重复c)~ e)的步骤
h)输出全部结果并进行讨论。
五、思考题问答题
(1) 简述高斯噪声和椒盐噪声的特点。
(2) 结合实验内容,定性评价平均滤波器中值滤波器对高斯噪声和椒盐噪声的去噪效果?
(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?
六、实验报告要求
描述实验的基 本步骤,用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,必须包括
原始图像及其计算 处理后的图像。  

12

我的信念-减腿最有效的方法


夏宝龙简历-湖南英语四级报名


国际商务专业-北京市房地产交易管理网


拉筹伯-我的职业理想


对联和横批-四川大学自主招生


我爱春天-离职信范文


2010江西高考数学-13年高考时间


云南艺术学院分数线-个人事迹范文