OpenCV学习2 颜色空间的转换

本文介绍了OpenCV中颜色空间转换的基本概念,包括常见的RGB、HSV、HLS、Lab、XYZ、YUV等颜色系统,并详细讲解了cvtColor函数的使用,该函数用于在不同颜色空间间进行转换。此外,还展示了实际的转换效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

颜色空间的转换

一、颜色空间简介

常用的颜色系统有RGB、HSV、HLS、Lab、XYZ、YUV等。这之中有些把颜色分成色调、饱和度和亮度。而RGB三原色的色彩系统模式是是通过对红( R )、绿(G)、蓝(B)三原色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,通过这三种颜色通道的变化几乎可以得到人类目前能感知到的所有颜色,也是目前运用最广的颜色系统之一。

二、函数说明

cvtColor()函数是OpenCV里的颜色转换函数,可以实现各种颜色空间的转换。
那我们先看下看一下cvtColor函数定义:
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0)
其中 src: 输入图像;dst: 输出图像;code: 颜色空间转换标识符;
dstCn: 目标图像的通道数(参数为0时,目标图像和源图像的通道数一致);
***注意:***在opencv2版本时颜色空间转换的宏定义是CV_前缀开头,而在opencv3版以后的其颜色空间转换宏定义更改为COLOR_开头,不过小僧发现OpenCV2.4.10版本的两者都行,其他版本暂时不知。

三、六种颜色空间的转换

#include <opencv2\opencv.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main()
{
	// 设置变量
	Mat rgb, gray, hsv, lab , xyz, yuv;
	// 检查读取是否读取成功
	rgb = imread("1.jpg");
	if (rgb.empty())
	{
		cout << "输入图像有错!" << endl;
		return -1;
	}
	//显示RGB原图
	namedWindow("RGB图",WINDOW_NO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值