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

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

在这里插入图片描述

quickopencv.h
#pragma once
#include <opencv2/opencv.hpp>
using namespace cv;
class QuickDemo 
{
public:void colorSpace_Demo(Mat& image);
};
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.mzph.cn/pingmian/60931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

problem forward和solution backward有什么区别

Note: 在具体研究中&#xff0c;problem forward是先提出问题&#xff0c;然后围绕着科学问题设计出完美的解决方案&#xff1b;而solution backward是先盘算自己有哪些技术&#xff0c;有哪些解决方案&#xff0c;反过来去寻找和定义问题。

C++构造函数详解

构造函数详解&#xff1a;C 中对象初始化与构造函数的使用 在 C 中&#xff0c;构造函数是一种特殊的成员函数&#xff0c;它在创建对象时自动调用&#xff0c;用来初始化对象的状态。构造函数帮助我们确保每个对象在被创建时就处于一个有效的状态&#xff0c;并且在不传递任何…

LeetCode 445.两数相加 II

题目&#xff1a; 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 思路&#xff1a;反转链表 两数相加 I 代码&…

使用WebSocket技术实现Web应用中的实时数据更新

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用WebSocket技术实现Web应用中的实时数据更新 使用WebSocket技术实现Web应用中的实时数据更新 使用WebSocket技术实现Web应用中…

基于STM32的智能路灯控制系统设计

引言 随着城市建设的发展&#xff0c;路灯管理逐渐成为智慧城市建设的重要组成部分。传统路灯系统无法根据环境条件进行智能调节&#xff0c;导致能源浪费。本项目基于STM32微控制器设计了一种智能路灯控制系统&#xff0c;系统能够根据光照强度和周围人员活动情况&#xff0c…

奇文网盘部署指南

内容来自官方 官方地址 https://pan.qiwenshare.com/docs/guide/install.html#%E5%90%8E%E5%8F%B0 #下载编译 #后台 git clone https://gitee.com/qiwen-cloud/qiwen-file.git本项目是本质上是一个maven工程&#xff0c;因此&#xff0c;在命令行执行普通的maven编译命令即可…

[N1CTF 2018]eating_cms

打开题目 只有个登录框&#xff0c;其他什么都没有&#xff0c;尝试了一下弱口令&#xff0c;没能成功 尝试访问一下register.php&#xff0c;看看能不能注册个账号 注册页面&#xff0c;随便注册个账号登陆一下 url中感觉是个注入点&#xff0c;尝试使用file伪协议读取一下us…

什么是SSL VPN?其中的协议结构是怎样的?

定义&#xff1a;SSL VPN是以SSL协议为安全基础的VPN远程接入技术&#xff0c;移动办公人员使用SSL VPN可以安全、方便的接入企业内网&#xff0c;访问企业内网资源&#xff0c;提高工作效率。 SSL&#xff08;Security Socket Layer&#xff09;是一个安全协议&#xff0c;为…

算法之二分查找优化:leetcode34:在排序数组中查找元素的第一个和最后一个位置

题干 分析 问题背景 给定一个已排序的数组&#xff0c;目标是找到一个给定的目标值 target 在数组中的 第一个位置 和 最后一个位置。如果目标值不存在&#xff0c;返回 [-1, -1]。 由于题干要求的时间复杂度是 O(log n)&#xff0c;并且数组是有序的&#xff0c;考虑使用二分…

【3D Slicer】的小白入门使用指南九

定量医学影像临床研究与实践 任务 定量成像教程 定量成像是从医学影像中提取定量测量的过程。 本教程基于两个定量成像的例子构建: - 形态学:缓慢生长肿瘤中的小体积变化 - 功能:鳞状细胞癌中的代谢活动 第1部分:使用变化跟踪模块测量脑膜瘤的小体积变化第2部分:使用PET标…

大模型(LLMs)进阶篇

大模型&#xff08;LLMs&#xff09;进阶篇 一、什么是生成式大模型&#xff1f; 生成式大模型&#xff08;一般简称大模型LLMs&#xff09;是指能用于创作新内容&#xff0c;例如文本、图片、音频以及视频的一类深度学习模型。相比普通深度学习模型&#xff0c;主要有两点不…

为什么要使用Ansible实现Linux管理自动化?

自动化和Linux系统管理 多年来&#xff0c;大多数系统管理和基础架构管理都依赖于通过图形或命令行用户界面执行的手动任务。系统管理员通常使用清单、其他文档或记忆的例程来执行标准任务。 这种方法容易出错。系统管理员很容易跳过某个步骤或在某个步骤上犯错误。验证这些步…

C# 实现对指定句柄的窗口进行键盘输入的实现

在C#中实现对指定句柄的窗口进行键盘操作&#xff0c;可以通过多种方式来实现。以下是一篇详细的指南&#xff0c;介绍如何在C#中实现这一功能。 1. 使用Windows API函数 在C#中&#xff0c;我们可以通过P/Invoke调用Windows API来实现对指定窗口的键盘操作。以下是一些关键的…

BIO、NIO、AIO的区别?

文章目录 BIO、NIO、AIO的区别&#xff1f;为什么不使用java 原生nio哪些项目使用了netty BIO阻塞I/O存在问题 NIO&#xff08;nonblocking IO&#xff09;Java NIO channel(通道)、buffer、selector&#xff08;选择器&#xff09; AIO(Asynchronous I/O&#xff09; BIO、NIO…

JavaWeb--MySQL

1. MySQL概述 首先来了解一下什么是数据库。 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库。 像我们日常访问的电商网站京东&#xff0c;企业内部的管理系统OA、ERP、CRM这类的系统&#xff0c;以及大家每天都会刷的头条、抖音…

第十六届蓝桥杯模拟赛(第一期)-c++/c

前面填空参考https://blog.csdn.net/2301_76891851/article/details/143448411 后面大题code&#xff1a; 停车场停车 #include <bits/stdc.h> #define int long long using namespace std; int tmp; signed main() {int n;cin>>n;if(n<15)cout<<"…

魔方和群论

魔方和群论之间有着深刻的联系。魔方本质上是一个组合问题&#xff0c;所有可能的状态都可以通过有限次操作从初始状态生成。这些操作在数学上可以用群论描述。以下是它们之间的关系及意义&#xff1a; 1. 魔方的基本定义与群的对应 群&#xff1a; 在数学中&#xff0c;群是一…

Qt学习笔记(四)多线程

系列文章目录 Qt开发笔记&#xff08;一&#xff09;Qt的基础知识及环境编译&#xff08;泰山派&#xff09; Qt学习笔记&#xff08;二&#xff09;Qt 信号与槽 Qt学习笔记&#xff08;三&#xff09;网络编程 Qt学习笔记&#xff08;四&#xff09;多线程 文章目录 系列文章…

Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)

作者&#xff1a;来自 Elastic Ranjana Devaji, Dana Juratoni Elasticsearch 8.16 引入了 BBQ&#xff08;Better Binary Quantization - 更好的二进制量化&#xff09;—— 一种压缩向量化数据的创新方法&#xff0c;其性能优于传统方法&#xff0c;例如乘积量化 (Product Qu…

【Python进阶】Python中的数据库交互:使用SQLite进行本地数据存储

1、数据持久化与访问效率 数据持久化是指程序运行过程中产生的数据能够长期保存&#xff0c;即使程序关闭或系统重启后仍可读取和修改。通过数据库&#xff0c;我们可以确保数据持久化的同时&#xff0c;实现数据的快速访问。例如&#xff0c;银行系统需要实时更新账户余额&am…