- OpenCV Python 教程
- OpenCV Python - 主页
- OpenCV Python - 概述
- OpenCV Python - 环境
- OpenCV Python - 读取图像
- OpenCV Python - 写入图像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 图像属性
- OpenCV Python - 位运算
- OpenCV Python - 形状和文本
- OpenCV Python - 鼠标事件
- OpenCV Python - 添加轨迹栏
- OpenCV Python - 调整大小和旋转
- OpenCV Python - 图像阈值
- OpenCV Python - 图像过滤
- OpenCV Python - 边缘检测
- OpenCV Python - 直方图
- OpenCV Python - 颜色空间
- OpenCV Python - 转换
- OpenCV Python - 图像轮廓
- OpenCV Python - 模板匹配
- OpenCV Python - 图像Pyramid
- OpenCV Python - 图像相加
- OpenCV Python - 图像混合
- OpenCV Python - 傅里叶变换
- OpenCV Python - 捕获视频
- OpenCV Python - 播放视频
- OpenCV Python - 视频图像
- OpenCV Python - 来自图像的视频
- OpenCV Python - 人脸检测
- OpenCV Python - Meanshift/Camshift
- OpenCV Python - 特征检测
- OpenCV Python - 特征匹配
- OpenCV Python - 数字识别
- OpenCV Python 资源
- OpenCV Python - 快速指南
- OpenCV Python - 资源
- OpenCV Python - 讨论
OpenCV Python - 颜色空间
颜色空间是描述如何表示颜色的数学模型。它以特定的、可测量的和固定的可能颜色和亮度值范围来描述。
OpenCV 支持以下众所周知的颜色空间 -
RGB 颜色空间- 它是一个加法颜色空间。颜色值是通过红、绿、蓝颜色值的组合获得的。每个都由 0 到 255 之间的数字表示。
HSV 色彩空间- H、S 和 V 代表色调、饱和度和值。这是 RGB 的替代颜色模型。该模型应该更接近人眼感知颜色的方式。色调值在 0 到 179 之间,而 S 和 V 值在 0 到 255 之间。
CMYK 颜色空间- 与 RGB 不同,CMYK 是减色模型。字母代表青色、洋红色、黄色和黑色。白光减去红色,叶子变成青色,白色减去绿色,叶子变成洋红色,白色减去蓝色,叶子变成黄色。所有值均以 0 至 100% 的范围表示。
CIELAB 色彩空间- LAB 色彩空间具有三个分量,L 表示亮度,A 颜色分量范围从绿色到洋红色,B 表示从蓝色到黄色的分量。
YCrCb 颜色空间- 这里,Cr 代表 RY,Cb 代表 BY。这有助于将亮度和色度分离到不同的通道中。
OpenCV 借助cv2.cvtColor()函数支持颜色空间之间的图像转换。
cv2.cvtColor() 函数的命令如下 -
cv.cvtColor(src, code, dst)
转换代码
转换由以下预定义的转换代码控制。
先生。 | 转换代码及功能 |
---|---|
1 | CV.COLOR_BGR2BGRA 将 Alpha 通道添加到 RGB 或 BGR 图像。 |
2 | CV.COLOR_BGRA2BGR 从 RGB 或 BGR 图像中删除 Alpha 通道。 |
3 | CV.COLOR_BGR2GRAY RGB/BGR 和灰度之间进行转换。 |
4 | CV.COLOR_BGR2YCrCb 将 RGB/BGR 转换为亮度-色度 |
5 | 变种COLOR_BGR2HSV 将 RGB/BGR 转换为 HSV |
6 | CV.COLOR_BGR2Lab 将 RGB/BGR 转换为 CIE Lab |
7 | 变种COLOR_HSV2BGR HSV 向后转换为 RGB/BGR |
例子
以下程序显示了将 RGB 颜色空间的原始图像转换为 HSV 和灰度方案 -
import cv2 img = cv2.imread('messi.jpg') img1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY ) img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # Displaying the image cv2.imshow('original', img) cv2.imshow('Gray', img1) cv2.imshow('HSV', img2)