数字图像处理实验二_第1页
数字图像处理实验二_第2页
数字图像处理实验二_第3页
数字图像处理实验二_第4页
数字图像处理实验二_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理

实验

实验一二:图像的代数运算

学院:信息工程学院

姓名:_____________________________

学号:.____________________________

专业及班级:____________________________

指导教师:____________________________

成绩

一、实验内容

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的基本算术符(|、、*、/等)可以执行图像的算术操作,但足在此之前必须将

图像转换为适合进行基本操作的双精度类型。

代数运算的结果很容易超出数据类型允许的范围。例如,uint8数据能够存储的最大

数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主

要是除法运算)也会产生不能用整数描述的分数结果。图像的代数运算函数使用以下撤取规

则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,

分数结果将被四舍五入。洌如,如果数据类型是uint8,那么大于255的结果(包括无穷大

inf)将被设置为255。

三、实验具体实现

1、图像的加法运算

在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用

imadd函数来实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值

相加,返回相应的像素值之和作为输出图像。imadd函数的调用格式如下:

Z=imadd(X,Y)

其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。

图像加法在图像处理中应用非常广泛。

例如,以下代码使用加法操作将下图中的两幅图像叠加在一起:

原图:

变化后:

»I=inireadCrice,jpg');

J=imread(,caneraman.jpg');

K=ijnadd(I,J);

imshow(K);

给图像的每一个像素加上一个常数可以使图像的亮度增加。例如,以下代码将增加50亮度,

加亮后的结果下图所示。

»RGB=imread(,flower.jpg?);

»RGBl=imadd(RGB,50);

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

»subplot(I,2,2);imshow(RGB1);

2、图像的减法运算

在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅

图像中减去一个常数。imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像

素值中减去,再将这个结果作为输出图像相应的像素值。imsubtract函数的调用格式如下:

Z=imsubtract(X,Y);

其中,Z是X-Y操作的结果。

首先根据原始图像生成其背景亮度图像,然后再从原始图像中将背景亮度图像减去,从而生

成下图所示的图像:

>>camema=imreadCcamenta,jpg):

background=imopenCcamejna,strelCdisk",15));

camema2=imsubtract(camema,background);

subplot(1,2,1);ijnshow(camejna);

subplot(1,2j2);imshow(camejna2);

QFigure1

如果希望从图像数据I的每一个像素减去一个常数,可以将上述调用格式中的Y替换为一个

指定的常数值,例如

»rice=imread(,ric.jpg,);

ricel=imniultiply(rice,20);

subplot(1,2,1);imshow(rice);

eubplot(1,2,2);ijnehowCricel);

JFigure1目回区|

3、图像的乘法运算

在MATLAB中,使用immultiply函数实现两幅图像的乘法。immultiply函数将两幅图像

相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输

出图形相应的像素值。immulitply函数的调用格式如下:

Z=immulitply(X,Y)其中,Z=X*Y。

例如,以下代码将使用给定的缩放因子对所示的图像进行缩放,从而得到下图所示的较为明

亮的图像:

»I=imreadCmoon,jpg"):

J=immultiply(I,1.2):

subplot(1,2,1):imshow(I);

subplot(1,2,2)linshowU,)

BjAgurelI0|回FlHlI

4、图像的除法运算

在MATLAB中使用imdivide函数进行两幅图像的除法。imdivide函数对两幅输入图像的

所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像

素值。imdivide函数的调用格式如下:

Z=imdivide(X,Y)其中,Z=X/Y。

例如,以下代码将图4所示的两幅图像进行除法运算,请将这个结果和减法操作的结果

相比较,对比它们之间的不同之处:

camcma=imi'cad(:camema.jpg');

I=double(camema);

J=I*0.43+90;

camema2=uint8(J);

Ip=imdivide(camema,camcma2);

imshow(1p,[]);

四、思考题

由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?

答:使用背景减法进行运动目标检

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论