【学习 OpenCV】—— 色彩空间(RGB、HSV、rgb2hsv、rgb2gray 的实现)
RGB 色彩空间的基础是对叠加型三原色(红绿蓝)的应用。之所以选择它们,是因为把它们组合起来后可以产生色域很宽(256*256*256)的各种颜色。实际上,人类的视觉系统( Human visual system,HVS)也是基于对三原色的感知,因为视锥细胞的灵敏度位于红绿蓝的光谱周围。这通常是数字成像中默认的色彩空间,因为这就是人类看数字图像的方式。
但是,利用 RGB 色彩空间计算颜色之间的差距,并不是衡量两个颜色相似度(similarity)的最好方式。RGB 并不是感知均匀的色彩空间。也就是说,两种具有一定差距的颜色可能看起来非常接近,而另外两种具有同样差距的颜色看起来却差别很大。
未解决这个问题,引入了一些具有感知均匀特性的颜色表示法。CIEL*a*b* 就是一种这样的颜色模型。把图像转换到这种表示法后,我们就可以真正地使用图像像素与目标颜色之间的欧氏距离,来度量颜色之间的视觉相似度。
0. rgb2gray 的实现
def rgb2gray(rgb):return np.dot(rgb[..., :3], [0.299, 0.587, 0.144])
1. rgb2hsv
HSV,H:hue,S:saturation,V:value
- [0, 255] ⇒ [0, 1],也即将原始的 rgb 3 通道上的 256 级灰度值,线性压缩在 0-1 区间内;
- R′=R/255R'=R/255,G′=G/255G'=G/255,B′=B/255B'=B/255
- Cmax=max(R′,G′,B′)C_{\max}=\max(R',G',B'),Cmin=min(R′,G′,B′)C_{\min}=\min(R',G',B'),Δ=Cmax−Cmin\Delta=C_{\max}-C_{\min}
此时便可以计算 hsv 了:
H=\left\{ \begin{split} &0°,& \Delta=0\\ &60°\cdot \left(\frac{G'-B'}{\Delta} \mod 6\right),& R'=C_{\max}\\ &60°\cdot \left(\frac{B'-R'}{\Delta}+2\right),& G'=C_{\max}\\ &60°\cdot \left(\frac{R'-G'}{\Delta} +4\right),& B'=C_{\max} \end{split}, \right.\quad S=\left\{ \begin{split} &0,&C_{\max}=0\\ &\frac{\Delta}{C_{\max}}, &C_{\max}\neq 0 \end{split} \right.,\quad V=C_{\max}
【学习 OpenCV】—— 色彩空间(RGB、HSV、rgb2hsv、rgb2gray 的实现)相关推荐
- RGB色彩空间和HSV色彩空间的理解
RGB色彩空间和HSV色彩空间的理解 本文的结构如下: 1.RGB色彩空间 2.HSV色彩空间(附HSV颜色分量范围表) 3.RGB到HSV的转换的Demo 使用OpenCV实现RGB转HSV,并 ...
- Opencv色彩空间(GRAY、XYZ、HSV、YCrCb、HLS)展示,以及利用HSV标记指定的颜色
本文简单介绍了几个常见的色彩空间转换: 因为HSV应用非常广泛,所以单独介绍其强大的功能: 本文用到的两个原始图像,如下图所示: 目录 一.Opencv色彩空间(GRAY.XYZ.HSV.YCrCb. ...
- Opencv的RGB到HSV颜色空间转换
从 RGB 到 HSL 或 HSV 的转换 设 (r, g, b) 分别是一个颜色的红.绿和蓝坐标,它们的值是在 0 到 1 之间的实数.设 max 等价于 r, g 和 b 中的最大者.设 min ...
- 【机器视觉学习笔记】OpenCV C++ 与 HSV颜色模型
目录 HSV颜色模型 Opencv中的HSV 获取颜色值的小工具 平台:Windows 10 20H2 Visual Studio 2015 opencv_contrib-3.4.12 HSV颜色模型 ...
- 乐鑫Esp32学习之旅 24 分享在 esp32 SDK实现冷暖光色温RGB/HSV平滑调节的封装,轻松集成到您的项目去。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
- OpenCV实战(7)——OpenCV色彩空间转换
OpenCV实战(7)--OpenCV色彩空间转换 0. 前言 1. RGB 色彩空间 2. 色彩空间转换 2.1 CIE L*a*b* 色彩空间 2.2 其它色彩空间 3. 用色调.饱和度和亮度表示 ...
- 跟着小琼琼学习opencv~
楼楼最近整理笔记,发现了自己学习Opencv时候的码的代码和简单介绍,现贴上来~主调用方法在最下方.转载请注明出处~ #include <opencv2\xfeatures2d\nonfree. ...
- python怎么编写视觉识别_Python视觉识别--OpenCV色彩空间\图像运算\ROI(四)
(七) 色彩空间 什么是色彩空间,人们建立了多种色彩模型,以一维.二维.三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间 色彩空间有很多,但是常用的色彩空间一共5种:RGB ...
- openCV色彩空间转换
RGB 人眼的色彩空间 BGR opencv默认使用的色彩空间 他们的最大差别是R,B排列顺序不一样,若是把RGB直接放入opencv系统中会造成颜色有差异. 给opencv的数据是要BGR的,电脑内 ...
- 05 OpenCV色彩空间处理
色彩空间(Color Space)是一种用于描述颜色的数学模型,它将颜色表示为多维向量或坐标,通常由三个或四个独立的分量来表示.不同的色彩空间在颜色的表示方式.可表达颜色的范围.计算速度和应用场景等方 ...
最新文章
- 递归第一弹:初步理解
- linux命令大全增删改查,crudini命令
- Win32多线程编程(3) — 线程同步与通信
- 算法训练营01-学习总览
- Java死锁示例–如何分析死锁情况
- jdbc mysql分页_JDBC【数据库连接池、DbUtils框架、分页】
- 电脑端腾讯视频如何设置离线下载完成后自动关机
- AlexNet--CNN经典网络模型详解(pytorch实现)
- Java 面向对象 --单例模式
- 微信公众平台开发(45)食物营养及热量查询
- 高等组合学笔记(十一):分拆与Gauss二项式系数,恒等式与展开式
- 高德地图 android api 实现自动定位
- ovnif摄像头修改ip
- USB 协议整理 二:USB概述及协议基础(一)
- linux cab文件怎么安装包,IE控件cab包手动安装
- 金蝶k/3 现金流量表编制口诀
- linux系统读移动硬盘,在linux系统上识别与挂载移动硬盘数据
- 《阳光下》 ——【传递正反馈】
- Qlv转换MP4格式 让你不再错过
- python画速度等值线图_python画contour图
热门文章
- anno arm移植Qt环境后,编译正常,程序无法正常启动问题的记录
- Java复习总结(二)Java SE基础知识
- Spark Streaming处理File Streams
- kafka自带的zk启动_kafka-eagle监控和管理kafka
- 2020-08-27
- mysql被除数为0不报错_SQLServer中进行sql除法运算结果为小数时显示0的解决方案...
- Moreau Decomposition 和 共轭次梯度定理
- 获取公司的maven库 和 idea maven 中Projects Settings的Libraries中正常,但是在Maven Projects中Dependencies一直出现红线的解决办法
- OpenCV3.4.3+Qt5.9.4(QtCreator)开发环境搭建
- python aop编程_学习笔记: AOP面向切面编程和C#多种实现