IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Opencv_03 图像色彩空间转换 -> 正文阅读

[人工智能]Opencv_03 图像色彩空间转换

一. 色彩空间介绍

① RGB/BGR色彩空间

计算机色彩显示器和彩色电视机显示色彩的原理一样,都是采用R,G,B相加混色的原理,通过发射出三种不同强度的电子束,使得屏幕内侧覆盖的红,吕蓝磷光材料发光而产生色彩.这种色彩的表示方法称为RGB色彩空间表示.在RGB颜色空间中,任意色光F都可以用RGB三色不同分量的相加混合而成:

F = r[R] + r[G] +r[B]

RGB色彩空间还可以用一个三维的立方体来描述.当三基色分量都为0(最弱)时,混合为黑色光,当三基色都为k(最大,值由存储空间决定)时混合为白色光.

opencv中R,G,B三通道取值范围均为[0,255]

② 为什么Opencv中采用的是BGR

历史原因: 因为opencv诞生的时候,那个时候的相机开发和软件开发商使用的都是BGR通道.

③ HSV色彩空间

HSV使用一个倒锥体或者是圆柱体来表示

在这里插入图片描述
HSV表示彩色图像的方式由三部分组成:

  • Hue: 色调,色相
  • Saturation: 饱和度,色彩纯净度
  • Value:明度

Hue:
Hue用角度度量,取值范围是0~360°,表示色彩信息,即所处的光谱的颜色的位置. 表示如下:

颜色圆环上所有的颜色都是光谱上的颜色,从红色开始按逆时针方向旋转,Hue=0表示红色,Hue=120表示绿色,Hue=240表示蓝色,在GRB中,颜色由三个值共同决定,比如黄色为(255,255,0),在HSV中,黄色只有一个值决定,Hue=60即可.

HSV 圆柱体的半边横截面 (Hue=60):

其中水平方向表示饱和度,饱和度表示颜色接近光谱色的程度.饱和度越高,说明颜色越深,越接近光谱色.饱和度越低,说明颜色越浅,越接近白色.饱和度为0表示纯白色.取值范围为0-100%,值越大,颜色越饱和.

竖直方向表示明度,决定颜色空间中颜色的明暗程序,明度越高,表示颜色越明亮,范围是0-100%.明度为0表示纯黑色(此时颜色最暗)

可以通俗的理解为:
在Hue一定的情况下,饱和度减小,就是往光谱中添加白色,光谱色所占的比例也在减小,饱和度减少到0,表示光谱所占的比例为零,导致整个颜色呈现白色.

明度减小,就是往光谱中添加黑色,光谱色所占用比例也在减小,明度减为0,表示光谱色所占的比例为0,导致整个颜色呈现黑色.

HSV对用户来说是一种比较直观的颜色模型.我们可以很轻松地得到单一的颜色,即指定颜色角H,并让V=S=1,然后通过向其中加入黑色和白色来得到我们需要的颜色.增加黑色可以减小V而S表示不变,同样增加白色尅减小S而V不变.

注意:
在Opencv中hsv的取值范围分别是: H(0~180) S:(0-255),V:(0-255);

HSV颜色基本对照表

二.色彩空间转换

① cvtColor()函数原型

void cvtColor(InputArray src,OutputArray dst,int code,int dstCn=0);

参数:

  • src: 输入图像,要进行颜色转换的原图像,可以是Mat实例对象.
  • dst: 输出图像,转换后的图像,可以是Mat的实例对象.
  • code:转换的代码和标识,就是将什么类型的图片转换为什么类型的图片
  • dstCn:目标图像通道数,如果取值为0,则由src和code决定

code第三个参数常用的值:

取值说明
COLOR_BGR2GRAY彩色的BGR通道图像转换为灰度图像
COLOR_GRAY2BGR灰度图像转换为彩色的BGR通道图像
COLOR_BGR2HSVBGR通道彩色图像转换为HSV通道图像
COLOR_HSV2BGRHSV通道图像转换为BGR通道图像

② 颜色空间转换案例

/*----------------------------------------------------------------
* 项目: Classical Question
* 作者: Fioman
* 邮箱: geym@hengdingzhineng.com
* 时间: 2022/3/22
* 格言: Talk is cheap,show me the code ^_^
//----------------------------------------------------------------*/
#include"MyOpencv.h"
string imagePath = IMAGE_PATH + "\\green.jpg";


int main()
{
	Mat src = imread(imagePath, IMREAD_COLOR);
	if (src.empty())
	{
		cout << "文件读取失败,请确认路径是否正确: " << imagePath << endl;
	}
	else
	{
		Mat imageRGB, imageGray, imageHSV;
		// 转换成RGB格式图片
		cvtColor(src, imageRGB, COLOR_BGR2RGB);
		// 转换成灰度图像
		cvtColor(src, imageGray, COLOR_BGR2GRAY);
		// 转换成HSV图像
		cvtColor(src, imageHSV, COLOR_BGR2HSV);

		imshow("Original", src);
		waitKey(0);
		imshow("RGB", imageRGB);
		waitKey(0);
		imshow("Gray", imageGray);
		waitKey(0);
		imshow("HSV", imageHSV);
		waitKey(0);
	}
	return 0;
}
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:19:34  更:2022-04-27 11:20:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:47:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码