Main Content

imcomplement

对图像求补码

说明

示例

J = imcomplement(I) 计算图像 I反色,并在 J 中返回结果。

示例

全部折叠

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

     0   245   180
   211    30   155

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

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

将一个彩色图像读入工作区中。

rgb = imread('yellowlily.jpg');
imshow(rgb)

显示该图像的反色。

c = imcomplement(rgb);
imshow(c)

生成的图像的每个颜色通道均为原始图像中对应颜色通道的反色。原本黑暗的区域,如泥土,变得明亮。在原始图像中,因为红色和绿色信号的混合,叶呈现绿色,花瓣呈现黄色。在反色图像中,叶呈现紫色,因为红色和蓝色信号大于绿色信号。花瓣呈现蓝色是因为蓝色信号大于红色和绿色通道。

输入参数

全部折叠

输入图像,指定为 RGB、灰度或二值图像。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

输出参量

全部折叠

图像反色,指定为 RGB、灰度或二值图像。J 与输入图像 I 具有相同的大小和类。

详细信息

全部折叠

图像反色

对二值图像取反色时,0 变为 1,1 变为 0。黑白发生颠倒。

在对灰度或彩色图像取反色时,各值是从所属类支持的最大像素值(对于双精度图像为 1.0)中减去对应像素值而得到的。差值用作输出图像中的像素值。在输出图像中,暗区域变亮,亮区域变暗。对于彩色图像,红色变青色,绿色变品红,蓝色变黄色,反之亦然。

提示

  • 如果 Idouble 类的灰度或 RGB 图像,则可以使用表达式 1-I 代替此函数。

  • 如果 I 是二值图像,则可以使用表达式 ~I 代替此函数。

扩展功能

版本历史记录

在 R2006a 之前推出