OpenCV中GRAY、HSV色彩空间的简介及与BGR色彩空间的转换演示(附源码 超详细)

2024-03-04 06:10

本文主要是介绍OpenCV中GRAY、HSV色彩空间的简介及与BGR色彩空间的转换演示(附源码 超详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需要源码请点赞关注收藏后评论区留言私信~~~

色彩是人类的眼睛对于不同频率的光线的不同感受,不同频率的光线既是客观存在的又是人类主观感知的。为了表示这些不同频率的光线的色彩,人类建立了多种色彩模型,把这些色彩模型称作色彩空间。OpenCV中的BGR色彩空间有3个通道,即表示蓝色的B通道、表示绿色的G通道和表示红色的R通道

下面我们介绍另外两个比较常用的色彩空间:GRAY色彩空间和HSV色彩空间

一、GRAY色彩空间

GRAY色彩空间指的是灰度图像,灰度图像是一种每个像素都是从黑到白,被处理为256个灰度级别的单色图像,这256个灰度级别分别用区间(0,255)中的数值表示。其中0表示纯黑色,255表示纯白色,0-255的数值表示不同亮度的深灰色或者浅灰色,因此,一幅灰度图像也能够展现丰富的细节信息

OpenCV中用于转换图像色彩空间的cvtColor方法,其语法如下

dst=cv2.cvtColor(src,code)

src 转换前的初始图像

code 色彩控件转换吗

当图像从BGR色彩空间转换到GRAY色彩空间时,常用的色彩空间转换码是cv2.COLOR_BGR2GRAY

 下面将BGR色彩空间转换到GRAY色彩空间

 

import cv2image = cv2.imread("5.1.jpg")
cv2.imshow("5.1", image)  # 显示图5.1
# 将图5.1从BGR色彩空间转换到GRAY色彩空间
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("GRAY", gray_image)  # 显示灰度图像
cv2.waitKey()
cv2.destroyAllWindows()

二、HSV色彩空间

HSV色彩空间是基于色调、饱和度和亮度而言的

其中色调H是指光的颜色,在OpenCV中 色调在区间(0,180)内取值,例如代表红色 黄色 绿色和蓝色的色调值分别为0 30 60 120

彩虹中的色调

 

饱和度S是指色彩的深浅,在OpenCV中 饱和度在区间(0,255)内取值,当饱和度为0时图像将变为灰度图

亮度V是指光的明暗,与饱和度相同的取值范围,亮度值越大,图像越亮

光的明暗

从BGR色彩空间转换到HSV色彩空间时转换码时cv2.COLOR_BGR2HSV

代码如下

import cv2image = cv2.imread("5.1.jpg")
cv2.imshow("5.1", image) # 显示图5.1
# 将图5.1从BGR色彩空间转换到HSV色彩空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow("HSV", hsv_image) # 用HSV色彩空间显示的图像
cv2.waitKey()
cv2.destroyAllWindows()

 创作不易 觉得有帮助请点赞关注收藏~~~

这篇关于OpenCV中GRAY、HSV色彩空间的简介及与BGR色彩空间的转换演示(附源码 超详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772230

相关文章

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

如何在Java Spring实现异步执行(详细篇)

《如何在JavaSpring实现异步执行(详细篇)》Spring框架通过@Async、Executor等实现异步执行,提升系统性能与响应速度,支持自定义线程池管理并发,本文给大家介绍如何在Sprin... 目录前言1. 使用 @Async 实现异步执行1.1 启用异步执行支持1.2 创建异步方法1.3 调用

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三