所有非稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理工具箱中的图像代数运算函数。
f表21图像处理工具箱中的代数运算函数
函数名ImabsdiffImaddImcompleme
tImdivideImli
combImmultiplyimsubtract两幅图像的绝对差值两幅图像的加法补足一幅图像两幅图像的除法
功能描述
计算两幅图像的线性组合两幅图像的乘法两幅图像的减法
使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受ui
t8和ui
t16数据,并返回相同格式的图像结果。虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。代数运算的结果很容易超出数据类型允许的范围。例如,ui
t8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是ui
t8,那么大于255的结果(包括无穷大i
f)将被设置为255。注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。
三、实验步骤
1.图像的加法运算图像相加一般用于对同一场景的多幅图像求平均效果,以便有效地降低具有叠加性质的随机噪声。直接采集的图像品质一般都较好,不需要进行加法运算处理,但是对于那些经过长距离模拟通讯方式传送的图像(如卫星图像),这种处理是必不可少的。在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。imadd函数的调用格式如下:Zimadd(X,Y)其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。图像加法在图像处理中应用非常广泛。例如,以下代码使用加法操作将图21中的a、b两幅图像叠加在一起:Iimread‘ricetif’;Jimread‘camerama
tif’;KimaddIJ;imshowK;叠加结果如图22所示。
f图21待叠加的两幅图像
图22叠加后的图像效果
给图像的每一个像素加上一个常数可以使图像的亮度增加。例如,以下代码将增加图3a所示的RGB图像的亮度,加亮后的结果如图3b所示。RGBimread‘flowertif’;RGB2imaddRGB50;subplot121;imshowRGB;subplot122;imshowRGB2;
加50
减50
原图r