0%

【OpenCV4快速入门视频30讲】lesson2:图像色彩空间转换

lesson2:图像色彩空间转换

1.知识点

使用cvcolor对图像色彩空间进行转换,imwrite保存图像

  • 读取图像

  • 色彩空间转换函数 cvColor

    COLOR_BGR2GRAY = 6 彩色到灰度

    COLOR_GRAY2BGR = 8 灰度到彩色

    COLOR_BGR2HSV = 40 BGR到HSV

    COLOR_HSV2BGR = 54 HSV到BGR

  • 图像保存-imwrite

    第一个参数是图像保存路径

    第二个参数是图像内存对象

    这样做的好处是改变图像亮度、饱和度的时候比较方便,处理完成后再返回到RGB图像通道。

2.代码实现

quickopencv.h

1
2
3
4
5
6
7
8
9
10
# 创建一个QuickDemo类
#pragma once
#include <opencv2/opencv.hpp>

using namespace cv;

class QuickDemo {
public:
void colorSpace_Demo(Mat &image);
};

quickdemo.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
名称:OpenCV4快速入门视频30讲 002- 图像色彩转换
时间:2020/12/14
作者:changsl
*/

#include <iostream>
#include "quickopencv.h"

void QuickDemo::colorSpace_Demo(Mat &image)
{
Mat gray,hsv;
cvtColor(image,hsv,COLOR_BGR2HSV); //转换为HSV
// H 1~180,S:0-255饱和度,V:0-255亮度
cvtColor(image,gray,COLOR_BGR2GRAY); //转换为灰度
imshow("hsv",hsv); //显示图像
imshow("gray", gray); //显示图像
imwrite("D:/hsv.png", hsv); //保存图像
imwrite("D:/gray.png", gray); //保存图像啊
}

day02.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*
名称:OpenCV4快速入门视频30讲 002- 图像空间转换
时间:2020/12/15
作者:changsl
*/
#include <iostream>
#include "quickopencv.h"

using namespace std;

int main(int argc, char** argv)
{
Mat src = imread("C:/Users/csl/Desktop/lena.jpg");
if (src.empty())
{
printf("There is not image..\n");
return -1;
}
namedWindow("输入窗口", WINDOW_FREERATIO);
imshow("输入窗口", src);
QuickDemo qd;
qd.colorSpace_Demo(src);
waitKey(0);
destroyAllWindows();
return 0;
}

3.结果展示

image-20201215171922182

结果展示

image-20201215172226603

保存结果
-------------本文结束感谢您的阅读-------------