数字图像处理|图像的补色

拿代码点个赞~ 

虽然人脑感知并解释颜色的过程是一种生理和心理现象,但颜色的物理性质可由试验和理论结果支持的基本形式来表示。1666年,艾萨克牛顿发现一束阳光通过一个玻璃棱镜时,射出的光束不是白色的,而是由一端为紫色、另一端为红色的连续光谱组成。如图1.1所示,色谱分为6个区域:紫色、蓝色、绿色、黄色、橙色和红色。

图1.1 白光的色谱

通过观察光谱可以发现,各颜色之间不是突变的,而是从一种颜色平滑的融入另一种颜色的。人类和其他动物感知的物体颜色通常由物体反射的光的性质决定。如图1.2所示,可见光由电磁波谱中一个相对狭窄的频段组成。以所有可见波长均匀地向各个方向反射光的物体,在观察者看来是白色的。以有限范围的可见光谱反射光的物体,在观察者看来是不同的颜色。例如,黄色物体反射波长570-590nm内的光,吸收其他波长绝大部分能量。

图1.2 光谱图

光的特性是彩色科学的核心,若光是无色的,那么其属性只有亮度或者数值。我们可以在20世纪30年代之前拍摄的电影中看到消色光。彩色光在电磁波谱中的波长范围是400-700nm。描述彩色光源质量的3个基本量是辐射亮度、发光强度和亮度。

辐射亮度是从光源流出的总能量,单位是瓦特(W);发光强度是观察者从光源感知的总能量,单位是流明(lm)。例如,由红外光谱区域的光发出的光具有很大的能量(辐射亮度),但观察者却很难感知到,其发光强度几乎为零。亮度是一个不可测量的主观描述子,体现的是发光强度的消色概念,是描述彩色感觉的一个重要因素。

实验表明,人眼中由600万到700万个锥状体,其分为3个主要的感知类别,这些类别分别对应于红色、绿色和蓝色。在所有的锥状体中,越65%的锥状体对红色光敏感,33%的锥状体对绿色光敏感,只有越2%的锥状体对蓝色光敏感。然而,蓝色锥状体对蓝色光更敏感。

为了标准化,1931年CIE规定了三原色的光波长:蓝色光波长为435.8nm,绿色光波长为546.1nm,红色光波长为700nm。要注意的是,为标准化目的规定的三原色的波长,并不意味着这三个固定的RGB分量能够单独产生所有的色谱。“原色”一词的使用,让人们误以为以不同的发光强度混合这三个标准原色就会产生所有的可见颜色。其实不然,除非允许波长变化,而允许变化时也将不存在三个固定的原色。但三原色相加可以产生光的二次色,如深红色(红色加蓝色)、青色(绿色加蓝色)和黄色(红色加绿色)。以合适的亮度混合三原色,或混合与原色相反的二次色,就可以产生白光,如图1.3所示。

图1.3 光的混合

区别不同颜色的特性通常是亮度、色调和饱和度。前面提到,亮度体现的是发光强度的消色概念。色调是混合光波长中与主波长相关的属性,表示被观察者感知的主导色。因此,当我们说一物体为红色时,指的是物体的色调。饱和度指的是相对的纯度,或与一种色调混合的白光量,纯光谱颜色是完全饱和的。色调与饱和度一起成为色度,因此一种颜色可以由其亮度和色度来表征。 

图2.2是由牛顿与17世纪通过连接色谱两端创建的彩色轮。彩色轮是根据颜色之间的色度关系排列而成的一种视觉表示,当彩色轮旋转时,人眼会看到一种混合颜色的效果,这是因为人眼可以将不同颜色的光线混合在一起。牛顿通过这个实验发现,白光是由不同颜色的光线混合而成的,这一发现对光学的研究产生了重大影响。其形成方式如下:先等距离放置三原色,然后将二次色等距离地放在原色之间。最终得到的结果是,彩色轮两端对应的颜色是互补的。与灰度图像一样,补色可以用于增强色彩图像各个暗色区域中的细节,尤其是在这些区域尺寸较大时。

图2.2 彩色轮

图像的补色是指将图像中的每个像素的RGB值取反,即R=255-R,G=255-G,B=255-B。下列图2.3是用MATLAB代码实现图像的补色的示例:

% 读取图像
img = imread('road.jpg');% 获取图像的尺寸
[height, width, ~] = size(img);% 创建一个与原图像大小相同的空白图像
complement_img = uint8(zeros(height, width, 3));% 对每个像素进行补色操作
for i = 1:height
    for j = 1:width
        complement_img(i, j, 1) = 255 - img(i, j, 1);
        complement_img(i, j, 2) = 255 - img(i, j, 2);
        complement_img(i, j, 3) = 255 - img(i, j, 3);
    end
end% 显示原图像和补色后的图像
subplot(1, 2, 1);
imshow(img);
subplot(1, 2, 2);
imshow(complement_img);

 运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricardo_yanwu

发博客也就图一乐学到知识最重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值