zoukankan      html  css  js  c++  java
  • RGB与HSV

    颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间。但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象。就是说我们做的只是把颜色进行了编码,用数字来表达,并未对颜色本身做出改变。

    表达方式一 RGB空间

    RGB是通过红绿蓝三原色来描述颜色的颜色空间,R=Red、G=Green、B=Blue。是图像处理中最基本、最常用、面向硬件的颜色空间。我们采集到的彩色图像,一般就是被分成R、G、B的成分加以保存的。
    RGB色彩空间采用物理三基色表示,因而物理意义很清楚,适合彩色显象管工作。然而这一体制并不适应人的视觉特点。因而,产生了其它不同的色彩空间表示法。

    RGB颜色空间最大的优点就是适合于显示系统,直观且容易理解。但是对彩色描述上的应用还有以下不足:

    (1) RGB颜色空间利用三个颜色分量的线性组合来表示颜色,因此不同的色彩难以用精确的数值来表示,定量分析困难。

    (2) 在RGB颜色系统中,三个颜色分量之间是高度相关的,即只要亮度改变,三个分量都会相应的改变,如果一个颜色的某一个分量发生了一定程度的改变,那么这颜色很可能也要发生改变。

    HSV颜色空间

    HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。

    色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°

    饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。

    饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。

    明度(V),取0-max(计算机中HSV取值范围和存储的长度有关)。

    HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。

    RGB颜色空间中,三种颜色分量的取值与所生成的颜色之间的联系并不直观。而HSV颜色空间,更类似于人类感觉颜色的方式,封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?”

    结论:

    当S=1 V=1时,H所代表的任何颜色被称为纯色;
    当S=0时,即饱和度为0,颜色最浅,最浅被描述为灰色(灰色也有亮度,黑色和白色也属于灰色),灰色的亮度由V决定,此时H无意义;
    当V=0时,颜色最暗,最暗被描述为黑色,因此此时H(无论什么颜色最暗都为黑色)和S(无论什么深浅的颜色最暗都为黑色)均无意义。

    图像处理

    对图像的操作主要分为一元操作,二元操作以及空间操作。

    一元操作即output(x,y)=fun(input(x,y)),它是对图像中的像素点进行操作,常见的有灰度化,二值化。

    直方图均衡化是为了提高图像的质量,减少图像过黑或过白的影响

    二元操作是两个图像间的加减乘除操作

    空间操作分为先行操作和非线性操作

    则是将输入周围的像素点通过处理,得到该位置的输出,如卷积边缘检测,图像平滑,中值滤波

    非线性操作有数学形态学

    腐蚀:大的对象消失或变小

    膨胀

    先腐蚀后膨胀:开操作,选择特定形状,清理图像

    先膨胀后腐蚀,闭操作

    开操作:去除噪声

  • 相关阅读:
    初认识AngularJS
    (imcomplete) UVa 10127 Ones
    UVa 10061 How many zero's and how many digits?
    UVa 11728 Alternate Task
    UVa 11490 Just Another Problem
    UVa 10673 Play with Floor and Ceil
    JSON对象和字符串的收发(JS客户端用typeof()进行判断非常重要)
    HTML.ActionLink 和 Url.Action 的区别
    EASYUI TREE得到当前节点数据的GETDATA方法
    jqueery easyui tree把已选中的节点数据拼成json或者数组(非常重要)
  • 原文地址:https://www.cnblogs.com/Sunqingyi/p/12636471.html
Copyright © 2011-2022 走看看