图像色彩空间转换与图像保存
cvtColor()函数:用于在图像中不同的色彩空间进行转换
imwrite()函数: 函数用于将图像保存到指定的文件,第一个参数为图像保存路径,第二个参数为图像内存对象。
HSV:这个模型中颜色的参数分别是色调(H)、饱和度(S)和明度(V)。
1、创建头文件
#include<opencv2/opencv.hpp>
using namespace cv;
class QuickDemo
{
public:
void colorSpace_Demo(Mat& image);
};
创建完成后需要将该头文件路径加入包含目录
2、创建quickdemo.cpp
#include<quickopencv.h>
void QuickDemo::colorSpace_Demo(Mat &image)
{
Mat gray, hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
// H范围0-180,S、V范围0-255,V来决定亮度
cvtColor(image, gray, COLOR_BGR2GRAY);
imshow("HSV", hsv);
imshow("灰度", gray);
imwrite("D:\\Deeyea\\Learning\\opencv\\image\\hsv.jpg", hsv);// 路径要加图片名,不然报错
imwrite("D:\\Deeyea\\Learning\\opencv\\image\\gray.jpg", gray);
//imwrite("D:\\Deeyea\\Learning", hsv);
}
imwrite():路径要用双斜杠,路径最后是图片名不是文件夹。
3、main函数
#include<quickopencv.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//Mat src = imread("D:\\Deeyea\\Learning\\456.jpg",IMREAD_GRAYSCALE);
Mat src = imread("D:\\Deeyea\\Learning\\cat.jpg"); // 8位,通道为B G R
if (src.empty())
{
printf("无法加载图片\n");
}
//namedWindow("show", WINDOW_FREERATIO);
imshow("image", src);
QuickDemo qd;// 创建对象
qd.colorSpace_Demo(src);
waitKey(0);
destroyAllWindows;
return 0;
}
执行结果为:
cvtcolor函数相关参考链接:
(1)学习opencv之cvtColor_Huo的藏经阁的博客-CSDN博客_cvtcolor
(2)https://blog.csdn.net/weixin_51105360/article/details/11394101