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.


Complement image


IM2 = imcomplement(IM)
gpuarrayIM2 = imcomplement(gpuarrayIM)


IM2 = imcomplement(IM) computes the complement of the image IM. IM can be a binary, grayscale, or RGB image. IM2 has the same class and size as IM.

In the complement of a binary image, zeros become ones and ones become zeros; black and white are reversed. In the complement of an intensity or RGB image, each pixel value is subtracted from the maximum pixel value supported by the class (or 1.0 for double-precision images) and the difference is used as the pixel value in the output image. In the output image, dark areas become lighter and light areas become darker.

gpuarrayIM2 = imcomplement(gpuarrayIM) computes the complement of the image on a GPU. The input image gpuarrayIM and the return values are gpuArrays. gpuarrayIM2 is a gpuArray with the same underlying class and size as gpuarrayIM. This syntax requires the Parallel Computing Toolbox™.


collapse all

X = uint8([ 255 10 75; 44 225 100]);
X2 = imcomplement(X)
X2 = 2×3 uint8 matrix

     0   245   180
   211    30   155

bw = imread('text.png');
bw2 = imcomplement(bw);

I = imread('cameraman.tif');
J = imcomplement(I);

I = imread('glass.png');
J = imcomplement(I);
imshow(I), figure, imshow(J)


  • If IM is a grayscale or RGB image of class double, you can use the expression 1-IM instead of this function. If IM is a binary image, you can use the expression ~IM instead of this function.

Extended Capabilities

Introduced before R2006a

Was this topic helpful?