opencv第2讲--色彩空间转换和图片保存


1. 色彩空间转换函数--cvtColor

COLOR_BGR2GRAY = 6  色彩到灰度

COLOR_GRAY2RGB = 8  灰度到色彩

COLOR_BGR2HSV = 40  BGRHSV

COLOR_HSV2BGR = 54  HSVBGR

2. 图像保存--imwrite

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

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

3.代码

QuickDemo.h

#pragma once

#include

using namespace cv;

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

QucikDemo.cpp

#include "QuickDemo.h"

void QuickDemo::colorSpace_Demo(Mat& image)
{
	Mat gray, hsv;

	cvtColor(image, hsv, COLOR_BGR2HSV);   //将BGR图像转换为HSV图像   H 0-180  SV 0-255

	cvtColor(image, gray, COLOR_BGR2GRAY);  //将BGR图像转化为GRAY图像

	imshow("hsv", hsv);       //显示hsv图像

	imshow("gray", gray);     //显示灰度图像

	imwrite("D:\\opencv_test_pics\\hsv2.png", hsv);     //保存hsv图像

	imwrite("D:\\opencv_test_pics\\gray2.png", gray);   //保存gray图像
}

main.cpp

#include
#include

#include "QuickDemo.h"

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
	Mat src = imread("D:\\opencv_test_pics\\2.png");  //load original image
	
	if (src.empty())
	{
		cout << "could not load image..." << endl;
		return -1;
	}

	imshow("input", src);      //the size of window is same as input inmage
	
	QuickDemo qd;
	qd.colorSpace_Demo(src);

	waitKey(0);               //用于停住显示图像的窗口, 0表示一直阻塞在这里。
	destroyAllWindows();
	return 0;
}