IM2 = imcomplement(IM)
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.
If IM is an 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.
imcomplement supports the generation of efficient, production-quality C/C++ code from MATLAB. When generating code, imcomplement does not support int64 and uint64 data types. To see the complete list of toolbox functions that support code generation, see Supported Functions.
Create the complement of a uint8 array.
X = uint8([ 255 10 75; 44 225 100]); X2 = imcomplement(X) X2 = 0 245 180 211 30 155
Reverse black and white in a binary image.
bw = imread('text.png'); bw2 = imcomplement(bw); subplot(1,2,1),imshow(bw) subplot(1,2,2),imshow(bw2)
Create the complement of an intensity image.
I = imread('glass.png'); J = imcomplement(I); imshow(I), figure, imshow(J)