主要内容

Imlincomb.

图像的线性组合

描述

例子

Z.= imlincomb(K1A1K2A2,......,kn.一个计算图像的线性组合,A1A2,......,一个,重量K1K2,......,kn.根据:

z = k1 * a1 + k2 * a2 + ... + kn *一个

例子

Z.= imlincomb(K1A1K2A2,......,kn.一个K.添加偏移量,K.,线性组合:

Z = K1 * A1 + K2 * A2 + ... + KN * AN + K.

例子

Z.= imlincomb(___OutputClass.指定输出类Z.

例子

全部收缩

将图像读入工作区。

我= imread('cameraman.tif');

使用线性组合中的1.5系数缩放图像。

j = imlincomb(1.5,i);

显示原始图像和处理的图像。

imshow(i)

图包含轴。轴包含类型图像的对象。

图imshow(j)

图包含轴。轴包含类型图像的对象。

将图像读入工作区。

我= imread('cameraman.tif');

创建图像的低通滤波副本。

j = uint8(filter2(fspecial('高斯'), 一世));

使用线性组合查找差异图像并将零值移至128一世j

k = imlincomb(1,i,-1,j,128);%k(r,c)= i(r,c) -  j(r,c)+ 128

显示产生的差异图像。

imshow(k)

图包含轴。轴包含类型图像的对象。

阅读两个灰度uint8.图像到工作区。

我= imread('rice.png');j = imread('cameraman.tif');

使用线性组合添加图像。将输出指定为类型uint16避免截断结果。

k = imlincomb(1,i,1,j,'uint16');

显示结果。

imshow(k,[])

图包含轴。轴包含类型图像的对象。

此示例显示嵌套呼叫之间的差异和在执行图像上执行一系列算术操作时使用线性组合。为了说明如何Imlincomb.在截断结果之前执行所有算术运算,比较计算两个数组的平均值的结果,Xy,使用嵌套算术功能和使用Imlincomb.

创建两个数组。

x = UINT8([255 0 75; 44 225 100]);Y = UINT8([50 50 50; 50 50 50]);

使用嵌套算术函数的平均阵列。计算返回的平均值Z(1,1), 功能添加255和50并在将结果转到之前截断结果为255Imdivide.。平均返回Z(1,1)是128。

z = Imdivide(imadd(x,y),2)
z =2x3 uint8矩阵128 25 63 47 128 75

相比之下,Imlincomb.以双重精度执行添加和划分,只会截断最终结果。平均返回Z2(1,1)是153。

z2 = imlincomb(.5,x,.5,y)
z2 =2x3 uint8矩阵153 25 63 47 138 75

输入参数

全部收缩

图像系数,指定为数字标量。

数据类型:双倍的

输入图像,指定为相同大小和类的数字数组。

偏移,指定为数字标量。

数据类型:双倍的

输出类Z.,指定为包含数字类名称的字符串标量或字符向量。

例子:'uint16'

例子:“双倍的”

输出参数

全部收缩

线性组合图像,返回与尺寸相同的数字数组A1。如果A1逻辑, 然后Z.双倍的, 除此以外Z.有同一课A1

提示

  • 在一对图像上执行一系列算术运算时,可以在使用时实现更准确的结果Imlincomb.结合操作,而不是嵌套调用各个算术函数,例如。嵌套对算术函数的调用,并且输入阵列是整数类的,每个功能在将其传递到下一个功能之前截断并舍入结果,从而在最终结果中失去准确性。Imlincomb.计算输出的每个元素Z.单独,在双精度浮点。如果Z.是一个整数数组,Imlincomb.剪辑元素的Z.超过整数类型的范围,并舍入分数值。

扩展能力

在R2006A之前介绍