主要内容

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的图像缩放。

1.5 J = imlincomb(我);

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

imshow(我)

图中包含一个坐标轴。轴包含一个image类型的对象。

图imshow (J)

图中包含一个坐标轴。轴包含一个image类型的对象。

将图像读入工作区。

我= imread (“cameraman.tif”);

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

J = uint8 (filter2 (fspecial (“高斯”),我));

找到差分图像,并使用线性组合将零值移到128J

K = imlincomb(1,我1 J, 128);%K(r,c) = I(r,c) - J(r,c) + 128

显示产生的差异图像。

imshow (K)

图中包含一个坐标轴。轴包含一个image类型的对象。

读两个灰度级uint8将图像放入工作区。

我= imread (“rice.png”);J = imread (“cameraman.tif”);

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

K = imlincomb(1,我1 J,“uint16”);

显示结果。

imshow (K, [])

图中包含一个坐标轴。轴包含一个image类型的对象。

这个例子展示了在图像上执行一系列算术运算时嵌套调用和使用线性组合之间的区别。为了演示imlincomb在截断结果之前执行所有算术运算,比较计算两个数组平均值的结果,XY,使用嵌套算术函数和使用imlincomb

创建两个数组。

X = uint8([255 0 75;44 225 100]);Y = uint8([50 50 50;50 / 50 / 50]);

使用嵌套算术函数对数组求平均值。来计算平均回报Z (1, 1),函数imadd将255和50相加,并在将结果传递给之前将其截断为255imdivide.平均值返回Z (1, 1)是128。

Z = imdivide (imadd (X, Y), 2)
Z =2 x3 uint8矩阵128 25 63 47 128 75

相比之下,imlincomb以双精度执行加法和除法,并且只截断最终结果。平均值返回Z2 (1, 1)是153。

Z2 = imlincomb(5。5,X, Y)
Z2 =2 x3 uint8矩阵153 25 63 47 138 75

输入参数

全部折叠

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

数据类型:

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

指定为数字标量的偏移量。

数据类型:

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

例子:“uint16”

例子:“替身”

输出参数

全部折叠

作为大小相同的数字数组返回的线性组合图像A1.如果A1逻辑,然后Z,否则ZA1

提示

  • 当对一对图像执行一系列算术运算时,如果使用imlincomb将操作组合起来,而不是嵌套对单个算术函数的调用,例如imadd.当嵌套对算术函数的调用时,并且输入数组是一个整数类,每个函数在将结果传递给下一个函数之前都会截断并舍入结果,从而降低了最终结果的准确性。imlincomb计算输出的每个元素Z单独,在双精度浮点数。如果Z为整型数组,imlincomb片段的元素Z超出整数类型范围并舍入小数值的。

扩展功能

之前介绍过的R2006a