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。我们还是以丽娜为例子。

三、色彩空间的转换

代码如下:

python 复制代码
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()

运行结果如下:

相关推荐
fai厅的秃头姐!19 分钟前
OpenCV实战篇
人工智能·opencv·计算机视觉
TMT星球1 小时前
虎鲸文娱春苗编剧计划全面升级,已孵化20个剧本进入前期开发
大数据·人工智能
奔跑中的小象7 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南7 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang8 小时前
LangGraph 状态机实战
人工智能
刹那芳华19928 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作8 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门8 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜8 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟8 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能