最近在学习计算机图形学方面的课程,主要是使用opencv来处理图像,这里涉及到了图像存储的方式,方便后续对图像通道分离处理还有滤波的理解。
RGB色彩模式也就是红(Red)、绿(Green)、蓝(Blue)色彩模式。指的是通过R、G、B三个色彩通道,它们相互叠加再得到各式各样的颜色。它们的范围都是0~255,这样叠加起来就能够得到256 _256_256=16777216(大约1678w)的颜色种类。
例如在一个像素上由R=200,G=100,B=150,如下图的颜色:
叠加起来就是这样:
那么上面叠加后的图像的存储在计算机中就是这样的:(以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]]]
[[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]]
[[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]]
[[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]]
Original: https://blog.csdn.net/jxyyyy/article/details/120919392
Author: 假面兔子
Title: 【计算机图形学】RGB图像在计算机中存储方式的理解——图形学基础
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/642363/
转载文章受原作者版权保护。转载请注明原作者出处!