当前位置:网站首页>颜色空间
颜色空间
2022-08-10 15:03:00 【为为为什么】
色彩是人的眼睛对于不同频率的光线的不同感受,在数学上将其描述为多种组织形式,即为颜色空间,本文记录相关内容。
简介
- 色彩空间是组织色彩的一种方式。在图像和监视器的上下文中,我们根据其RGB原色和白点来描述颜色空间。重要的是要知道图像处于什么颜色空间,以便可以正确解释和显示颜色。作为工作流的一部分,可能需要将颜色从一种颜色空间转换为另一种颜色空间,并且颜色空间的知识可以帮助我们避免信息丢失或颜色显示不准确。
- 常用颜色空间于用途相关:
接下来介绍几种常用的颜色空间
RGB
- 最常用的颜色空间,RGB彩色空间利用相加混合法将三个彩色分量按照不同的比例叠加,最终就可以在屏幕中显现出各种颜色。
- 类似于矩阵的基,在颜色空间选择三基色可以通过适当比例的混合组成自然界中任何一种颜色
- 由于人眼对于红绿蓝三种色光最为敏感,并且由这三种颜色能组成的颜色范围最广,故一般选用RGB (红绿蓝)作为三基色
YUV
- 研究表面,人眼对于亮度的敏感度远大于对于颜色细节的敏感度,因此,才彩色电视机系统中不采用RGB颜色空间。
- 而采用YUV颜色空间的好处有:
- 解决了彩色电视机和黑白电视机的兼容问题(因为黑白电视机只需要提取信号中的Y信号即可显示出来)
- 可以节省传输带宽
- 一般情况下,数字化后的Y:U:V = 8:4:4或者Y:U:V = 8:2:2,即亮度信号Y需要8比特表示,UV需要4个或者2个比特表示,我们知道,RGB颜色空间下,需要24比特来表示一个颜色,而利用YUV则仅需要16比特或者12比特,达到压缩的目的。
在NTSC制下:
- 色差U,即蓝基色分量与亮度的差值信号,可以用以下公式表示:
- 色差V,即红基色分量与亮度的差值信号,可以用以下公式表示:
- 通常,k_1 = 0.493,k_2 = 0.877
YUV与RGB的转换
YIQ
- YIQ颜色空间被NTSC制的彩色电视机使用。
- 其中Y还是亮度信号,表示为:
- I代表人眼敏感的色彩色差信号,表示为:
- Q代表人眼不敏感的色差信号,表示为:
- 转换矩阵
HSV / HSI / HSB
HSV(Hue, Saturation, Value)是根据颜色的直观特性由 A. R. Smith 在 1978 年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。
RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
色调H
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;
饱和度S
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度V
也作 L(Lightness) 和 B(Brightness)
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
转换公式
OpenCV 实现
import CV2
rgb_img = ..
# rgb -> hsv
hsv_img = cv2.cvtColor(rgb_img, cv2.COLOR_RGB2HSV)
# hsv -> rgb
rgb_img = cv2.cvtColor(hsv_img, cv2.COLOR_HSV2RGB)
参考资料
边栏推荐
- SWIG Tutorial "One"
- Systemui status bar to add a new icon
- scala集合
- 秒杀项目收获
- Websocket realizes real-time change of chart content
- Oracle database backup DMP file is too big, what method can be split into multiple DMP when backup?
- Oracle数据库备份dmp文件太大,有什么办法可以在备份的时候拆分成多个dmp吗?
- Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack
- Mysql statement analysis, storage engine, index optimization, etc.
- fastposter v2.9.1 程序员必备海报生成器
猜你喜欢
fastposter v2.9.1 程序员必备海报生成器
Azure IoT 合作伙伴技术赋能工作坊:IoT Dev Hack
NFT digital collection development issue - digital collection platform
数据在内存中的存储
JS entry to proficient full version
12海里、24海里、200海里的意义及名称
Oracle database backup DMP file is too big, what method can be split into multiple DMP when backup?
解题-->在线OJ(十九)
SWIG Tutorial "One"
使用Uiautomator2进行APP自动化测试
随机推荐
使用Uiautomator2进行APP自动化测试
Programmer = overtime??- Master the time to master the life
scala 10种函数高级应用
富爸爸穷爸爸之读书笔记
秒杀项目收获
宝塔面板开放Redis给指定外网机器
易观千帆银行用户体验中心:聚焦银行APP用户体验
Oracle database backup DMP file is too big, what method can be split into multiple DMP when backup?
Epoll learn to think: a high performance server processing framework
Community News——Congratulations to Dolphin Scheduling China User Group for 9 new "Community Administrators"
数据在内存中的存储
Redis -- Nosql
2022 CCF中国开源大会会议通知(第四轮)
Websocket realizes real-time change of chart content
【芯片】人人皆可免费造芯?谷歌开源芯片计划已释放90nm、130nm和180nm工艺设计套件
推荐几款最好用的MySQL开源客户端,建议收藏!
学习MySQL 临时表
systemui屏蔽通知栏
Yi Gene|In-depth review: epigenetic regulation of m6A RNA methylation in brain development and disease
无线网络、HTTP缓存、IPv6