颜色空间转换
2017-08-31 20:38
204 查看
一. 关于HSV颜色空间
参考:http://blog.csdn.net/wudaijun/article/details/9964091HSV颜色模式是除了RGB颜色模式之外的另一种流行的颜色模式,RGB被广泛运用于计算机中,而HSV则用在电视显示方面。它更符合人们对颜色的描述(什么颜色(H),深浅度如何(S),亮度如何(V))。其实在电视机上菜单中的饱和度就是S,亮度就是V。
H:色相,色度,色彩,也就是我们平时说的颜色。如红,黄,洋红等。在HSV模型中,用度数描述,其中红色对于0度,绿色对于120度,蓝色对应240度。
S:饱和度,色彩的深浅度(0-100%)
V:色调,纯度,色彩的亮度(0-100%)
在模型2中:
H是色彩点在对应圆形切面上与红色半径(对于H=0度)所形成的圆心角。
S是色彩点到所在圆形切面圆心的距离与该圆半径的比例值,在圆锥表面上S=1,在圆心处S=0
V是色彩点所在圆形切面到圆锥顶点的距离。在顶面上V=1 顶点V=0
关键点:
- 当S=1 V=1时,H所代表的任何颜色被称为纯色;
- 当S=0时,颜色最浅,最浅被描述为灰色(灰色也有亮度,黑色和白色也属于灰色),灰色的亮度由V决定,此时H无意义;
- 当V=0时,颜色最暗,最暗被描述为黑色,因此此时H(无论什么颜色最暗都为黑色)和S(无论什么深浅的颜色最暗都为黑色)均无意义。
下面是当H=0度 即为红色时,S和V组成的平面:
HSV基本颜色分量范围:
一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。
H: 0 — 180
S: 0 — 255
V: 0 — 255
此处把部分红色归为紫色范围:
二. 转换颜色空间
import cv2 import numpy as np # 显示所有可用的flag # for i in dir(cv2): # if(i.startswith('COLOR_')): # print(i) BGR = cv2.imread("E:dog.jpg") Gray = cv2.cvtColor(BGR,cv2.COLOR_BGR2GRAY) #BGB->Gray HSV = cv2.cvtColor(BGR,cv2.COLOR_BGR2HSV) #BGB->HSV cv2.imshow("BGR",BGR) cv2.imshow("Gray",Gray) cv2.imshow("HSV",HSV) cv2.waitKey(0)
在 OpenCV 的 HSV 格式中, H(色彩/色度)的取值范围是 [0, 179],S(饱和度)的取值范围 [0, 255], V(亮度)的取值范围 [0, 255]。
相关文章推荐
- 图片颜色空间转换
- 颜色空间转换
- OpenCV学习笔记(四):颜色空间转换
- Python OpenCV学习笔记之:颜色空间转换
- 颜色空间转换
- 颜色空间转换
- opencv图像颜色空间转换
- Opencv的cvtColor函数-颜色空间转换
- python数字图像处理(4):图像数据类型及颜色空间转换
- python 图像数据类型及颜色空间转换
- python数字图像处理(4):图像数据类型及颜色空间转换
- 颜色空间转换
- python数字图像处理(4):图像数据类型及颜色空间转换
- OoenCV学习笔记(2)——图像颜色空间转换
- iOS 更改状态栏颜色
- 自定义color文件夹来改变字体颜色
- 颜色空间RGB与TSL的转换
- poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
- 颜色和颜色不是同样的颜色
- Qt鼠标移入时改变QPushButton图标和颜色