数 字 图 像 处 理
实 验
实验__二_: 图像的代数运算
学院: 信息工程学院
姓名:
学号:
专业及班级:
指导教师:
一、 实验内容
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表示得到的加法操作结果。
图像加法在图像处理中应用非常广泛。
例如,以下代码使用加法操作将下图中的两幅图像叠加在一起:
原图:
变化后:
给图像的每一个像素加上一个常数可以使图像的亮度增加。例如,以下代码将增加50亮度,加亮后的结果下图所示。
2、图像的减法运算
在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。imsubtract函数的调用格式如下:
Z = imsubtract(X,Y);
其中,Z是X-Y操作的结果。
首先根据原始图像生成其背景亮度图像,然后再从原始图像中将背景亮度图像减去,从而生成下图所示的图像:
如果希望从图像数据I的每一个像素减去一个常数,可以将上述调用格式中的Y替换为一个指定的常数值,例如
3、图像的乘法运算
在MATLAB中,使用immultiply函数实现两幅图像的乘法。immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。immulitply函数的调用格式如下:
Z = immulitply(X,Y) 其中,Z=X*Y。
例如,以下代码将使用给定的缩放因子对所示的图像进行缩放,从而得到下图所示的较为明亮的图像:
4、图像的除法运算
在MATLAB中使用imdivide函数进行两幅图像的除法。imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。imdivide函数的调用格式如下:
Z = imdivide(X,Y) 其中,Z=X/Y。
例如,以下代码将图4所示的两幅图像进行除法运算,请将这个结果和减法操作的结果相比较,对比它们之间的不同之处:
camema = imread('camema.jpg');
I = double(camema);
J= I * 0.43 + 90;
camema2 = uint8(J);
Ip = imdivide(camema, camema2);
imshow(Ip, []);
四、思考题
由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?
答:使用背景减法进行运动目标检测可以提取出完整的目标图像.可将所得标用于进一步的图像处理工作中。
除去人身体在环境中运动产生的动态区域外.背景减法对其它的动态场景的变化、干扰等特别敏感背景图像获取的理想情况是在场景没有运动因素,最简单背景获取方法是当场景中任何目标时采集一幅图像作为背景图像,但这种固定背景图像的方法.只适合应于外界条件较好的场。
五、实验小结
第二篇:数字图像处理学实验(二)
实验二、直方图均衡化图像增强的计算机实现
一、 实验目的:
1)、熟悉直方图均衡化处理的理论基础;
2)、掌握直方图均衡化处理的计算机实现方法;
3)、学习VC++ 6。0 的编程方法;
4)、验证直方图均衡化处理理论;
5)、观察直方图均衡化处理的结果。
二、实验的软、硬件平台:
硬件: 微型图像处理系统,
包括:主机, PC机;
摄像机;
软件: 操作系统:
WINDOWS2000
应用软件:
VC++ 6。0
三、实验内容:
1)初步掌握高级语言编程技术;
2)编制直方图均衡化处理程序;
3)编译并生成可执行文件;
4)考察处理结果。
四、实验要求:
1)、学习VC++确6。0 编程的步骤及流程;
2)、录入已给出的程序;
3)、编译并改错;
4)、阅读给出的程序,并加注释及书写文档;
5)、提交注释后的程序及文档;
6)、写出本次实验的体会。
附:实验指导书 1 份