opencv(c++)图像的灰度转换

news/2024/11/14 13:26:26/

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)

http://www.ppmy.cn/news/1546939.html

相关文章

Python 连接 Redis 进行增删改查(CRUD)操作

文章目录 Python 连接 Redis 进行增删改查&#xff08;CRUD&#xff09;操作介绍安装 redis-py连接 Redis增加&#xff08;Create&#xff09;查询&#xff08;Read&#xff09;更新&#xff08;Update&#xff09;删除&#xff08;Delete&#xff09;其他常用操作检查键是否存…

MySQL数据库常用命令大全(完整版——表格形式)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 ✨特色专栏&#xff1a…

C语言 | Leetcode C语言题解之第552题学生出勤记录II

题目&#xff1a; 题解&#xff1a; const int MOD 1000000007;struct Matrix {long mat[6][6];int row, col; };struct Matrix multiply(struct Matrix a, struct Matrix b) {int rows a.row, columns b.col, temp b.row;struct Matrix c;memset(c.mat, 0, sizeof(c.mat)…

MySQL技巧之跨服务器数据查询:基础篇-如何获取查询语句中的参数

MySQL技巧之跨服务器数据查询&#xff1a;基础篇-如何获取查询语句中的参数 上一篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以…

Flink CEP 入门

1&#xff0e;复杂事件处理 大数据应用领域存在业务逻辑非常复杂的应用系统&#xff0c;比如&#xff0c;一个应用要检测特定顺序先后发生的一组事件&#xff0c;对事件组进行分析或报警提示&#xff0c;若使用SQL 或者DataStream API 处理这类应用&#xff0c;过程相对来说比较…

「QT」几何数据类 之 QLine 整型直线类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

学术论文写作丨机器学习与深度学习

目录 第一章、ChatGPT-4o使用方法与技巧 第二章、ChatGPT-4o辅助文献检索、总结与分析 第三章、ChatGPT-4o辅助学术论文选题、创新点挖掘与实验方案设计 第四章、ChatGPT-4o辅助学术论文开题与大纲生成 第五章、ChatGPT-4o辅助学术论文写作马拉松活动介绍 第六章、ChatGP…

.Net Core根据文件名称自动注入服务

.Net Core根据文件名称自动注入服务 说明分析逻辑所有代码一键注入 说明 这个适用于.Net Core 的Web项目,且需要在服务中注入接口的需求.因为之前些Java Web习惯了,所以会有Dao层,Serivce层和Controller层.但是如果一个项目里面对于不同的数据库会有多个Dao,如果一个一个引入会…