zoukankan      html  css  js  c++  java
  • (4)彩色图像转灰度图以及色调,饱和度等概念相关定义

    以下关于定义的内容来自冈萨雷斯——《数字图像处理》

    RGB彩色模型:图像由三个分量图像组成,每种原色一副分量图像。当送入RGB监视器时,这三幅图像在屏幕上混合生成一副合成的彩色图像。

    HSI彩色模型:RGB模型的彩色系统对于硬件实现很理想,且与人眼强烈感知红、绿、蓝三原色的事实能很好的匹配。遗憾的是RGB模型和其它类似的彩色模型不能很好的适应实际上人解释的颜色(1)。人观察一个彩色物体时,我们用其色调、饱和度和亮度来描述它,这就是HSI彩色模型。

    (1)原因与人眼中感光细胞对各种原色光的敏感度(65%对红光敏感,33%对绿光敏感,2%对蓝光敏感,但蓝色椎状细胞对蓝光更敏感)有关。详细信息需参见“色度学”。

    色调(H):描述一种纯色(纯黄,纯红或纯橙色)的颜色属性。当我们说一个物体为红色,黄色时,指的是其色调。

    饱和度(S):指颜色的相对纯净度或一种颜色混合白光的数量,它指的是一种纯色被白光稀释的程度的度量。纯谱色是全饱和的。饱和度与所加白光的数量成反比。

    亮度(I):是一个主管的描述子,实际上它是不可度量的。它体现了无色的强度概念,并且是描述彩色感觉的关键因子之一。

    亮度之所以不可以度量,也是因为人眼的感光是一个主观概念,在HSI模型中,亮度值I = (R + G + B) / 3。这样的理由很好理解,因为在RGB监视器上,彩色是由三种颜色强度的电子灯混合产生的,我们把每个电子灯想象成一个火把,那么火把的亮度就由总的火把数决定,RGB是在各个分量上的值,所以统一到一齐之后可以使用其加权平均来描述亮度。

    灰度:所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。在RGB彩色模型中,灰度色的R=G=B。

    将RGB彩色图像转为灰度图,是通过计算每一个RGB像素的等效灰度或者亮度值Y来实现的。转化的一个原则是——应该保证最终的灰色图像和最初的彩色图像主观上有相同的亮度。

    在最简单的情况下,Y可以取RGB三分量的加权平均值。

      Y = Avg(R, G, B) = (R + G + B) / 3;

    实际上,由于红色和黄色看上去比蓝色亮,这就导致转化后的灰度图像的红黄区域比较暗,而蓝色区域比较亮。因此可以使用颜色分量的加权和来计算等效的亮度值。

      Y = Lum(R, G, B) = wr * R + wg * G + wb * B;

    常用的权值来自模拟彩色信号编码

      wr = 0.299  wg = 0.587  wb = 0.114

    使用wr = 0.3  wg = 0.59  wb = 0.11值进行彩色转化效果如下:

            

    注意:上述权值是通过电视信号发展起来的,它们仅仅对线性RGB分量值是最有的,即不包含γ(伽马)校正的信号。然而在很多场合下,RGB分量值是非线性的,这种情况下,为了应用上面的权值得到正确的亮度,首先必须对RGB分量进行线性化。另外的方案是不通过线性化来对灰度值进行估计,这就需要应用一个不同权值的集合来对非线性分量进行加权求和。

  • 相关阅读:
    C++11模板类使用心得
    Linux下MakeFile初探
    Leetcode 35 Search Insert Position 二分查找(二分下标)
    Leetcode 4 Median of Two Sorted Arrays 二分查找(二分答案+二分下标)
    数据库分库分表的应用场景及方法分析
    DB主从一致性的几种解决方法
    Redis主从复制和集群配置
    RPC vs RESTful
    Mysql锁详解
    BIO与NIO、AIO的区别
  • 原文地址:https://www.cnblogs.com/fordreamxin/p/4615502.html
Copyright © 2011-2022 走看看