Datawhale_计算机视觉基础_图像处理(4)——彩色空间互转及opencv实现

一、图像原理

1.1 三原色

RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开。它是最通用的面向硬件的彩色模型。该模型用于彩色监视器和一大类彩色视频摄像。

RGB颜色空间 基于颜色的加法混色原理,从黑色不断叠加Red,Green,Blue的颜色,最终可以得到白色。
将R、G、B三个通道作为笛卡尔坐标系中的X、Y、Z轴,就得到了一种对于颜色的空间描述:
在这里插入图片描述

对于彩色图转灰度图,有一个很著名的心理学公式:
G r a y = R ∗ 0.299 + G ∗ 0.587 + B ∗ 0.114 Gray = R * 0.299 + G * 0.587 + B * 0.114 Gray=R0.299+G0.587+B0.114

1.2 RGB与HSV互转

HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)
色相: 色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。
饱和度(S):是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。
明度(V):取0-max(计算机中HSV取值范围和存储的长度有关)。
HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。

RGB颜色空间中,三种颜色分量的取值与所生成的颜色之间的联系并不直观。而HSV颜色空间,更类似于人类感觉颜色的方式,封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?
在这里插入图片描述
1- RGB2HSV
在这里插入图片描述

2- HSV2RGB
在这里插入图片描述

二、opencv实现

"""
cv2.cvtColor(

src,  输入图像s
code, 颜色空间转换标识符 如 cv2.COLOR_BGR2hHSV
 具体可以参考: cv2.ColorConversionCode 部分 
dstCn=0  目标图像的通道数,该参数为0时
,目标图像根据源图像的通道数和具体操作自动决定
)
"""

# RGB2HSV
# [i for i in dir(cv2) if 'COLOR_' in i and '2HS' in i]
to_hsv_lst = ['COLOR_BGR2HSV', 'COLOR_BGR2HSV_FULL', 'COLOR_RGB2HSV', 'COLOR_RGB2HSV_FULL']
for i in to_hsv_lst:
    pic_ghsv = cv2.cvtColor(img, eval(f'cv2.{i}'))
    cv2.imshow(f"{i}", pic_ghsv)

# RGB2GRAY
pic_gray = cv2.cvtColor(img , cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Scale", pic_gray)
cv2.imshow("original", img)
cv2.waitKey(0)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Scc_hy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值