颜色空间变换

目录

图像通道划分

单通道(灰度图)

三通道(RGB、BGR等)

四通道(RGBA、BGRA等)

其他颜色编码格式或颜色空间

RGB565、RGB555

XYZ

YCbCr颜色空间

Bayer模式

转换结果

OpenCV的常用颜色空间转换


最近遇到很多颜色空间格式之间的互相转换,不清楚具体是什么含义,如BGR555、YCrCb、HLS、Luv、HSV、Lab、XYZ、Bayer等。

 

图像通道划分

单通道(灰度图)

  • 单通道图像只有一个颜色分量,通常用于表示灰度图像。灰度图是一种只包含亮度信息的图像,每个像素通常用一个字节(8位)表示,其取值范围是0 - 255,0表示黑色,255表示白色。

三通道(RGB、BGR等)

  • 三通道图像是最常见的彩色图像表示形式,如RGB(红、绿、蓝)和BGR(蓝、绿、红)
  • 每个通道的值表示相应颜色分量的强度,范围通常是0 - 255。例如,在RGB图像中,一个像素点的值为(255, 0, 0)表示纯红色,(0, 255, 0)表示纯绿色,(0, 0, 255)表示纯蓝色。
  • 在OpenCV中,默认读取的彩色图像是BGR格式。

四通道(RGBA、BGRA等)

  • 在三通道的基础上增加了一个Alpha通道,用于表示透明度。Alpha通道的值范围也是0 -255,其中0表示完全透明,255表示完全不透明。
  • BGRA(Blue - Green - Red - Alpha)是一种图像像素格式。其中B代表蓝色通道,G代表绿色通道,R代表红色通道,A代表透明度通道。每个通道通常用一个字节(8位)表示,所以一个BGRA像素共占用32位(4个字节)。

其他颜色编码格式或颜色空间

RGB565、RGB555

  • RGB565是一种16位的RGB颜色编码格式。在RGB565格式中,“RGB”代表红(Red)、绿(Green)、蓝(Blue)三个颜色通道。其中红色通道(R)占用5位,这意味着它可以表示32​种不同的红色强度值。绿色通道(G)占用6位,蓝色通道(B)占用5位。
  • RGB565将三个颜色通道的数据存储在一个16位的无符号整数中。通常按照高位到低位的顺序,先是红色通道的5位数据,然后是绿色通道的6位数据,最后是蓝色通道的5位数据。
  • 例如,一个RGB565格式的颜色值0x1F3E1F​
  • 由于RGB565格式使用16位来表示一个像素的颜色,相比于24位(RGB888,每个通道8位)的真彩色格式,它占用的存储空间更少。

XYZ

  • 在色彩科学领域,XYZ是一种与颜色表示相关的色彩空间。XYZ色彩空间是一种基于人眼视觉特性的绝对色彩空间,它是由国际照明委员会(CIE)定义的。它旨在提供一种与设备无关的颜色表示方法,通过三个坐标值(X、Y、Z)来描述颜色。
  • 在进行跨设备的颜色管理时,将图像从设备相关的RGB色彩空间转换到XYZ色彩空间,然后再转换到目标设备的RGB色彩空间,可以确保颜色在不同设备上的一致性。

YCbCr颜色空间

在YCbCr空间中,Y表示亮度分量,Cb和Cr表示色度分量

Bayer模式

  • Bayer模式是一种常见的图像传感器的色彩滤波阵列(CFA)模式。在Bayer模式下,图像传感器的每个像素点只采集一种颜色信息(红、绿或蓝),其中绿色像素的数量通常是红色或蓝色像素数量的两倍,这是因为人眼对绿色更敏感。常见的Bayer模式有Bayer BG(蓝 - 绿顺序)等不同排列方式
  • 由于Bayer模式下的图像每个像素只有一种颜色信息,而RGB图像每个像素包含红、绿、蓝三种颜色信息,所以需要将Bayer BG图像转换为RGB图像才能在大多数显示设备上正常显示或者进行进一步的图像处理,如色彩校正、图像增强等操作。

转换结果

                                                            BGR2YCrCb=>

                                                            BGR2XYZ=>    

                                                         BGR2HSV=>      

                                                       BGR2Lab=>          

                                                     BGR2Luv=>            

                                                   BGR2HLS=>             

OpenCV的常用颜色空间转换

OpenCV中有8种色彩空间,即RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab。

# 通过cv2.cvtColor()函数可以改变图像的色彩空间
cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值