This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Subtract one image from another or subtract constant from image


Z = imsubtract(X,Y)


Z = imsubtract(X,Y) subtracts each element in array Y from the corresponding element in array X and returns the difference in the corresponding element of the output array Z. X and Y are real, nonsparse numeric arrays of the same size and class, or Y is a double scalar. The array returned, Z, has the same size and class as X unless X is logical, in which case Z is double.

If X is an integer array, elements of the output that exceed the range of the integer type are truncated, and fractional values are rounded.


collapse all

This example shows how to subtract two uint8 arrays. Note that negative results are rounded to 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

Read a grayscale image into the workspace.

I = imread('rice.png');

Estimate the background.

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

Subtract the background from the image.

J = imsubtract(I,background);

Display the original image and the processed image.



Read an image into the workspace.

I = imread('rice.png');

Subtract a constant value from the image.

J = imsubtract(I,50);

Display the original image and the result.



Introduced before R2006a

Was this topic helpful?