14_OpenCV实现色彩空间转换cv::cvtColor()

cv::cvtColor()函数在保留相同数据类型的同时从一个颜色空间转换导另一个颜色空间。

函数原型:

void cv::cvtColor(
	cv::InputArray src,  // input array
	cv::OutputArray dst,  // result array
	int code,  // color mapping code
	int dstCn = 0  // channels in output (0 = automatic)
);

输入矩阵src可以是8位矩阵,16位无符号矩阵或32位浮点矩阵。
输出矩阵dst与输入矩阵有相同的尺寸和深度。
参数code指定要完成的转换操作,可能的值参考下表。
dstCn是目标图像需要的通道数,如果设置为0,表示通道数由src中的通道数和转换编码确定。

cv::cvtColor()可以实现的转换:

转换编码意义
cv::COLORBGR2RGB在RGB或BGR颜色空间之间转换(包括或不包括alpha通道)
cv::COLOR_RGB2BGR
cv::COLOR_RGBA2BGRA
cv::COLOR_BGRA2RGBA
cv::COLOR_RGB2RGBA在RGB或BGR图像中加入alpha通道
cv::COLOR_BGR2BGRA
cv::COLOR_RGBA2RGB从RGB或BGR图像中删除alpha通道
cv::COLOR_BGRA2BGR
cv::COLOR_RGB2BGRA在加入或删除alpha通道时将RGB转换为BGR颜色空间
cv::COLOR_RGBA2BGR
cv::COLOR_BGR2RGBA
cv::COLOR_BGRA2RGB
cv::COLOR_RGB2GRAY转换RGB或BGR颜色空间为灰度空间
cv::COLOR_BGR2GRAY
cv::COLOR_GRAY2RGB转换灰度空间为RGB或BGR颜色空间(在转换过程中可选择删除alpha通道
cv::COLOR_GRAY2BGR
cv::COLOR_RGBA2GRAY
cv::COLOR_BGRA2GRAY
cv::COLOR_GRAY2RGBA将灰度空间转换为RGB或BGR颜色空间,并加入alpha通道
cv::COLOR_GRAY2BGRA
cv::COLOR_RGB2BGR565将RGB或BGR颜色空间转换为BGR565颜色表示,可选择加入或删除alpha通道(16位图像)
cv::COLOR_BGR2BGR565
cv::COLOR_BGR5652RGB
cv::COLOR_BGR5652BGR
cv::COLOR_RGBA2BGR565
cv::COLOR_BGRA2BGR565
cv::COLOR_BGR5652RGBA
cv::COLOR_BGR5652BGRA
cv::COLOR_GRAY2BGR565将灰度空间转换位BGR565颜色表示或者反变换
cv::COLOR_BGR5652GRAY
cv::COLOR_RGB2BGR555从RGN或BGR颜色空间转换为BGR555颜色表示,可选择加入或删除alpha通道(16位图像)
cv::COLOR_BGR2BGR555
cv::COLOR_BGR5552RGB
cv::COLOR_BGR5552BGR
cv::COLOR_RGBA2BGR555
cv::COLOR_BGRA2BGR555
cv::COLOR_BGR5552RGBA
cv::COLOR_BGR5552BGRA
cv::COLOR_GRAY2BGR555灰度空间与BGR555颜色表示相互转换
cv::COLOR_BGR5552GRAY
cv::COLOR_RGB2XYZ将RGB或BGR图像转换为CIE XYZ表示或者反转
cv::COLOR_BGR2XYZ
cv::COLOR_XYZ2RGB
cv::COLOR_XYZ2BGR
cv::COLOR_RGB2YCrCb转换RGB或BGR图像导luma-chroma(a.k.a YCC)颜色表示或反转
cv::COLOR_BGR2YCrCb
cv::COLOR_YCrCb2RGB
cv::COLOR_YCrCb2BGR
cv::COLOR_RGB2HSV将RGB或BGR图像转换为HSV颜色表示或反转
cv::COLOR_BGR2HSV
cv::COLOR_HSV2RGB
cv::COLOR_HSV2BGR
cv::COLOR_RGB2HLS将RGB或BGR图像转换为HLS(hue lightness saturation)颜色表示或反转
cv::COLOR_BGR2HLS
cv::COLOR_HLS2RGB
cv::COLOR_HLS2BGR
cv::COLOR_RGB2Lab将RGB或BGR转换为CIE Lab颜色表示或者反变换
cv::COLOR_BGR2Lab
cv::COLOR_Lab2RGB
cv::COLOR_Lab2BGR
cv::COLOR_RGB2Luv将RGB或BGR图像转换为CIE Luv颜色表示或者反变换
cv::COLOR_BGR2Luv
cv::COLOR_Luv2RGB
cv::COLOR_Luv2BGR
cv::COLOR_BayerBG2RGB从Bayer模式转换为RGB或BGR图像
cv::COLOR_BayerGB2RGB
cv::COLOR_BayerRG2RGB
cv::COLOR_BayerGR2RGB
cv::COLOR_BayerBG2BGR
cv::COLOR_BayerGB2BGR
cv::COLOR_BayerRG2BGR
cv::COLOR_BayerGR2BGR

颜色空间转换有以下约定:
1.  8位图像范围是0~255,16位图像范围是0~65535,浮点数范围是0.0~1.0。
2.  灰度图像转换为彩色图像时,最终图像的所有通道都是相同的,但是逆变换(RGB或BGR转换为灰度),使用加权公式计算灰度值:Y = 0.299*R + 0.587*B + 0.114*B。
3.  HSV或HLS表示的情况下,色调通常为0~360。8位图像中,可能会出现问题,因此转换到HSV颜色空间,并以8位图的形式输出时,色调应该除以2。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值