RGB模型转换到hsv原理及其opencv实现代码
来源:互联网 发布:苏宁易购和淘宝哪个好 编辑:程序博客网 时间:2024/06/05 19:00
RGB模型
2. HSV模型
3. 如何理解RGB与HSV的联系
4. HSV在图像处理中的应用
5. opencv中RGB-->HSV实现
在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。
而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。第一次接触HSV,书本里首先抛出的是一个圆锥模型,由于很少使用HSV,所以印象不深刻,但看一些资料时,HSV的概念时不时出来骚扰一些人的神经,所以,弄清楚HSV与RGB的关系,建立直观的印象是很有必要的。
1. RGB模型。
三维坐标:
原点到白色顶点的中轴线是灰度线,r、g、b三分量相等,强度可以由三分量的向量表示。
用RGB来理解色彩、深浅、明暗变化:
色彩变化: 三个坐标轴RGB最大分量顶点与黄紫青YMC色顶点的连线
深浅变化:RGB顶点和CMY顶点到原点和白色顶点的中轴线的距离
明暗变化:中轴线的点的位置,到原点,就偏暗,到白色顶点就偏亮
PS: 光学的分析
三原色RGB混合能形成其他的颜色,并不是说物理上其他颜色的光是由三原色的光混合形成的,每种单色光都有自己独特的光谱,如黄光是一种单色光,但红色与绿色混合能形成黄色,原因是人的感官系统所致,与人的生理系统有关。
只能说“将三原色光以不同的比例复合后,对人的眼睛可以形成与各种频率的可见光等效的色觉。”
2. HSV模型
倒锥形模型:
这个模型就是按色彩、深浅、明暗来描述的。
H是色彩
S是深浅, S = 0时,只有灰度
V是明暗,表示色彩的明亮程度,但与光强无直接联系,(意思是有一点点联系吧)。
3. RGB与HSV的联系
从上面的直观的理解,把RGB三维坐标的中轴线立起来,并扁化,就能形成HSV的锥形模型了。
但V与强度无直接关系,因为它只选取了RGB的一个最大分量。而RGB则能反映光照强度(或灰度)的变化。
v = max(r, g, b)
由RGB到HSV的转换:
" HSV对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。例如,要得到深蓝色,V=0.4 S=1 H=240度。要得到淡蓝色,V=1 S=0.4 H=240度。" --百度百科
4. HSV在图像处理应用
HSV在用于指定颜色分割时,有比较大的作用。
H和S分量代表了色彩信息。
分割应用:
用H和S分量来表示颜色距离,颜色距离指代表两种颜色之间的数值差异。
Androutsos等人通过实验对HSV颜色空间进行了大致划分,亮度大于75%并且饱和度大于20%为亮彩色区域,亮度小于25%为黑色区域,亮度大于75%并且饱和度小于20%为白色区域,其他为彩色区域。
对于不同的彩色区域,混合H与S变量,划定阈值,即可进行简单的分割。
HSV的去阴影算法:
Improving shadow suppression in moving object detection with HSV color information
5. RGB --> HSV中的opencv实现
RGB --> GRAY的实现 算法:
- RGB模型转换到hsv原理及其opencv实现代码
- Opencv的RGB到HSV颜色空间转换
- Opencv的RGB到HSV颜色空间转换
- [转] RGB到HSV转换的vc代码
- HSV颜色到RGB的转换C++代码 直接可用
- openCv RGB到HSV空间的学习
- RGB 到HSV转换 摘自wiki百科
- RGB转换到HSV颜色空间
- RGB到HSV颜色空间的转换
- RGB到HSV颜色空间的转换
- RGB到HSV色彩空间转换表
- RGB转换为HSV的VC++代码
- RGB转换为HSV的VC++代码
- opencv——实现BGR到HSV颜色空间转换
- 使用OpenCV实现内存中图像数据的RGB-->HSV转换
- RGB颜色空间到HSV和YUV的转换关系(含VC代码)
- RGB和HSV转换
- RGB与HSV转换
- 并查集 POJ 1330
- Scanner和BufferReader用法详记
- 让Spark如虎添翼的Zeppelin – 分享篇
- C++对字符串流的读写
- linux软件包管理--RPM包 【二进制包】
- RGB模型转换到hsv原理及其opencv实现代码
- java7,8中的String pool
- Spark 运行模式 standalong & yarn
- Java内存分配及垃圾回收
- 让机器来说话
- 前端开发面试经验之苏宁
- 麦克风波束成形的基本原理
- C++虚基类
- 【ITOO】树形列表的实现与递归算法的应用