主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

imsubtract

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

说明

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

示例

示例

全部折叠

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

X = uint8([ 255 0 75; 44 225 100]);
Y = uint8([ 50 50 50; 50 50 50 ]);
Z = imsubtract(X,Y)
Z = 2×3 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 contains an axes object. The hidden axes object contains an object of type image.

figure
imshow(J)

Figure contains an axes object. The hidden axes object contains an object of type image.

将图像读入工作区。

I = imread('rice.png');

从图像中减去常量值。

J = imsubtract(I,50);

显示原始图像和结果。

imshow(I)

Figure contains an axes object. The hidden axes object contains an object of type image.

figure
imshow(J)

Figure contains an axes object. The hidden axes object contains an object of type image.

输入参数

全部折叠

第一个数组(被减数),指定为任意维度的数值数组或逻辑数组。

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

输出参量

全部折叠

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

版本历史记录

在 R2006a 之前推出