opencv学习笔记(三)颜色转换 cvtColor

本文介绍如何使用cvtColor函数进行图像色彩空间转换,包括RGB到灰度图、HSV及BGR等转换方式,并提供了详细的代码示例。

在我们读取图像时通常会用到imread()函数,里面flags可以决定通道数,来得到我们想要的图像,比如:
-1 按解码得到的方式读入图像;
0 单通道 灰度图;
1 三通道 彩色;
当我们想要其他类型的图像时,这种方法就有一些局限性了,所以我们有必要了解cvtColor 这是一种颜色空间转换函数。
先看源码:

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

src 输入图像
dst 输出图像
code 代码颜色空间转换代码
dstCn 目标图像中的信道数; 如果该参数为0,则通道的数量自动从SRC和code派生。

可以支持RGB HSV 等颜色空间转换(建议不要使用人脸尝试,有些效果懂的都懂)

代码:

int main()
{
   
   
	Mat img1, img2, img3, img4;
	img1 = imread("猫1.jpg");
	imshow("原图", img1);
	cvtColor(img1, img2, COLOR_RGB2GRAY);
	imshow("灰度图", img2);
	cvtColor(img1, img3, COLOR_RGB2HSV);
	imshow("HSV", img3);
	cvtColor(img1, img4, COLOR_RGB2BGR);
	imshow("BGR", img4);
	waitKey(0);
}

效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
附:代码颜色空间转换代码

enum ColorConversionCodes {
   
   
    COLOR_BGR2BGRA     = 0, //!< add alpha channel to RGB or BGR image
    COLOR_RGB2RGBA     = COLOR_BGR2BGRA,

    COLOR_BGRA2BGR     = 1, //!< remove alpha channel from RGB or BGR image
    COLOR_RGBA2RGB     = COLOR_BGRA2BGR,

    COLOR_BGR2RGBA     = 2, //!< convert between RGB and BGR color spaces (with or without alpha channel)
    COLOR_RGB2BGRA     = COLOR_BGR2RGBA,

    COLOR_RGBA2BGR     = 3,
    COLOR_BGRA2RGB     = COLOR_RGBA2BGR,

    COLOR_BGR2RGB      = 4,
    COLOR_RGB2BGR      = COLOR_BGR2RGB,

    COLOR_BGRA2RGBA    = 5,
    COLOR_RGBA2BGRA    = COLOR_BGRA2RGBA,

    COLOR_BGR2GRAY     = 6, //!< convert between RGB/BGR and grayscale, @ref color_convert_rgb_gray "color conversions"
    COLOR_RGB2GRAY     = 7,
    COLOR_GRAY2BGR     = 8,
    COLOR_GRAY2RGB     = COLOR_GRAY2BGR,
    COLOR_GRAY2BGRA    = 9,
    COL
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅念念52

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值