学习C++和OpenCV的二天

这篇博客介绍了如何使用OpenCV进行图像色彩空间转换,包括从BGR到HSV和灰度图像的转换,并展示了如何使用imwrite函数保存转换后的图像。代码示例中,作者创建了一个QuickDemo类,定义了colorSpace_Demo方法,该方法实现了色彩空间转换并显示和保存了转换结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}

3.编译结果:

4.图片资源:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游天河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值