OpenCv色彩空间

目录

一、RGB

二、图像处理入门

三、色彩空间的转换


一、RGB

在表示图像时,有多种不同的颜色模型,但最常见的是红、绿、蓝(RGB) 模型RGB 模型是一种加法颜色模型,其中原色 (在RGB模型中,原色是红色 R、绿色 G 和蓝色 B)混合在一起就可以用来表示广泛的颜色范围。
每个原色(R,G,B)通常表示一个通道,其取值范围为0,255]内的整数值。因此,每个通道有共256个可能的离散值,其对应于用于表示颜色通道值的总比特数(28=256)。此外,由于有三个不同的通道,使用 RGB 模型表示的图像称为24位色深图像:

最常见的色彩空间就是RGB,人眼也是基于RGB的色彩空间去分辨颜色的.

OpenCv默认使用的是BGR.BGR与RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同。

二、图像处理入门

首先我们第一个刻在脑子里的概念就是:

图片是由像素点构成!!!

以上图像可以完美的展示出图片的构成. 

而在图像中一般分为三类:

1.二值图像:

二值图像表示的意思就是每一个像素点只由0和1构成,0表示黑色,1表示白色,而且这里的黑色和白色是纯黑和纯白。我们以官网为例。

2.灰度图像

灰度图像就是一个8位的位图。什么意思呢?就是说00000001一直到11111111,这就是二进制表示。如果表示成我们常用的十进制就是0-255。其中0就表示纯黑色,255就表示纯白色,中间就是处于纯黑色到纯白色的相关颜色。我们依旧以丽娜为例。
 

3.彩色图像 

计算机中所有的颜色都可以由R(红色通道)、G(绿色通道)、B(蓝色通道)来组成,其中每一个通道都有0-255个像素颜色组成。比如说R=234,G=252,B=4就表示黄色。显示出来的也是黄色。所以说彩色图像由三个面构成,分别对应R,G,B。我们还是以丽娜为例子。

 

三、色彩空间的转换

 代码如下:

import cv2

def callback(value):
    pass


# 创建窗口
cv2.namedWindow('color',cv2.WINDOW_NORMAL)
cv2.resizeWindow('color',640,480)

# 读取图片,OpenCv默认读进来的图片为BGR的色彩空间
img = cv2.imread('6.jpg')

# 常见的颜色空间转换
colorspaces = [cv2.COLOR_BGR2RGBA,cv2.COLOR_BGR2BGRA,
               cv2.COLOR_BGR2GRAY,cv2.COLOR_BGR2HSV,
               cv2.COLOR_BGR2YUV]
# 创建trackbar
cv2.createTrackbar('trackbar','color',0,4,callback)

while True:
    index = cv2.getTrackbarPos('trackbar','color')

    # 颜色空间的转换API
    cvt_img = cv2.cvtColor(img,colorspaces[index])

    cv2.imshow('color',cvt_img)
    key = cv2.waitKey(10)
    if key == ord('q'):
        break

# 释放资源
cv2.destroyAllWindows()

运行结果如下:

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

几两春秋梦_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值