本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

imsubtract

从一个图像中减去另一个图像或从图像中减去常量

说明

示例

Z = imsubtract(X,Y) 从数组 X 中的每个元素中减去数组 Y 中的对应元素,并在输出数组 Z 的对应元素中返回差。

如果 X 是整数数组,则将截断超出整数类型范围的输出元素,且将舍入小数值。

示例

全部折叠

以下示例说明如何将两个 uint8 数组相减。您将看到,负数结果会舍入到 0。

X = uint8([ 255 0 75; 44 225 100]);
Y = uint8([ 50 50 50; 50 50 50 ]);
Z = imsubtract(X,Y)
Z = 2x3 uint8 matrix

   205     0    25
     0   175    50

将灰度图像读入工作区。

I = imread('rice.png');

估计背景。

background = imopen(I,strel('disk',15));

从图像中减去背景。

J = imsubtract(I,background);

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

imshow(I)

figure
imshow(J)

将图像读入工作区。

I = imread('rice.png');

从图像中减去常量值。

J = imsubtract(I,50);

显示原始图像和结果。

imshow(I)

figure
imshow(J)

输入参数

全部折叠

第一个数组(被减数),指定为任何维度的实数非稀疏数值或逻辑数组。

处在第二位、要从 X 中减去的数组(减数),指定为实数非稀疏数值数组或逻辑数组。YX 具有相同的大小和类,或者 Ydouble 类型的标量。

输出参数

全部折叠

差,以与 X 大小相同的数值数组形式返回。ZX 属于同一个类,但在 X 为逻辑值时,Z 属于数据类型 double。如果 X 是整数数组,则将截断超出整数类型范围的输出元素,且将舍入小数值。

在 R2006a 之前推出