【计算机视觉(4)】

基于Python的OpenCV基础入门——色彩空间转换

  • 色彩空间简介
    • HSV色彩空间
    • GRAY色彩空间
    • 色彩空间转换
  • 色彩空间转换代码实现:

色彩空间简介

色彩空间是人们为了表示不同频率的光线的色彩而建立的多种色彩模型。常见的色彩空间有RGB、HSV、HIS、YCrCb、YUV、GRAY,其中最常用的是RGB、HSV、GRAY。彩色图像RGB在机器中的颜色显示,是基于三基色而言的,三基色指的是红色、绿色和蓝色。

HSV色彩空间

HSV色彩空间是一种常用的色彩表示方式,它是根据颜色的直觉特性来定义的。HSV分别代表色调(Hue)、饱和度(Saturation)和明度(Value),也称为色相、饱和度和亮度。HSV色彩空间与RGB色彩空间有相互转换的关系。

色调(Hue)表示颜色的种类,可以想象为一个颜色环,具体的颜色通过角度来表示。色调的取值范围为0°到360°,其中0°和360°对应红色,120°对应绿色,240°对应蓝色。

饱和度(Saturation)表示颜色的纯度或强度,越大表示颜色越鲜艳,越小表示颜色越灰暗。饱和度的取值范围为0%~100%,其中0%表示灰色,100%表示最鲜艳的颜色。

明度(Value)表示颜色的亮度,越大表示颜色越亮,越小表示颜色越暗。明度的取值范围为0%~100%,其中0%表示黑色,100%表示白色。
在这里插入图片描述

HSV色彩空间的优点是更符合人类对颜色的感知,易于理解和调整,常用于图像处理、图形设计等领域。

GRAY色彩空间

GRAY色彩空间是一种常见的色彩空间,用于表示灰度图像。在GRAY色彩空间中,每个像素的颜色只由一个灰度值来表示,灰度值范围一般是0-255,其中0表示黑色,255表示白色。

色彩空间转换

image = cv2.cvtColor(src, code)
参数:
src:转换前的原始图像。
code:色彩空间转换码
常用的转换码: cv.COLOR_BGR2RGB # BGR 转换为RGB图像
cv.COLOR_BGR2GRAY # BGR 转换为灰度图像
cv.COLOR_BGR2HSV # BGR 转换为 HSV 图像

色彩空间转换代码实现:

利用OpenCV进行读取,使用matplotlib进行显示

import cv2                       #导入OpenCV模块  
import matplotlib.pyplot as plt # 导入matplotlib库  
image = cv2.imread("./img/cat.jpg") # 导入图片  
plt.imshow(image) # 使用matplotlib显示    
plt.show()        # 显示图像  

代码效果图如下:
在这里插入图片描述
如果使用OpenCV读取一张图片,经过一系列操作后,用Pillow或者matplotlib进行显示图像,此时显示的图片为蓝色,这是由于Opnecv颜色通道顺序为BGR所导致,所以我们需要进行色彩空间转换:

import cv2                       #导入OpenCV模块  
import matplotlib.pyplot as plt # 导入matplotlib库  
image = cv2.imread("./img/cat.jpg") # 导入图片  
img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # 色彩空间BGR转RGB  
plt.imshow(img) # 使用matplotlib显示    
plt.show()        # 显示图像  

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/653969.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BLE蓝牙模块在车联网中的智能开锁、数据监控应用

随着科技的不断发展,车联网已经成为了汽车行业的一个热门话题。在这个领域中,BLE蓝牙模块发挥着重要的作用,特别是在智能开锁和数据监控方面的应用。本文将详细介绍BLE蓝牙模块在这两个方面的应用及其优势。   一、智能开锁   1.车辆远程…

从华为云OBS到AWS云上S3:迁移及相关事项

随着云计算的快速发展,企业越来越倾向于将数据存储和管理移到云端。华为云的对象存储服务(OBS)和亚马逊云服务(AWS)上的简单存储服务(S3)是两个备受欢迎的选择。对于那些考虑从华为云OBS迁移到A…

工商银行异地卡兑换泰铢的流程

本文介绍在国内的工商银行,通过现金或银行卡兑换泰国铢等外国货币的纸币或硬币的方法。 最近,准备到泰国旅行,所以需要兑换一些泰铢,防止下飞机到当地后找不到汇率合适、兑换方便的换钱的地方。其中,因为对比发现工商银…

SQL试题使得每个学生 按照姓名的字⺟顺序依次排列 在对应的⼤洲下⾯

学⽣地理信息报告 学校有来⾃亚洲、欧洲和美洲的学⽣。 表countries 数据如下: namecontinentJaneAmericaPascalEuropeXiAsiaJackAmerica 1、编写解决⽅案实现对⼤洲(continent)列的 透视表 操作,使得每个学生 按照姓名的字⺟顺…

Django5+React18前后端分离开发实战14 React-Router6 入门教程

使用nodejs18 首先,将nodejs切换到18版本: nvm use 18创建项目 npm create vitelatest zdpreact_basic_router_dev -- --template react cd zdpreact_basic_router_dev npm install react-router-dom localforage match-sorter sort-by npm run dev此…

Python-3.12.0文档解读-内置函数ord()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 概述 语法 参数 返回值 示例 注意事项 应用场景 记忆策略 常用场景…

JD3-40/23漏电继电器 AC220V 50-500mA 0.1s 导轨安装

系列型号: JD3-40/13漏电继电器JD3-40/23漏电继电器JD3-40/33漏电继电器JD3-40/43漏电继电器 JD3-70/13漏电继电器JD3-70/23漏电继电器JD3-70/33漏电继电器JD3-70/43漏电继电器 JD3-100/23漏电继电器JD3-100/43漏电继电器JD3-100/33漏电继电器JD3-100/13漏电继电…

ARM架构与分类

ARM架构,曾称进阶精简指令集机器(Advanced RISC Machine)更早称作Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架构。 主要是根据FPGA zynq-7000的芯片编写的知识思维导图总结,没有会…

【NumPy】全面解析NumPy随机数生成器:使用numpy.random的实用技巧

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

【软件设计师】算法

1、算法的效率 时间复杂度:程序从开始到结束所需要的时间 空间复杂度:算法在运行过程中临时占用存储空间大小的度量 时间渐近复杂度:时间复杂度由最高次幂决定(判断大小技巧:将n10代入) O(log2 n):二分查找法 O(n):for…

720VR三维立体小程序源码系统 手机电脑端自适应 前后端分离 带完整的安装代码包以及搭建教程

系统概述 720VR 三维立体小程序源码系统是基于先进的技术和理念打造而成的综合性平台。它融合了虚拟现实技术、移动互联网技术以及计算机编程技术,旨在为用户提供沉浸式的 720 度全景体验。 该系统的设计充分考虑了用户的需求,无论是在手机端还是电脑端…

从零学爬虫:使用比如说说解析网页结构

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、网页结构概述 示例:查看网页结构 三、使用比如说说解析网页 1.…

抖音小程序如何生成二维码

1.页面结构 <image src{{imgUrl}}></image>2.代码结构 onLoad(options) {if (options.param) {var qrCode 13246897451257 //传入生成二维码的字符串this.generateQRCode(qrCode);}},//调起第三方库qrCodegenerateQRCode(text) {//调用了qrCode里面的apiconst api…

uniapp App去除iOS底部安全区域白边

未设置的情况下&#xff0c;iOS底部安全区域白边 如图&#xff1a; 去除方法&#xff1a; 在 mainfest.json 中加入一下代码&#xff1a; "safearea" : {"bottom" : {"offset" : "none"} }, 去除效果展示&#xff1a;

HTTP请求拦截器链

文章目录 HTTP请求拦截器链需求定义写一个Controller方法接口写三个http请求拦截器把拦截器加入到配置中&#xff0c;并且配置拦截规则在postman里面发送请求&#xff0c;看下测试结果是否正确 HTTP请求拦截器链 需求定义 我们写一个包含三个HTTP请求拦截器的拦截器链&#x…

盲人无障碍设施建设:科技之光照亮前行之路

在这个快速发展的时代&#xff0c;科技的每一次进步都在悄然改变着我们的生活&#xff0c;尤其在提升特殊群体生活质量方面&#xff0c;展现出前所未有的力量。今天&#xff0c;让我们聚焦于盲人无障碍设施建设这一重要话题&#xff0c;通过一款名为“蝙蝠避障”的辅助软件&…

饲料粉碎混合机组:打造精细化养殖

饲料粉碎混合机组是畜牧业和养殖业中不可或缺的设备。它集饲料粉碎和混合于一体&#xff0c;可以高效地处理各种饲料原料&#xff0c;提高饲料的均匀度和营养价值。 具体来说&#xff0c;饲料粉碎混合机组的主要功能包括将饲料原料进行粉碎&#xff0c;增加其表面积和调质粒度…

小程序唯品会Authorization sign

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

13.Redis之数据库管理redis客户端JAVA客户端

1.数据库管理 mysql 中有一个重要的概念,database 1个 mysql 服务器上可以有很多个 database1个 database 上可以有很多个 表mysql 上可以随心所欲的 创建/删除 数据库~~ Redis 提供了⼏个⾯向 Redis 数据库的操作&#xff0c;分别是 dbsize、select、flushdb、flushall 命令…

Web漏洞:网络安全的隐形杀手

随着互联网的深入发展&#xff0c;Web应用程序已成为企业和个人生活中不可或缺的一部分。然而&#xff0c;随着Web应用的普及&#xff0c;网络安全问题也日益凸显&#xff0c;其中Web漏洞是网络安全领域面临的重大挑战之一。本文将详细探讨一些常见的Web漏洞及其潜在的危害&…