**

Opencv颜色空间最全

**

颜色空间也称彩色模型(又称彩色空间或彩色系统)本质上,彩色模型是坐标系统和子空间的阐述。位于系统的每种颜色都有单个点表示。采用的大多数颜色模型都是面向硬件或面向应用的。颜色空间从提出到现在已经有上百种,大部分只是局部的改变或专用于某一领域。科学研究中有不少逻辑性等方面比HSХ更高的颜色空间。
颜色空间有许多种,常用有RGB,CMY,HSV,HSI等

下面看opencv一张图:

RGB

RGB是通过红绿蓝三原色来描述颜色的颜色空间,R=Red、G=Green、B=Blue。
RGB颜色空间以R(Red红)、G(Green绿)、B(Blue蓝)三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。在大自然中有无穷多种不同的颜色,而人眼只能分辨有限种不同的颜色,RGB模式可表示一千六百多万种不同的颜色,在人眼看来它非常接近大自然的颜色,故又称为自然色彩模式。

色度学规则:
  (1)通过R,G,B这三种颜色能产生任何颜色,并且这三种颜色混合后产生的颜色是唯一的。
  (2)如果两个颜色相等,这三个颜色分量再乘以或者除以相同的数,得到的颜色仍然相等。
  (3)混合色的亮度等于每种颜色亮度的和。

YUV/Ycbcr

YUV空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。
YUV使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。
YUV和RGB的转换:
Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128

YCbCr 是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分,其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV家族中, YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。
YCbCr与RGB的相互转换
   Y=0.299R+0.587G+0.114B
   Cb=0.564(B-Y)
   Cr=0.713(R-Y)
YCbCr主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2 x 2 个点保存一个 Cr和Cb值,图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned) 模型, 每个点需要8x3=24 bits, 而现在仅需要 8+(8/4)+(8/4)=12bits,平均每个点占12bits。这样就把图像的数据压缩了一半。

HSV/HLS


HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间,
色调H用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度S饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度V明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

RGB转化到HSV的算法:

HLS颜色空间,三个分量分别是色相(H)、亮度(L)、饱和度(S),这三个分量进行数字化处理,取值范围为:
0<=H<=360,0<=S<=1,0<=L<=1

RGB转化到HLS的算法:

Lab/LUV

Lab的全称是CIELAB,有时候也写成CIE Lab*

Lab是由一个亮度通道(channel)和两个颜色通道组成的。在Lab颜色空间中,每个颜色用L、a、b三个数字表示,各个分量的含义是这样的:

  • L*代表亮度
  • a*代表从绿色到红色的分量
  • b*代表从蓝色到黄色的分量

Lab相较于RGB与CMYK等颜色空间更符合人类视觉,也更容易调整:想要调节亮度(不考虑Helmholtz–Kohlrausch effect,见下注)就调节L通道,想要调节只色彩平衡就分别调a和b

理论上说,L*、a*、b*都是实数,不过实际一般限定在一个整数范围内:

  • L越大,亮度越高。L为0时代表黑色,为100时代表白色。
  • a和b为0时都代表灰色。
  • a*从负数变到正数,对应颜色从绿色变到红色。
  • b*从负数变到正数,对应颜色从蓝色变到黄色。
  • 我们在实际应用中常常将颜色通道的范围-100+100或-128127之间。

LUV色彩空间全称CIE 1976(L*,u*,v*)(也作CIELUV)色彩空间,L表示物体亮度,u和v是色度。于1976年由国际照明委员会(International Commission on Illumination)提出,由CIE XYZ空间经简单变换得到,具视觉统一性。类似的色彩空间有CIELAB。对于一般的图像,u和v*的取值范围为-100到+100,亮度为0到100。

CMYK/CMY

这个颜色模型常用于印刷出版。CMYK表示青(Cyan)品红(Magenta)黄(Yellow)黑(BlacK)四种颜料。由于颜料的特性,该模型也是与设备相关的。相对于RGB的加色混色模型,CMY是减色混色模型,颜色混在一起,亮度会降低。之所以加入黑色是因为打印时由品红、黄、青构成的黑色不够纯粹。

CIEXYZ

在颜色感知的研究中,CIE 1931 XYZ 色彩空间(也叫做 CIE 1931 色彩空间)是其中一个最先采用数学方式来定义的色彩空间,它由国际照明委员会(CIE)于1931年创立。CIE XYZ 色彩空间是从 1920 年代后期 W. David Wright (Wright 1928) 和 John Guild (Guild 1931) 做的一系列实验中得出的。他们的实验结果合并到了 CIE RGB 色彩空间的规定中,CIE XYZ 色彩空间再从它得出
转换公式:

  [X]        [0.433953    0.376219    0.189828]    [R][Y]    =  [0.212671    0.715160    0.072169]    [G]     [Z]        [0.017758    0.109477    0.872765]    [B]

结语:粗糙整理,将就看看吧,最后,感谢观看

Opencv颜色空间最全相关推荐

  1. OpenCV颜色空间转换函数:cv::cvtColor介绍

    OpenCV颜色空间转换函数:cv::cvtColor介绍 Color Conversion Code(颜色转换代码) Enumerator COLOR_BGR2BGRA add alpha chan ...

  2. 四、OpenCV颜色空间——HSV颜色模型

    教程汇总:python基础入门系列 该章节主要介绍两种颜色空间RGB与HSV,HSV将作为我们主要使用的颜色空间. RGB: 在计算机体系中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三 ...

  3. opencv颜色空间缩减

    #include<iostream> #include<opencv2/opencv.hpp> #include<opencv2/highgui/highgui.hpp& ...

  4. pycharm OpenCV代码补全失效解决方法

    转载于:https://blog.csdn.net/wjsiou123/article/details/88343328 问题描述: 最近在pycharm中打开以前的项目,发现cv2模块没有代码提示, ...

  5. OpenCV颜色空间——Lab颜色空间

    对于Lab颜色空间,OpenCV同样实现了BGR和Lab之间的转换,如果BGR的值在[0,1]之间,那么转换为Lab的取值范围为: ,, 通过以下程序调节L分量,观察其效果: #include< ...

  6. cv2.cvtColor(image,cv2.COLOR_RGB2BGR) opencv颜色空间的转换

    和常用的图像处理库不一样的是,opencv读取的图像是bgr格式.所以在使用plt 或者PIL工具进行显示的时候,需要十分注意要进行颜色空间的转换. import math import random ...

  7. opencv: 颜色空间转换(cv2.cvtColor) 探究(图示+源码)

    API Definition 我们从 OpenCV官网 的Miscellaneous Image Transformations 上,可查到 cv2.cvtColor 这个api的定义如下: cvtC ...

  8. Opencv颜色空间转换---BGR和HSV详解

    目录 色彩空间简介 BGR颜色空间 HSV颜色空间 BGR和HSV之间的转换 BGR转HSV HSV转BGR OpenCV中的实现 相关函数说明 BGR2HSV HSV2BGR 实例说明 代码 参考资 ...

  9. opencv 颜色空间转换、颜色追踪

    opencv 有150种空间转换方法,我们只研究最长用的两种: 1.BGR->灰色 flag=BGR2GRAY 2.BGR->HSV flag=BGR2HSV 函数使用 cvtColor( ...

  10. OpenCV颜色空间——Luv颜色空间

    Luv颜色空间,三个值的取值范围: ,, 调节L分量: #include<opencv2/core.hpp> #include<opencv2/imgproc.hpp> #in ...

最新文章

  1. tornado 异步两种实现形式 通过回调可以利用
  2. R语言return返回值的形式实战
  3. MODE —— 两个人在计算机上玩圈叉游戏|井字游戏(知识点:二维数组)
  4. anaconda换源和恢复默认源
  5. 判断程序是否通过RFC运行
  6. Hardcoded string , should use @string resource警告 Tag start is not closed
  7. mysql mgr简介_MySQL Group Replication(MGR)使用简介与注意事项
  8. 正确的工作流程:我应该使用哪个OAuth 2.0流程?
  9. ppt flash倒计时器_PPT三大神器之iSlide插件
  10. 删除js数组中制定内容
  11. VS2008SP1下jQuery使用初体验
  12. Android倒计时器——CountDownTimer
  13. 多线程编程之优先级翻转问题
  14. 人工智能导论测试题——第3章自动推理与专家系统
  15. 子列和列_最大子列和
  16. QuickPCB2005超级封装库与免费教程
  17. IDEA web.xml版本过低怎么生成新的
  18. java date the type is ambiguous,The type File is ambiguous,该如何解决
  19. jeecms 取附件
  20. APP运营中地推应该怎么做

热门文章

  1. mediacodec配置h265解码
  2. WQM软件使用说明书
  3. java snakeyaml_java – 使用SnakeYAML的嵌套构造
  4. 3dB等波纹低通滤波器设计(HFSS)
  5. CAJViewer的下载与使用
  6. java多个点求连线_实现简单的粒子连线
  7. 第六章 自然的数学化和分析化
  8. 微软私有云系列 ----SQL 云部署
  9. java 自己实现工作流_Java基于jeeplus vue实现简单工作流过程图解
  10. Label mx条码打印软件批量制作ITF-14条码