文档

imlincomb

图像线性组合

语法

Z = imlincomb(K1,A1,K2,A2,…,Kn,An)
Z = imlincomb(K1,A1,K2,A2,…,Kn,An,K)
(英文)___output_class)
gpuarrayZ = imlincomb(gpuarrayK,gpuarrayA,___output_class)

描述

Z = imlincomb(K1,A1,K2,A2,…,Kn,An)计算

K1* a1 + k2 * a2 +…+ Kn *一个

在哪里K1K2,通过Kn是实数,双标量和A1A2,通过一个是具有相同类和大小的实的、非稀疏的数值数组。Z有相同的级别和尺寸A1除非A1在哪种情况下是合乎逻辑的Z是两倍。

Z = imlincomb(K1,A1,K2,A2,…,Kn,An,K)计算

K1* a1 + k2 * a2 +…+ Kn*An + K

在哪里imlincomb增加了K,一个实数,双标量,到的乘积的和s manbetx 845K1通过Kn而且A1通过一个

(英文)___output_class)的类Zoutput_class包含数值类名称的字符串标量或字符向量。

gpuarrayZ = imlincomb(gpuarrayK,gpuarrayA,___output_class)在GPU上执行操作,其中输入值,gpuarrayK而且gpuarrayA,为gpuArrays,输出值为,gpuarrayZ是一个gpuArray。此语法需要并行计算工具箱™

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

例子

全部折叠

将图像读入工作区。

I = imread(“cameraman.tif”);

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

J = imlincomb(1.5,I);

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

imshow(我)

图imshow (J)

将图像读入工作区。

I = 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将图像放入工作区。

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

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

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

显示结果。

imshow (K, [])

读二灰度uint8将图像放入工作区并将其转换为gpuArray年代。

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

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

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

显示结果。

图imshow (K, [])

这个例子展示了在对图像执行一系列算术操作时,嵌套调用和使用线性组合之间的区别。为了说明imlincomb在截断结果之前执行所有算术运算,比较计算两个数组的平均值的结果,X而且Y,使用嵌套算术函数和使用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 =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

扩展功能

R2006a之前介绍

这个话题有用吗?