当前位置: 首页 > news >正文

【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.lryc.cn/news/619504.html

相关文章:

  • 【Java web】HTTP 与 Web 基础教程
  • 技术速递|使用 AI Toolkit 构建基于 gpt-oss-20b 的应用程序
  • Node.js面试题及详细答案120题(16-30) -- 核心模块篇
  • Docker部署 Neo4j 及集成 APOC 插件:安装与配置完整指南(docker-compose)
  • 数据挖掘常用公开数据集
  • spring gateway配合nacos实现负载均衡
  • 【HTML】在页面中画一条0.5px的线
  • 【Part 4 未来趋势与技术展望】第一节|技术上的抉择:三维实时渲染与VR全景视频的共生
  • SQL语句优化
  • JsonReader:Spring AI 的 JSON 搬运大师
  • html img标签设置默认图片,防止图片路径不存在导致图片不展示影响页面美观
  • 2022 年全国硕士研究生招生考试真题笔记
  • Nestjs框架: 由权限模型设计到 Prisma 数据库迁移的演示
  • ZED 2i相机调试
  • 【SpringBoot】12 核心功能-配置文件详解:Properties与YAML配置文件
  • 肖臻《区块链技术与应用》第十一讲:比特币核心概念重温:一文读懂私钥、交易、挖矿与网络现状
  • 模型驱动的自动驾驶AI系统全生命周期安全保障
  • Easysearch 数据迁移之 INFINI Gateway
  • elasticsearch mapping和template解析(自动分词)!
  • LeetCode 刷题【40. 组合总和 II】
  • Linux系统编程Day13 -- 程序地址空间(进阶)
  • 边缘节点 DDoS 防护:CDN 节点的流量清洗与就近拦截方案
  • IPA1299至为芯替代TI ADS1299的脑机接口芯片
  • 机器翻译:学习率调度详解
  • 云蝠智能 VoiceAgent 在不良资产处理中的技术应用与实践
  • 2020/12 JLPT听力原文 问题一 5番
  • 磁悬浮轴承转子动平衡:零接触旋转下的“隐形杀手”深度解析与精准猎杀指南
  • Video_AVI_Packet(1)
  • 部署 Docker 应用详解(MySQL + Tomcat + Nginx + Redis)
  • 1688商品数据抓取:Python爬虫+动态页面解析