opencvc_0">opencv(c++)图像的灰度转换
opencvh_3">quickopencv.h
#pragma once
#include <opencv2/opencv.hpp>
using namespace cv;
class QuickDemo
{
public:void colorSpace_Demo(Mat& image);
};
opencvcpp_16">quickopencv.cpp
#include "quickopencv.h"// QuickDemo类中的颜色空间演示函数
// 此函数将输入图像转换为HSV和灰度图像,并显示及保存结果
void QuickDemo::colorSpace_Demo(Mat& image)
{Mat gray, hsv;//cvtColor - 用于颜色空间转换,如将BGR图像转换为HSV或灰度图像。cvtColor(image, hsv, COLOR_BGR2HSV);//COLOR_BGR2HSV是将BGR图像转换为HSV空间cvtColor(image, gray, COLOR_BGR2GRAY);//COLOR_BGR2GRAY是将BGR图像转换为灰度图像imshow("HSV", hsv);imshow("灰度", gray);imwrite("D:/opencv_img/hsv.jpg", hsv);imwrite("D:/opencv_img/gray.jpg", gray);
}
main.cpp
#include<opencv2/opencv.hpp>
#include"quickopencv.h"
#include<iostream>// 主函数,程序的入口点
using namespace cv;
using namespace std;int main()
{Mat src = imread("D:/123.jpg"); // 读取指定路径的图片if (src.empty()){cout << "Could not open or find the image" << endl; // 如果图片无法打开或找不到,输出错误信息return -1;}namedWindow("src", WINDOW_FREERATIO); // 创建一个窗口用于显示图片imshow("src", src); // 在窗口中显示读取的图片QuickDemo qd; // 创建一个QuickDemo类的对象qd.colorSpace_Demo(src); // 调用colorSpace_Demo方法处理图片的色彩空间waitKey(0); // 等待用户按键destroyAllWindows(); // 销毁所有创建的窗口return 0; // 程序正常结束
}
stroyAllWindows(); // 销毁所有创建的窗口
return 0; // 程序正常结束
}
最后会将图片使用imwrite()存储到指定位置
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/00e10907906d4631945da2ec1efe9e6f.png)