1.学习内容:图像色彩空间转换
使用的函数为
cvtColor(编辑对象,新的对象,新对象格式) ;
imwrite(存储位置,存储对象)
注意事项:图片格式不能过大,图片位置应该填写绝对路径,尽量自己手敲,减少粘贴否则容易出错,注意路径用“”//“”而且需要将图片的后缀添加上。
2.源代码
quickopencv.h
#pragma once
#include <opencv2/opencv.hpp>
using namespace cv;
class QuickDemo {
public:
void colorSpace_Demo(Mat& image);
};
main.cpp
#include <opencv2\opencv.hpp>
#include "quickopencv.h"
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
//Mat 矩阵
//imread() 读图片,参数1:图片位置(注意反斜线方向) 参数2:色域
Mat src = imread("D:\\OpenCV\\OpenCV_S02\\text.jpg");
//RGB 只有颜色通道
//灰度图像
//Mat src = imread("D://PS_picture//picture//sample(27).jpg", IMREAD_GRAYSCALE);
//透明通道
//Mat src = imread("D://PS_picture//picture//sample(27).jpg",IMREAD_ANYCOLOR);
//判断是否找到图片位置,防止报错
if (src.empty())
{
cout << "没找到图片" << endl;
return -1;
}
//namedWindow("text", WINDOW_FREERATIO);
imshow("text", src);
QuickDemo qd;
qd.colorSpace_Demo(src);
waitKey(0); //因为阻塞就会一直停留
destroyAllWindows();
return 0;
}
quickdemo.cpp
#include "quickopencv.h"
void QuickDemo::colorSpace_Demo(Mat& image)
{
Mat gray, hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
//HSV 三通道 H0~180 S0~255 V0~255 V是亮度
cvtColor(image, gray, COLOR_BGR2GRAY);
imshow("HSV", hsv);
imshow("hh", gray);
imwrite("D:\\OpenCV\\OpenCV_S02\\hsv.jpg",hsv);
imwrite("D:\\OpenCV\\OpenCV_S02\\gray.jpg",gray);
}