【计算机图形学】RGB图像在计算机中存储方式的理解——图形学基础

最近在学习计算机图形学方面的课程,主要是使用opencv来处理图像,这里涉及到了图像存储的方式,方便后续对图像通道分离处理还有滤波的理解。

RGB色彩模式也就是红(Red)、绿(Green)、蓝(Blue)色彩模式。指的是通过R、G、B三个色彩通道,它们相互叠加再得到各式各样的颜色。它们的范围都是0~255,这样叠加起来就能够得到256256256=16777216(大约1678w)的颜色种类。

例如在一个像素上由R=200,G=100,B=150,如下图的颜色:
【计算机图形学】RGB图像在计算机中存储方式的理解——图形学基础_第1张图片【计算机图形学】RGB图像在计算机中存储方式的理解——图形学基础_第2张图片【计算机图形学】RGB图像在计算机中存储方式的理解——图形学基础_第3张图片
叠加起来就是这样:
【计算机图形学】RGB图像在计算机中存储方式的理解——图形学基础_第4张图片

那么上面叠加后的图像的存储在计算机中就是这样的:(以3*3图像为例,只有9个像素,方便理解)

R通道:
[[200 200 200]
[200 200 200]
[200 200 200]]
G通道:
[[100 100 100]
[100 100 100]
[100 100 100]]
B通道:
[[150 150 150]
[150 150 150]
[150 150 150]
为二维矩阵,矩阵大小就是像素个数

叠加后也就是实际的存储:

[[[200 100 150][200 100 150][200 100 150]]
[[200 100 150][200 100 150][200 100 150]]
[[200 100 150][200 100 150][200 100 150]]]
这是一个三维矩阵

可以使用opencv函数查看图像存储的矩阵

# 读取图像
image = cv.imread("imgs/rabbit.jpg")
print(image)
# 三通道分离
b, g, r = cv.split(image)
print(b)
print(g)
print(r)

结果:

# 三维矩阵
[[[255 255 255]
  [255 255 255]
  [255 255 255]
  ...
  [255 246 168]
  [255 246 166]
  [255 247 167]]
 [[255 255 255]
  [255 255 255]
  [255 255 255]
  ...
  [255 245 167]
  [255 246 166]
  [255 246 166]]
 [[255 255 255]
  [255 255 255]
  [255 255 255]
  ...
  [255 246 166]
  [255 246 166]
  [255 246 166]]
 ...
 [[255 254 255]
  [255 255 255]
  [253 255 254]
  ...
  [250 254 248]
  [250 254 248]
  [250 254 248]]
 [[255 253 253]
  [255 255 255]
  [251 254 252]
  ...
  [253 254 250]
  [253 254 250]
  [253 254 250]]
 [[255 255 255]
  [255 255 255]
  [254 255 253]
  ...
  [255 254 253]
  [255 254 253]
  [255 254 253]]]
 #B通道 opencv中是按照BGR的顺序存的
[[255 255 255 ... 255 255 255]
 [255 255 255 ... 255 255 255]
 [255 255 255 ... 255 255 255]
 ...
 [255 255 253 ... 250 250 250]
 [255 255 251 ... 253 253 253]
 [255 255 254 ... 255 255 255]]
 # G通道
[[255 255 255 ... 246 246 247]
 [255 255 255 ... 245 246 246]
 [255 255 255 ... 246 246 246]
 ...
 [254 255 255 ... 254 254 254]
 [253 255 254 ... 254 254 254]
 [255 255 255 ... 254 254 254]]
 # R通道
[[255 255 255 ... 168 166 167]
 [255 255 255 ... 167 166 166]
 [255 255 255 ... 166 166 166]
 ...
 [255 255 254 ... 248 248 248]
 [253 255 252 ... 250 250 250]
 [255 255 253 ... 253 253 253]]

你可能感兴趣的:(数字图像处理,计算机视觉,opencv,图像处理)