几种颜色空间(RGB,YUV,YIQ,HSI)的基本概念及转换 |
您所在的位置:网站首页 › 三基色可以表示多少种颜色组成的色彩关系 › 几种颜色空间(RGB,YUV,YIQ,HSI)的基本概念及转换 |
式中r,g,b为系数,r+g+b=1。故,知其二便可唯一确定色调。 B、YUV颜色空间 研究表面,人眼对于亮度的敏感度远大于对于颜色细节的敏感度,因此,才彩色电视机系统中不采用RGB颜色空间,一般为以下的空间: 而采用YUV颜色空间的好处有: a、解决了彩色电视机和黑白电视机的兼容问题(因为黑白电视机只需要提取信号中的Y信号即可显示出来) b、可以节省传输带宽 一般情况下,数字化后的 Y:U:V = 8:4:4或者Y:U:V = 8:2:2,即亮度信号Y需要8比特表示,UV需要4个或者2个比特表示,我们知道,RGB颜色空间下,需要24比特来表示一个颜色,而利用YUV则仅需要16比特或者12比特,达到压缩的目的。 在PAL制下,白光亮度Y和红绿蓝三色光的关系可以用以下公式表示: Y = 0.222R + 0.707G + 0.071B 在NTSC制下,Y=0.299R+0.587G+0.114B 色差U,即蓝基色分量与亮度的差值信号,可以用以下公式表示: U = k1(B - Y) 色差V,即红基色分量与亮度的差值信号,可以用以下公式表示: V = k2(R - Y) 通常,k1 = 0.493,k2 = 0.877 YUV颜色空间与RGB颜色空间的转换 C、YIQ颜色空间 如上图所示,YIQ颜色空间被NTSC制的彩色电视机使用。 其中Y还是亮度信号,用👇公式表示: Y = 0.299R + 0.587G + 0.114B I代表人眼敏感的色彩色差信号,用👇公式表示: I = 0.596R - 0.275G - 0.321B’ Q代表人眼不敏感的色差信号,用👇公式表示: Q = 0.212R - 0.523G + 0.311B D、HSI颜色空间(HSI) 色调H,饱和度为S,光强为V 上图为博客:https://www.cnblogs.com/faith0217/articles/4264652.html 中的内容 二、编程实现提取图像中一点的RGB颜色值,并实现RGB转换为YUV,YIQ,HIS。 以下程序利用python实现 import math import numpy as np from PIL import Image imgpath = 'C:/Users/11037/Desktop/7.jpg' #图片路径 m_yuv = np.mat([[0.299,0.587,0.114],[-0.299,-0.587,0.886],[0.701,-0.587,-0.114]]) m_yiq = np.mat([[0.299,0.587,0.114],[0.596,-0.274,-0.322],[0.211,-0.524,0.312]]) def rgb2yuv(need_rgb): ans = list([int(i) for i in m_yuv*need_rgb]) return ans def yuv2rgb(need_yuv): m = m_yuv.I ans = list([int(i) for i in m*need_yuv]) return ans def rgb2yiq(need_rgb): ans = list([int(i) for i in m_yiq*need_rgb]) return ans def yiq2rgb(need_yiq): m = m_yiq.I ans = list([int(i) for i in m*need_yiq]) return ans ''' def rgb2hsi(need_rgb:np.mat): rgb = list(need_rgb) r,g,b = int(rgb[0]),int(rgb[1]),int(rgb[2]) theta = math.acos((((r-g)+(r-b))/2)/math.sqrt((r-g)**2+(r-b)*(g-b))) print('theta',theta) if b |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |