【P21】OpenCV Python——RGB和BGR,HSV和HSL颜色空间,及VScode中报错问题解决

P21

  • 1 RGB和BGR
  • 2 HSV和HSL,YUV
    • 2.1 HSV
      • 2.1. 色调H
      • 2.1.2 饱和度S
      • 2.1.3 明度V
    • 2.2 HSL
    • 2.3 YUV
  • 3 颜色空间转换实战
  • 4 VScode中报错问题
  • 5 Windows 下 VScode 路径格式(VScode很强大,路径格式写法自由多样)

RGB/BGR人眼识别的颜色 ;
HSV/HSB/HSL主要是适用于硬件;
YUV视频用于视频存储;

1 RGB和BGR

在这里插入图片描述

HSV和HSB表示一个意思,V(value)和B(bright)都表示明度;
YUV视频领域(节省存储空间)
在这里插入图片描述
在这里插入图片描述

2 HSV和HSL,YUV

在这里插入图片描述

2.1 HSV

在这里插入图片描述

2.1. 色调H

用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;圆柱,一圈不同未知的颜色。

2.1.2 饱和度S

饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。越接近边缘颜色越纯。

2.1.3 明度V

明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。竖直方向,下面暗,越往上越亮。

在这里插入图片描述

  • V: 竖直方向表示明度,决定颜色空间中颜色的明暗程度,明度越高,表示颜色越明亮,范围是 0-100%。明度为0表示纯黑色(此时颜色最暗)。

  • 明度减小,就是往光谱色中添加黑色,光谱色所占的比例也在减小,明度减为0,表示光谱色所占的比例为零,导致整个颜色呈现黑色。

  • H:Hue一定的情况下,饱和度减小,就是往光谱色中添加白色,光谱色所占的比例也在减小,饱和度减为0,表示光谱色所占的比例为零,导致整个颜色呈现白色。

在这里插入图片描述

以红色为例:

  • 10度处,色度H,红色;
  • 饱和度S,中间灰色,越往边缘越红;
  • 明度V,最下面黑色,越往上越亮;

在这里插入图片描述

在这里插入图片描述

当 ,RGB三个颜色都值不好判断颜色;
HSV可以通过色相范围判断颜色;

在这里插入图片描述

2.2 HSL

HSL竖直方向是亮度,最上面最亮,纯白

在这里插入图片描述

2.3 YUV

YUV主要用于视频,简单了解一下
在这里插入图片描述

在这里插入图片描述

3 颜色空间转换实战

import cv2def callback():passimg=cv2.imread('E:\\Program_Py\\dog.jpeg')#显示原始图
cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.imshow('img',img)cv2.namedWindow('color',cv2.WINDOW_NORMAL)colorspaces=[cv2.COLOR_BGR2RGBA,cv2.COLOR_BGR2BGRA,cv2.COLOR_BGR2GRAY,cv2.COLOR_BGR2HSV_FULL,cv2.COLOR_BGR2YUV]cv2.createTrackbar('curcolor','color',0,len(colorspaces),callback)#value代表滑块的位置,起始位置0while True:index=cv2.getTrackbarPos('curcolor','color')cvt_img=cv2.cvtColor(img,colorspaces[index])cv2.imshow('color',cvt_img)key=cv2.waitKey(1)if key & 0xff ==ord('q'):breakcv2.destroyAllWindows()

原图

在这里插入图片描述
COLOR_BGR2RGB
在这里插入图片描述

COLOR_BGR2BGR
在这里插入图片描述

在这里插入图片描述

COLOR_BGR2GRAY
在这里插入图片描述

COLOR_BGR2HSV
在这里插入图片描述

COLOR_BGR2YUV

4 VScode中报错问题

在这里插入图片描述

5 Windows 下 VScode 路径格式(VScode很强大,路径格式写法自由多样)

VScode下Windowsx下路径

img1=cv2.imread('E:\\Program_Py\\dog.jpeg')
img2=cv2.imread('.\\hello.jpeg') 
img3=cv2.imread("E:\\Program_Py\\map1.png")
img4=cv2.imread(".\\chess.png")img5=cv2.imread('E:/Program_Py/map2.png')
img6=cv2.imread('./RMB.jpeg')
img7=cv2.imread("E:/Program_Py/lena.png")
img8=cv2.imread("./smallcat1.jpeg")img9=cv2.imread('E:\Program_Py\left_01.png')

不得不说,VScode还是强大,路径格式怎么写都对;

cv2.imshow('img1',img1)
cv2.imshow('img2',img2)
cv2.imshow('img3',img3)
cv2.imshow('img4',img4)
cv2.imshow('img5',img5)
cv2.imshow('img6',img6)
cv2.imshow('img7',img7)
cv2.imshow('img8',img8)
cv2.imshow('img9',img9)key=cv2.waitKey()

mac或 Linux下路径(更多的没有去验证)

img=cv2.imread("C:/Users/pvt/Desktop/test.png")

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

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

相关文章

.NET 应用程序 Linux下守护进程脚本编写

下面的脚本是生产可用,可靠的sh脚本,用于监控 .NET 应用程序并自动重启。假如你打包发布到Linux的程序名称为MyAspDemo;推荐打包模式为框架依赖:需要在Linux上安装对应的donet版本;1.在Linux下新建一个文件&#xff0c…

图论理论部分

旅游完回来继续学习。 先来看一下图论的理论部分,然后稍微做一下DFS的题目。 图的基本概念 二维坐标中,两点可以连成线,多个点连成的线就构成了图。 当然图也可以就一个节点,甚至没有节点(空图) 图的种…

WebSocket集群方案解析与实现

一、WebSocket集群核心挑战 1.1 关键问题分析 #mermaid-svg-gzRCTMr7wiVCokct {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gzRCTMr7wiVCokct .error-icon{fill:#552222;}#mermaid-svg-gzRCTMr7wiVCokct .error-t…

使用dify搭建hr简历助手-上传简历-对接飞书ai表格

一、需求背景 hr在招聘平台获取简历后,想整理到简历库,在线管理和维护,及其不方便,所以用dify搭建一个简历上传助手,并且能保存到线上表格,方便维护和查看。 先看下最终的效果我们的工作流即可自动获取文件…

《算法导论》第 22 章 - 基本的图算法

大家好!今天我们来深入学习《算法导论》第 22 章的基本图算法。图论是计算机科学中的重要基础,这些基本算法是解决很多复杂问题的基石。本文将结合代码实现,帮助大家更好地理解和应用这些算法。思维导图22.1 图的表示在计算机中,图…

基于PROFINET的西门子PLC通讯:S7-200与S7-1200在自动化仓储中的协同应用

一.行业痛点与解决方案传统仓储物流系统中,采用西门子SMARTS7-200PLC(如CPUSR20、SR30等型号)的设备往往面临三大通讯难题:一是无法直接接入以太网网络,导致多PLC间的数据交互需要通过复杂的串口级联实现,响…

redis实现秒杀超卖问题的解决方案:(仅限于单体项目)

秒杀实现通过乐观锁控制超卖问题通过悲观锁控制每个用户只能下一单,避免用户多次点击,发送的多次下单请求(即多个线程)都成功,避免恶意攻击每个请求访问Tomcat时,就会分配一个线程处理请求业务逻辑:注*以下逻辑中报错也…

Go与Python爬虫实战对比:从开发效率到性能瓶颈的深度解析

目录 引言:两种语言,两种哲学 开发效率对比:从框架设计看易用性 Python的"开箱即用" Go的"手动组装" 性能对比:从并发模型看效率差异 理论性能对比 实际测试数据 错误处理对比:从编程范式…

初识c语言————排序方法

今天我们学习的是c语言中的排序方法目录:一.冒泡排序法二.选择排序法下面我们正式学习c语言中的排序方法一.冒泡排序法1.冒泡排序法的过程:将无序的数组通过数组之间的大小比较,排成有序的样子2.例如:5,3,4…

爬虫与数据分析结合案例:中国大学排名爬取与分析全流程

爬虫与数据分析结合案例:中国大学排名爬取与分析全流程 一、案例背景与目标 本案例以高三网中国大学排名(网址:2021中国的大学排名一览表_高三网)为数据源,完成从数据爬取到分析可视化的全流程实践。主要目标包括&am…

行业分享丨SimSolid 在汽车零部件开发中应用的可行性调研及实践

*本文源自汽车行业用户范会超投稿1、背景车型短周期开发背景下,高效的仿真技术显得尤为重要。Altair 推出了多款加速设计/仿真的软件,其中无网格软件 SimSolid 与业务有一定的契合度,有必要论证其在汽车零部件结构分析领域的可行性。2、目标评…

MacOS字体看起来比在 Windows 上更好?

字体控们注意啦!🎉你们有没有发现,同样一段文字,在Mac和Windows上看起来就是不一样?Mac上的字仿佛自带柔光滤镜,圆润又舒适;而Windows上的字则像是精心雕琢的刀锋,锐利且清晰。这背后…

Torch -- 卷积学习day1 -- 卷积层,池化层

目录 一、CNN概述 二、卷积层 1、卷积核 2、卷积计算 3、边缘填充 4、步长 5、多通道卷积计算 6、多卷积核卷积计算 7、特征图大小 8、卷积参数共享 9、局部特征提取 10、卷积层API 三、池化层 1、池化层概述 1.池化层的作用 2.池化层类型 2、池化层计算 3、步…

蓝桥杯---第六届省赛单片机组真题

先出手写的代码&#xff0c;代码分析还需要一段时间&#xff0c;不难&#xff0c;大家认真写。#include <STC15F2K60S2.H> #include "Seg.h" #include "LED.h" #include "Key.h" #include "DS1302.h" #include "DS18B20.h&…

GPT-5深度解析:精准、高效、务实的新一代AI引擎

&#x1f31f; GPT-5深度解析&#xff1a;精准、高效、务实的新一代AI引擎在万众瞩目中&#xff0c;OpenAI于2025年8月7日正式推出GPT-5——这一代模型没有华丽的创意革命&#xff0c;却以惊人的准确率提升、断崖式降价和强大的工程能力&#xff0c;悄然重塑了生成式AI的应用边…

oss(阿里云)前端直传

WEB端前端直传 参考文档&#xff1a;web前端直传并设置上传回调 封装oss-upload.ts // 图片上传 import { uploadToken } from /api/uploadFile.js // 获取oss token接口// 定义 OSS 信息类型 interface OssInfo {policy: string;signature: string;x_oss_credential: strin…

vscode uv 发布一个python包:编辑、调试与相对路径导包

背景 最近一直在使用uv做python包管理&#xff0c;用起来很方便。 尤其是在代码上传到github的时候&#xff0c;pyproject.toml 会显示出当前项目依赖的python包。这样在把代码下载到本地之后&#xff0c;直接uv sync就可以很方便地恢复出python环境。 uv 除了有上述优点&…

Secure 第四天作业

实验需求&#xff1a;需求一拓扑&#xff1a;按照以上拓扑所示&#xff0c;完成以下需求&#xff1a;参考以上拓扑&#xff0c;配置设备IP地址&#xff0c;使用UNL里Secure第四天拓扑即可。&#xff08;有兴趣的同学课后也可按照PPT原拓扑做做实验&#xff09;&#xff1b;配置…

利用开漏输出模式模拟IIC

/************************************************************利用IO口模拟IIC时序&#xff0c;需要使用2个IO口(SDA和SCL)SCL时钟线只能由主器件进行控制&#xff0c;所以SCL引脚必须为输出模式SDA数据线&#xff0c;在主器件发送数据时&#xff0c;SDA引脚为输出模式SDA数…

闸机控制系统从设计到实现全解析:第 5 篇:RabbitMQ 消息队列与闸机通信设计

第 5 篇&#xff1a;RabbitMQ 消息队列与闸机通信设计RabbitMQ 是一款开源的消息队列中间件&#xff08;Message Queue&#xff0c;MQ&#xff09;&#xff0c;基于 Erlang 语言开发&#xff0c;遵循 AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c;高级消息队…