图像2矩阵

数字图像的本质是矩阵,一个数字图像就是一个二维矩阵,矩阵中的每个元素代表图像的一个像素。

对于灰度图像来说,这个像素只有一个灰度值,英文是intensity,由8个bit来表示,每个像素的灰度值为0~255中的一个值;

对于彩色图像来说,计算机采用三原色,即RGB模式,每个像素由R、G、B三个值确定,也就是说对于彩色图像的每个像素,都是一个包含三个元素的一维数组来表示,每个像素对应的一维数组里面的三个元素分别代表B、G、R三个分量的值(0~255),这里要注意顺序,依次是B、G、R。

秉承Linus的理念“Talk is cheap, show me the code”,下面进行代码举例:

有一副原始图片rafa.jpg:

代码1,显示图片,并显示图像形状的信息

 1 import cv2
 2 import numpy as np 
 3 
 4 img = cv2.imread('rafa.jpg')
 5 
 6 print(img.shape)  #看看图片的shape
 7 cv2.namedWindow('Rafa')
 8 cv2.imshow('Rafa',img)
 9 
10 cv2.waitKey()
11 cv2.destroyAllWindows()

运行代码,输出为:

(200, 140, 3)

这表明,这幅图片,高度是200像素,宽度是140像素,有3个通道。

下面,我们把该图片层层解剖:

分别观察R、G、B三个通道的图片:

 

BGRA四通道

YUV、HSL色彩模型

posted @ 2019-05-08 15:43  hare101  阅读(631)  评论(0编辑  收藏  举报